diff --git a/.buildkite/ftr_oblt_serverless_configs.yml b/.buildkite/ftr_oblt_serverless_configs.yml index 8fe505ff0e93e..e49655999ec59 100644 --- a/.buildkite/ftr_oblt_serverless_configs.yml +++ b/.buildkite/ftr_oblt_serverless_configs.yml @@ -27,4 +27,4 @@ enabled: - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group6.ts - x-pack/test_serverless/functional/test_suites/observability/config.screenshots.ts # serverless config files that run deployment-agnostic tests - - x-pack/test/api_integration/deployment_agnostic/oblt.serverless.config.ts + - x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts diff --git a/.buildkite/ftr_oblt_stateful_configs.yml b/.buildkite/ftr_oblt_stateful_configs.yml index 55f3c1b603fca..1d6d834b74279 100644 --- a/.buildkite/ftr_oblt_stateful_configs.yml +++ b/.buildkite/ftr_oblt_stateful_configs.yml @@ -25,6 +25,7 @@ defaultQueue: 'n2-4-spot' enabled: - x-pack/test/alerting_api_integration/observability/config.ts - x-pack/test/api_integration/apis/logs_ui/config.ts + - x-pack/test/api_integration/apis/logs_shared/config.ts - x-pack/test/api_integration/apis/metrics_ui/config.ts - x-pack/test/api_integration/apis/osquery/config.ts - x-pack/test/api_integration/apis/synthetics/config.ts @@ -49,3 +50,5 @@ enabled: - x-pack/test/observability_ai_assistant_functional/enterprise/config.ts - x-pack/test/profiling_api_integration/cloud/config.ts - x-pack/test/functional/apps/apm/config.ts + # stateful configs that run deployment-agnostic tests + - x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.stateful.config.ts diff --git a/.buildkite/ftr_platform_stateful_configs.yml b/.buildkite/ftr_platform_stateful_configs.yml index a984afc263170..fc46fa24f257f 100644 --- a/.buildkite/ftr_platform_stateful_configs.yml +++ b/.buildkite/ftr_platform_stateful_configs.yml @@ -272,6 +272,7 @@ enabled: - x-pack/test/functional/config.firefox.js - x-pack/test/functional/config.upgrade_assistant.ts - x-pack/test/functional_cloud/config.ts + - x-pack/test/functional_solution_sidenav/config.ts - x-pack/test/kubernetes_security/basic/config.ts - x-pack/test/licensing_plugin/config.public.ts - x-pack/test/licensing_plugin/config.ts @@ -361,4 +362,4 @@ enabled: - x-pack/performance/journeys_e2e/infra_hosts_view.ts - x-pack/test/custom_branding/config.ts # stateful config files that run deployment-agnostic tests - - x-pack/test/api_integration/deployment_agnostic/stateful.config.ts + - x-pack/test/api_integration/deployment_agnostic/configs/stateful/platform.stateful.config.ts diff --git a/.buildkite/ftr_search_serverless_configs.yml b/.buildkite/ftr_search_serverless_configs.yml index 9a5ce6798dbae..7112888f1afce 100644 --- a/.buildkite/ftr_search_serverless_configs.yml +++ b/.buildkite/ftr_search_serverless_configs.yml @@ -17,4 +17,4 @@ enabled: - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group5.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group6.ts # serverless config files that run deployment-agnostic tests - - x-pack/test/api_integration/deployment_agnostic/search.serverless.config.ts + - x-pack/test/api_integration/deployment_agnostic/configs/serverless/search.serverless.config.ts diff --git a/.buildkite/ftr_security_serverless_configs.yml b/.buildkite/ftr_security_serverless_configs.yml index 4c3b037ce9f8a..d6a92fbb5f446 100644 --- a/.buildkite/ftr_security_serverless_configs.yml +++ b/.buildkite/ftr_security_serverless_configs.yml @@ -35,6 +35,7 @@ enabled: - x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.basic.ts - x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.essentials.ts - x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.agentless.ts + - x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.agentless_api.ts - x-pack/test_serverless/functional/test_suites/security/config.saved_objects_management.ts - x-pack/test_serverless/functional/test_suites/security/config.context_awareness.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group1.ts @@ -98,4 +99,4 @@ enabled: - x-pack/test/security_solution_endpoint/configs/serverless.endpoint.config.ts - x-pack/test/security_solution_endpoint/configs/serverless.integrations.config.ts # serverless config files that run deployment-agnostic tests - - x-pack/test/api_integration/deployment_agnostic/security.serverless.config.ts + - x-pack/test/api_integration/deployment_agnostic/configs/serverless/security.serverless.config.ts diff --git a/.buildkite/package-lock.json b/.buildkite/package-lock.json index 437e56299cb6c..de45e39fb4092 100644 --- a/.buildkite/package-lock.json +++ b/.buildkite/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "dependencies": { "@octokit/rest": "^18.10.0", - "axios": "^1.6.3", + "axios": "^1.7.4", "globby": "^11.1.0", "js-yaml": "^4.1.0", "minimatch": "^5.0.1", @@ -351,11 +351,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -1946,11 +1946,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "requires": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } diff --git a/.buildkite/package.json b/.buildkite/package.json index efd66f1c17a09..158a55c777e6a 100644 --- a/.buildkite/package.json +++ b/.buildkite/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@octokit/rest": "^18.10.0", - "axios": "^1.6.3", + "axios": "^1.7.4", "globby": "^11.1.0", "js-yaml": "^4.1.0", "minimatch": "^5.0.1", diff --git a/.buildkite/pipeline-resource-definitions/kibana-codeql.yml b/.buildkite/pipeline-resource-definitions/kibana-codeql.yml new file mode 100644 index 0000000000000..3da2c9137c4e0 --- /dev/null +++ b/.buildkite/pipeline-resource-definitions/kibana-codeql.yml @@ -0,0 +1,34 @@ +# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json +apiVersion: backstage.io/v1alpha1 +kind: Resource +metadata: + name: bk-kibana-codeql + description: Run CodeQL + links: + - title: Pipeline link + url: https://buildkite.com/elastic/kibana-codeql +spec: + type: buildkite-pipeline + owner: group:kibana-operations + system: buildkite + implementation: + apiVersion: buildkite.elastic.dev/v1 + kind: Pipeline + metadata: + name: kibana / codeql + description: Run CodeQL + spec: + env: + SLACK_NOTIFICATIONS_CHANNEL: "#kibana-operations-alerts" + ELASTIC_SLACK_NOTIFICATIONS_ENABLED: "false" + repository: elastic/kibana + branch_configuration: main + default_branch: main + pipeline_file: ".buildkite/pipelines/codeql/codeql.yml" + provider_settings: + trigger_mode: none + teams: + kibana-operations: + access_level: MANAGE_BUILD_AND_READ + everyone: + access_level: READ_ONLY diff --git a/.buildkite/pipeline-resource-definitions/locations.yml b/.buildkite/pipeline-resource-definitions/locations.yml index 45a155d21280e..5144982a0627d 100644 --- a/.buildkite/pipeline-resource-definitions/locations.yml +++ b/.buildkite/pipeline-resource-definitions/locations.yml @@ -44,3 +44,4 @@ spec: - https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/security-solution-quality-gate/kibana-serverless-security-solution-quality-gate-rule-management.yml - https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/trigger-version-dependent-jobs.yml - https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/kibana-pointer-compression.yml + - https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/kibana-codeql.yml diff --git a/.buildkite/pipeline-resource-definitions/scripts/fix-location-collection.ts b/.buildkite/pipeline-resource-definitions/scripts/fix-location-collection.ts index 1173cddeb15aa..8080c8f7d1d70 100755 --- a/.buildkite/pipeline-resource-definitions/scripts/fix-location-collection.ts +++ b/.buildkite/pipeline-resource-definitions/scripts/fix-location-collection.ts @@ -36,6 +36,7 @@ async function main() { const preamble = locationFileLines.slice(0, 1); + // eslint-disable-next-line @kbn/eslint/no_unsafe_js_yaml const locationObj = jsYaml.load( locationFileLines.slice(1).join('\n') ) as BackstageLocationResource; @@ -43,6 +44,7 @@ async function main() { (fileName) => `${resourceDefinitionsBaseUrl}/${fileName}` ); + // eslint-disable-next-line @kbn/eslint/no_unsafe_js_yaml const locationYaml = jsYaml.dump(locationObj, { lineWidth: 400 }); fs.writeFileSync(locationFile, `${preamble.join('\n')}\n${locationYaml}`); diff --git a/.buildkite/pipeline-resource-definitions/scripts/validate-pipeline-definition.sh b/.buildkite/pipeline-resource-definitions/scripts/validate-pipeline-definition.sh index cd153b23f10ab..e60aa8ca755d9 100755 --- a/.buildkite/pipeline-resource-definitions/scripts/validate-pipeline-definition.sh +++ b/.buildkite/pipeline-resource-definitions/scripts/validate-pipeline-definition.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash +# renovate.json tracks this file for updating the pipelib docker image, update the path if you move this file # This script is used to validate a single RRE for a pipeline definition. TARGET_FILE=$1 @@ -16,7 +17,7 @@ FOLDER_NAME=$(dirname "$ABSOLUTE_PATH") docker run -it \ --mount type=bind,source="$FOLDER_NAME",target=/home/app/ \ - docker.elastic.co/ci-agent-images/pipelib \ + docker.elastic.co/ci-agent-images/pipelib:0.8.0@sha256:641d7fc6cfe473900a1fbe49876762916d804b09fdf2945f74e9f803f3073779 \ rre validate --backstage-entity-aware "/home/app/$FILE_NAME" if [ $? -ne 0 ]; then diff --git a/.buildkite/pipeline-utils/agent_images.ts b/.buildkite/pipeline-utils/agent_images.ts index d139f7953e00f..85aa4bd6fb33c 100644 --- a/.buildkite/pipeline-utils/agent_images.ts +++ b/.buildkite/pipeline-utils/agent_images.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +// eslint-disable-next-line @kbn/eslint/no_unsafe_js_yaml import { dump } from 'js-yaml'; import { BuildkiteClient, BuildkiteCommandStep } from './buildkite'; diff --git a/.buildkite/pipeline-utils/buildkite/client.ts b/.buildkite/pipeline-utils/buildkite/client.ts index c58c3cb7e42e3..a0232d90e8e07 100644 --- a/.buildkite/pipeline-utils/buildkite/client.ts +++ b/.buildkite/pipeline-utils/buildkite/client.ts @@ -8,7 +8,10 @@ import axios, { AxiosInstance } from 'axios'; import { execSync, ExecSyncOptions } from 'child_process'; + +// eslint-disable-next-line @kbn/eslint/no_unsafe_js_yaml import { dump } from 'js-yaml'; + import { parseLinkHeader } from './parse_link_header'; import { Artifact } from './types/artifact'; import { Build, BuildStatus } from './types/build'; diff --git a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts index af77cd3138c46..5aa5655014dab 100644 --- a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts +++ b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts @@ -10,6 +10,8 @@ import * as Fs from 'fs'; import * as globby from 'globby'; import minimatch from 'minimatch'; + +// eslint-disable-next-line @kbn/eslint/no_unsafe_js_yaml import { load as loadYaml } from 'js-yaml'; import { BuildkiteClient, BuildkiteStep } from '../buildkite'; diff --git a/.buildkite/pipelines/codeql/codeql.yml b/.buildkite/pipelines/codeql/codeql.yml new file mode 100644 index 0000000000000..52fc4f910713a --- /dev/null +++ b/.buildkite/pipelines/codeql/codeql.yml @@ -0,0 +1,2 @@ +steps: + - command: echo "Placeholder" diff --git a/.buildkite/pipelines/on_merge.yml b/.buildkite/pipelines/on_merge.yml index 4eb15c16970ef..e37e99c9c4df1 100644 --- a/.buildkite/pipelines/on_merge.yml +++ b/.buildkite/pipelines/on_merge.yml @@ -37,7 +37,7 @@ steps: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - machineType: n2-standard-2 + machineType: n2-highcpu-8 preemptible: true key: quick_checks timeout_in_minutes: 60 @@ -589,6 +589,11 @@ steps: preemptible: true artifact_paths: "target/plugin_so_types_snapshot.json" + timeout_in_minutes: 30 + retry: + automatic: + - exit_status: '-1' + limit: 3 - wait: ~ continue_on_failure: true diff --git a/.buildkite/pipelines/pull_request/base.yml b/.buildkite/pipelines/pull_request/base.yml index e5da8ce788e5b..2f2e0a739a304 100644 --- a/.buildkite/pipelines/pull_request/base.yml +++ b/.buildkite/pipelines/pull_request/base.yml @@ -23,7 +23,7 @@ steps: - command: .buildkite/scripts/steps/quick_checks.sh label: 'Quick Checks' agents: - machineType: n2-standard-2 + machineType: n2-highcpu-8 preemptible: true key: quick_checks timeout_in_minutes: 60 diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml index b9ff060e706e7..72af06600ada7 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml @@ -2,7 +2,7 @@ steps: - group: "Cypress MKI - Defend Workflows" key: cypress_test_defend_workflows steps: - - label: "Running cypress:dw:qa:serverless:run" + - label: "Cypress - DW - Running cypress:dw:qa:serverless:run" command: .buildkite/scripts/pipelines/security_solution_quality_gate/edr_workflows/mki_security_solution_defend_workflows.sh cypress:dw:qa:serverless:run key: test_defend_workflows agents: @@ -14,7 +14,7 @@ steps: localSsdInterface: nvme machineType: n2-standard-4 timeout_in_minutes: 300 - parallelism: 6 + parallelism: 5 retry: automatic: - exit_status: "*" @@ -91,7 +91,7 @@ steps: # - exit_status: "1" # limit: 1 - - label: "Running edr_workflows:policy_response:qa:serverless" + - label: "API - DW - Running edr_workflows:policy_response:qa:serverless" command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh edr_workflows:policy_response:qa:serverless key: edr_workflows:policy_response:qa:serverless agents: @@ -108,7 +108,7 @@ steps: - exit_status: "1" limit: 1 - - label: "Running edr_workflows:resolver:qa:serverless" + - label: "API - DW - Running edr_workflows:resolver:qa:serverless" command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh edr_workflows:resolver:qa:serverless key: edr_workflows:resolver:qa:serverless agents: @@ -125,7 +125,7 @@ steps: - exit_status: "1" limit: 1 - - label: "Running edr_workflows:response_actions:qa:serverless" + - label: "API - DW - Running edr_workflows:response_actions:qa:serverless" command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh edr_workflows:response_actions:qa:serverless key: edr_workflows:response_actions:qa:serverless agents: @@ -141,3 +141,24 @@ steps: automatic: - exit_status: "1" limit: 1 + + - group: "Osquery MKI - Defend Workflows" + key: cypress_test_osquery_defend_workflows + steps: + - label: "Osquery - Cypress - DW - Running cypress:qa:serverless:run" + command: .buildkite/scripts/pipelines/security_solution_quality_gate/edr_workflows/mki_security_solution_defend_workflows_osquery.sh cypress:qa:serverless:run + key: test_osquery_defend_workflows + agents: + image: family/kibana-ubuntu-2004 + imageProject: elastic-images-prod + provider: gcp + enableNestedVirtualization: true + localSsds: 1 + localSsdInterface: nvme + machineType: n2-standard-4 + timeout_in_minutes: 300 + parallelism: 3 + retry: + automatic: + - exit_status: "*" + limit: 1 diff --git a/.buildkite/scripts/common/util.sh b/.buildkite/scripts/common/util.sh index d50fafad6967b..dce418180c107 100755 --- a/.buildkite/scripts/common/util.sh +++ b/.buildkite/scripts/common/util.sh @@ -12,7 +12,7 @@ is_pr_with_label() { IFS=',' read -ra labels <<< "${GITHUB_PR_LABELS:-}" - for label in "${labels[@]}" + for label in "${labels[@]:-}" do if [ "$label" == "$match" ]; then return diff --git a/.buildkite/scripts/pipelines/security_solution_quality_gate/edr_workflows/mki_security_solution_defend_workflows_osquery.sh b/.buildkite/scripts/pipelines/security_solution_quality_gate/edr_workflows/mki_security_solution_defend_workflows_osquery.sh new file mode 100755 index 0000000000000..5dd9ef114b48d --- /dev/null +++ b/.buildkite/scripts/pipelines/security_solution_quality_gate/edr_workflows/mki_security_solution_defend_workflows_osquery.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -euo pipefail + +if [ -z "$1" ] + then + echo "No target script from the package.json file, is supplied" + exit 1 +fi + + +source .buildkite/scripts/common/util.sh +.buildkite/scripts/bootstrap.sh + +export JOB=kibana-defend-workflows-osquery-serverless-cypress + +buildkite-agent meta-data set "${BUILDKITE_JOB_ID}_is_test_execution_step" "true" + +source .buildkite/scripts/pipelines/security_solution_quality_gate/prepare_vault_entries.sh + +cd x-pack/plugins/osquery +set +e + +export BK_ANALYTICS_API_KEY=$(vault_get security-solution-quality-gate serverless-cypress-defend-workflows) + +echo "--- Running the tests for target $1" +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn $1; status=$?; yarn junit:merge || :; exit $status diff --git a/.buildkite/scripts/steps/artifacts/docker_image.sh b/.buildkite/scripts/steps/artifacts/docker_image.sh index 77790bf3d5a8a..a148bdb805f6f 100755 --- a/.buildkite/scripts/steps/artifacts/docker_image.sh +++ b/.buildkite/scripts/steps/artifacts/docker_image.sh @@ -118,6 +118,12 @@ echo "--- Trigger image tag update" if [[ "$BUILDKITE_BRANCH" == "$KIBANA_BASE_BRANCH" ]] && [[ "${BUILDKITE_PULL_REQUEST:-false}" == "false" ]]; then cat << EOF | buildkite-agent pipeline upload steps: + - label: "Trigger cve-slo-status pipeline for $KIBANA_IMAGE" + trigger: cve-slo-status + build: + env: + CONTAINER: "$KIBANA_IMAGE" + soft_fail: true - label: ":argo: Update kibana image tag for kibana-controller using gpctl" branches: main trigger: gpctl-promote-with-e2e-tests diff --git a/.buildkite/scripts/steps/capture_oas_snapshot.sh b/.buildkite/scripts/steps/capture_oas_snapshot.sh index 9768ff50c8fa5..fadd7276b47cc 100755 --- a/.buildkite/scripts/steps/capture_oas_snapshot.sh +++ b/.buildkite/scripts/steps/capture_oas_snapshot.sh @@ -5,7 +5,7 @@ set -euo pipefail source .buildkite/scripts/common/util.sh echo --- Capture OAS snapshot -cmd="node scripts/capture_oas_snapshot --include-path /api/status" +cmd="node scripts/capture_oas_snapshot --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules" if is_pr && ! is_auto_commit_disabled; then cmd="$cmd --update" fi diff --git a/.buildkite/scripts/steps/checks.sh b/.buildkite/scripts/steps/checks.sh index dd7c0c0e6d69c..50ee0363ad93f 100755 --- a/.buildkite/scripts/steps/checks.sh +++ b/.buildkite/scripts/steps/checks.sh @@ -15,3 +15,4 @@ fi .buildkite/scripts/steps/code_generation/security_solution_codegen.sh .buildkite/scripts/steps/openapi_bundling/security_solution_openapi_bundling.sh .buildkite/scripts/steps/code_generation/osquery_codegen.sh +.buildkite/scripts/steps/openapi_bundling/final_merge.sh diff --git a/.buildkite/scripts/steps/checks/event_log.sh b/.buildkite/scripts/steps/checks/event_log.sh index dc9c01902c010..930908bb2d0ec 100755 --- a/.buildkite/scripts/steps/checks/event_log.sh +++ b/.buildkite/scripts/steps/checks/event_log.sh @@ -8,7 +8,25 @@ echo --- Check Event Log Schema # event log schema is pinned to a specific version of ECS ECS_STABLE_VERSION=1.8 -git clone --depth 1 -b $ECS_STABLE_VERSION https://github.com/elastic/ecs.git ../ecs + +# we can potentially skip this check on a local env, if ../ecs is present, and modified by the developer +if [[ "${CI:-false}" =~ ^(0|false)$ ]] && [[ -d '../ecs' ]]; then + LOCAL_ECS_BRANCH=$(git -C ../ecs branch --show-current) + if [[ "$LOCAL_ECS_BRANCH" != "$ECS_STABLE_VERSION" ]]; then + echo "Skipping event log schema check because ECS schema is not on $ECS_STABLE_VERSION." + exit 0 + fi + + TOUCHED_FILES=$(git -C ../ecs status --porcelain) + if [[ -n "$TOUCHED_FILES" ]]; then + echo "Skipping event log schema check because ECS schema files have been modified." + exit 0 + fi + + echo "../ecs is already cloned and @ $ECS_STABLE_VERSION" +else + git clone --depth 1 -b $ECS_STABLE_VERSION https://github.com/elastic/ecs.git ../ecs +fi node x-pack/plugins/event_log/scripts/create_schemas.js diff --git a/.buildkite/scripts/steps/checks/native_modules.sh b/.buildkite/scripts/steps/checks/native_modules.sh new file mode 100755 index 0000000000000..e7f585de97d15 --- /dev/null +++ b/.buildkite/scripts/steps/checks/native_modules.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source .buildkite/scripts/common/util.sh + +echo --- Check Production Native Node Modules +node scripts/check_prod_native_modules diff --git a/.buildkite/scripts/steps/checks/quick_checks.txt b/.buildkite/scripts/steps/checks/quick_checks.txt new file mode 100644 index 0000000000000..e0196950b4a75 --- /dev/null +++ b/.buildkite/scripts/steps/checks/quick_checks.txt @@ -0,0 +1,20 @@ +.buildkite/scripts/steps/checks/precommit_hook.sh +.buildkite/scripts/steps/checks/ts_projects.sh +.buildkite/scripts/steps/checks/packages.sh +.buildkite/scripts/steps/checks/bazel_packages.sh +.buildkite/scripts/steps/checks/verify_notice.sh +.buildkite/scripts/steps/checks/plugin_list_docs.sh +.buildkite/scripts/steps/checks/event_log.sh +.buildkite/scripts/steps/checks/telemetry.sh +.buildkite/scripts/steps/checks/jest_configs.sh +.buildkite/scripts/steps/checks/bundle_limits.sh +.buildkite/scripts/steps/checks/i18n.sh +.buildkite/scripts/steps/checks/file_casing.sh +.buildkite/scripts/steps/checks/licenses.sh +.buildkite/scripts/steps/checks/test_projects.sh +.buildkite/scripts/steps/checks/test_hardening.sh +.buildkite/scripts/steps/checks/ftr_configs.sh +.buildkite/scripts/steps/checks/yarn_deduplicate.sh +.buildkite/scripts/steps/checks/prettier_topology.sh +.buildkite/scripts/steps/checks/renovate.sh +.buildkite/scripts/steps/checks/native_modules.sh diff --git a/.buildkite/scripts/steps/checks/renovate.sh b/.buildkite/scripts/steps/checks/renovate.sh new file mode 100755 index 0000000000000..17c87254511e1 --- /dev/null +++ b/.buildkite/scripts/steps/checks/renovate.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +# renovate.json tracks this file for updating the pipelib docker image, update the path if you move this file + +set -euo pipefail + +echo --- Check renovate.json +docker run -v "$(pwd)"/renovate.json:/home/app/renovate.json docker.elastic.co/ci-agent-images/pipelib:0.8.0@sha256:641d7fc6cfe473900a1fbe49876762916d804b09fdf2945f74e9f803f3073779 renovate-config-validator diff --git a/.buildkite/scripts/steps/openapi_bundling/final_merge.sh b/.buildkite/scripts/steps/openapi_bundling/final_merge.sh new file mode 100755 index 0000000000000..41ca47aef24ee --- /dev/null +++ b/.buildkite/scripts/steps/openapi_bundling/final_merge.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source .buildkite/scripts/common/util.sh + +echo --- Merge Kibana OpenAPI specs + +(cd oas_docs && make api-docs && make api-docs-lint) diff --git a/.buildkite/scripts/steps/quick_checks.sh b/.buildkite/scripts/steps/quick_checks.sh index c9719e5c08fa9..1b1613d42dc8d 100755 --- a/.buildkite/scripts/steps/quick_checks.sh +++ b/.buildkite/scripts/steps/quick_checks.sh @@ -2,24 +2,9 @@ set -euo pipefail -export DISABLE_BOOTSTRAP_VALIDATION=false -.buildkite/scripts/bootstrap.sh +if [[ "${CI:-}" =~ ^(1|true)$ ]]; then + export DISABLE_BOOTSTRAP_VALIDATION=false + .buildkite/scripts/bootstrap.sh +fi -.buildkite/scripts/steps/checks/precommit_hook.sh -.buildkite/scripts/steps/checks/ts_projects.sh -.buildkite/scripts/steps/checks/packages.sh -.buildkite/scripts/steps/checks/bazel_packages.sh -.buildkite/scripts/steps/checks/verify_notice.sh -.buildkite/scripts/steps/checks/plugin_list_docs.sh -.buildkite/scripts/steps/checks/event_log.sh -.buildkite/scripts/steps/checks/telemetry.sh -.buildkite/scripts/steps/checks/jest_configs.sh -.buildkite/scripts/steps/checks/bundle_limits.sh -.buildkite/scripts/steps/checks/i18n.sh -.buildkite/scripts/steps/checks/file_casing.sh -.buildkite/scripts/steps/checks/licenses.sh -.buildkite/scripts/steps/checks/test_projects.sh -.buildkite/scripts/steps/checks/test_hardening.sh -.buildkite/scripts/steps/checks/ftr_configs.sh -.buildkite/scripts/steps/checks/yarn_deduplicate.sh -.buildkite/scripts/steps/checks/prettier_topology.sh +node scripts/quick_checks --file .buildkite/scripts/steps/checks/quick_checks.txt diff --git a/.devcontainer/.env.template b/.devcontainer/.env.template new file mode 100644 index 0000000000000..3ca02c49bfa9c --- /dev/null +++ b/.devcontainer/.env.template @@ -0,0 +1,4 @@ +# /bin/bash or /bin/zsh (oh-my-zsh is installed by default as well) +SHELL=/bin/bash +# Switch to 1 to enable FIPS environment, any other value to disable +FIPS=0 diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000000..539e23a4a3a31 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,69 @@ +FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04 + +ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 +ENV HOME=/home/vscode +ENV NVM_DIR=${HOME}/nvm +ENV NVM_VERSION=v0.39.1 +ENV KBN_DIR=/workspaces/kibana +ENV OPENSSL_PATH=${HOME}/openssl +# Only specific versions are FIPS certified. +ENV OPENSSL_VERSION='3.0.8' + +RUN apt-get update && apt-get install -y curl git zsh locales docker.io perl make gcc xvfb + +RUN locale-gen en_US.UTF-8 + +# Oh My Zsh setup +RUN if [ ! -d "$HOME/.oh-my-zsh" ]; then \ + sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"; \ + fi && \ + ZSH_CUSTOM=${ZSH_CUSTOM:-~/.oh-my-zsh/custom} && \ + if [ ! -d "$ZSH_CUSTOM/plugins/zsh-autosuggestions" ]; then \ + git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions; \ + fi && \ + sed -i 's/plugins=(git)/plugins=(git ssh-agent npm docker zsh-autosuggestions)/' /home/vscode/.zshrc + +# Docker-in-Docker setup +RUN usermod -aG docker vscode + +# FIPS setup +# https://github.com/openssl/openssl/blob/openssl-3.0/README-FIPS.md +# https://www.openssl.org/docs/man3.0/man7/fips_module.html +WORKDIR ${HOME} + +RUN set -e ; \ + mkdir -p "${OPENSSL_PATH}"; \ + curl --retry 8 -S -L -O "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" ; \ + curl --retry 8 -S -L -O "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz.sha256" ; \ + echo "$(cat openssl-${OPENSSL_VERSION}.tar.gz.sha256) openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c ; \ + tar -zxf "openssl-${OPENSSL_VERSION}.tar.gz" ; \ + rm -rf openssl-${OPENSSL_VERSION}.tar* ; \ + cd "${OPENSSL_PATH}-${OPENSSL_VERSION}" ; \ + ./Configure --prefix="${OPENSSL_PATH}" --openssldir="${OPENSSL_PATH}/ssl" --libdir="${OPENSSL_PATH}/lib" shared -Wl,-rpath,${OPENSSL_PATH}/lib enable-fips; \ + make -j $(nproc) > /dev/null ; \ + make install > /dev/null ; \ + rm -rf "${OPENSSL_PATH}-${OPENSSL_VERSION}" ; \ + chown -R 1000:1000 "${OPENSSL_PATH}"; + +WORKDIR ${KBN_DIR} + +# Node and NVM setup +COPY .node-version /tmp/ +RUN mkdir -p $NVM_DIR && \ + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh | bash && \ + . "$NVM_DIR/nvm.sh" && \ + NODE_VERSION=$(cat /tmp/.node-version) && \ + nvm install ${NODE_VERSION} && \ + nvm use ${NODE_VERSION} && \ + nvm alias default ${NODE_VERSION} && \ + npm install -g yarn && \ + echo "source $NVM_DIR/nvm.sh" >> ${HOME}/.bashrc && \ + echo "source $NVM_DIR/nvm.sh" >> ${HOME}/.zshrc && \ + chown -R 1000:1000 "${HOME}/.npm" + +# Reload the env everytime a new shell is opened incase the .env file changed. +RUN echo "source $KBN_DIR/.devcontainer/scripts/env.sh" >> ${HOME}/.bashrc && \ + echo "source $KBN_DIR/.devcontainer/scripts/env.sh" >> ${HOME}/.zshrc + +# This is for documentation. Ports are exposed via devcontainer.json +EXPOSE 9200 5601 9229 9230 9231 diff --git a/.devcontainer/README.md b/.devcontainer/README.md new file mode 100644 index 0000000000000..835ce0f756499 --- /dev/null +++ b/.devcontainer/README.md @@ -0,0 +1 @@ +See the [dev docs](https://github.com/elastic/kibana/blob/main/dev_docs/getting_started/setting_up_a_development_env.mdx#using-the-kibana-dev-container-optional) for information on using the Kibana Dev Container. \ No newline at end of file diff --git a/.devcontainer/config/nodejs.cnf b/.devcontainer/config/nodejs.cnf new file mode 100644 index 0000000000000..eef11d640e198 --- /dev/null +++ b/.devcontainer/config/nodejs.cnf @@ -0,0 +1,28 @@ +########################################################################## +## ## +## This OpenSSL config is only loaded when running Kibana in FIPS mode. ## +## ## +## See: ## +## https://github.com/openssl/openssl/blob/openssl-3.0/README-FIPS.md ## +## https://www.openssl.org/docs/man3.0/man7/fips_module.html ## +## ## +########################################################################## + +nodejs_conf = nodejs_init +.include /home/vscode/openssl/ssl/fipsmodule.cnf + +[nodejs_init] +providers = provider_sect +alg_section = algorithm_sect + +[provider_sect] +default = default_sect +# The fips section name should match the section name inside the +# included fipsmodule.cnf. +fips = fips_sect + +[default_sect] +activate = 1 + +[algorithm_sect] +default_properties = fips=yes \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000000..f5fea9e37c5d3 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,41 @@ +{ + "name": "Kibana", + "build": { + "dockerfile": "Dockerfile", + "context": ".." + }, + "customizations": { + "vscode": { + "extensions": [ + "dbaeumer.vscode-eslint", + "ms-azuretools.vscode-docker", + "editorconfig.editorconfig", + "timonwong.shellcheck", + "eamodio.gitlens", + "github.vscode-pull-request-github" + ] + } + }, + "forwardPorts": [ + 9200, + 5601, + 9229, + 9230, + 9231 + ], + "postStartCommand": "/workspaces/kibana/.devcontainer/scripts/post_start.sh", + "remoteUser": "vscode", + "features": { + "ghcr.io/devcontainers/features/docker-in-docker:2": { + "version": "latest", + "dockerDashComposeVersion": "latest" + }, + "ghcr.io/devcontainers/features/github-cli:1": { + "installDirectlyFromGitHubRelease": true, + "version": "latest" + }, + "ghcr.io/kreemer/features/chrometesting:1": { + "version": "stable" + } + } +} diff --git a/.devcontainer/scripts/env.sh b/.devcontainer/scripts/env.sh new file mode 100755 index 0000000000000..77c2000663e5f --- /dev/null +++ b/.devcontainer/scripts/env.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +ENV_PATH="${KBN_DIR}/.devcontainer/.env" +KBN_CONFIG_FILE="${KBN_DIR}/config/kibana.dev.yml" + +setup_fips() { + if [ ! -f "$KBN_CONFIG_FILE" ]; then + touch "$KBN_CONFIG_FILE" + fi + + if [ -n "$FIPS" ] && [ "$FIPS" = "1" ]; then + sed -i '/xpack.security.experimental.fipsMode.enabled:/ {s/.*/xpack.security.experimental.fipsMode.enabled: true/; t}; $a\xpack.security.experimental.fipsMode.enabled: true' "$KBN_CONFIG_FILE" + + # Patch node_modules so we can start Kibana in dev mode + sed -i 's/hashType = hashType || '\''md5'\'';/hashType = hashType || '\''sha1'\'';/g' "${KBN_DIR}/node_modules/file-loader/node_modules/loader-utils/lib/getHashDigest.js" + sed -i 's/const hash = createHash("md4");/const hash = createHash("sha1");/g' "${KBN_DIR}/node_modules/webpack/lib/ModuleFilenameHelpers.js" + sed -i 's/contentHash: createHash("md4")/contentHash: createHash("sha1")/g' "${KBN_DIR}/node_modules/webpack/lib/SourceMapDevToolPlugin.js" + + export OPENSSL_MODULES="$OPENSSL_PATH/lib/ossl-modules" + export NODE_OPTIONS="--enable-fips --openssl-config=$KBN_DIR/.devcontainer/config/nodejs.cnf" + echo "FIPS mode enabled" + echo "If manually bootstrapping in FIPS mode use: NODE_OPTIONS='' yarn kbn bootstrap" + else + sed -i '/xpack.security.experimental.fipsMode.enabled:/ {s/.*/xpack.security.experimental.fipsMode.enabled: false/; t}; $a\xpack.security.experimental.fipsMode.enabled: false' "$KBN_CONFIG_FILE" + fi +} + +setup_shell() { + if [ -n "$SHELL" ] && [ -x "$SHELL" ]; then + current_shell=$(ps -p $$ -o comm=) + desired_shell=$(basename "$SHELL") + + if [ "$current_shell" != "$desired_shell" ]; then + sudo chsh -s "$SHELL" vscode + exec "$SHELL" + fi + else + echo "Shell is not set or not executable, using bash" + fi +} + +if [ -f "$ENV_PATH" ]; then + source "$ENV_PATH" + setup_fips + setup_shell +else + echo ".env file not found, using default values" +fi diff --git a/.devcontainer/scripts/post_start.sh b/.devcontainer/scripts/post_start.sh new file mode 100755 index 0000000000000..78490bb73d513 --- /dev/null +++ b/.devcontainer/scripts/post_start.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# If FIPS mode is enabled, there can be issues installing some dependencies due to invalid algorithms. +# So override the NODE_OPTIONS environment variable to disable FIPS mode. +NODE_OPTIONS='' yarn kbn bootstrap + +Xvfb :99 -screen 0 1920x1080x24 & +export DISPLAY=:99 diff --git a/.eslintrc.js b/.eslintrc.js index 2b8c6c819bb3e..e8216f62792b2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1365,6 +1365,25 @@ module.exports = { 'react/jsx-fragments': 'error', }, }, + { + files: [ + 'test/{accessibility,*functional*,*api_integration*}/apps/**/*.{js,ts}', + 'x-pack/test/{accessibility,*functional*,*api_integration*}/apps/**/*.{js,ts}', + 'x-pack/test_serverless/{functional,api_integration}/test_suites/**/*.{js,ts}', + ], + extends: ['plugin:mocha/recommended'], + plugins: ['mocha'], + env: { + mocha: true, + }, + rules: { + 'mocha/no-mocha-arrows': 'off', + 'mocha/no-exports': 'off', + 'mocha/no-setup-in-describe': 'off', + 'mocha/no-nested-tests': 'off', + 'mocha/no-skipped-tests': 'off', + }, + }, { files: ['x-pack/plugins/lists/public/**/!(*.test).{js,mjs,ts,tsx}'], plugins: ['react-perf'], diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e07292b2eef19..79a8000fe2f68 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -68,11 +68,13 @@ packages/kbn-capture-oas-snapshot-cli @elastic/kibana-core x-pack/test/cases_api_integration/common/plugins/cases @elastic/response-ops packages/kbn-cases-components @elastic/response-ops x-pack/plugins/cases @elastic/response-ops +packages/kbn-cbor @elastic/kibana-operations packages/kbn-cell-actions @elastic/security-threat-hunting-explore src/plugins/chart_expressions/common @elastic/kibana-visualizations packages/kbn-chart-icons @elastic/kibana-visualizations src/plugins/charts @elastic/kibana-visualizations packages/kbn-check-mappings-update-cli @elastic/kibana-core +packages/kbn-check-prod-native-modules-cli @elastic/kibana-operations packages/kbn-ci-stats-core @elastic/kibana-operations packages/kbn-ci-stats-performance-metrics @elastic/kibana-operations packages/kbn-ci-stats-reporter @elastic/kibana-operations @@ -87,6 +89,8 @@ x-pack/plugins/cloud_integrations/cloud_full_story @elastic/kibana-core x-pack/test/cloud_integration/plugins/saml_provider @elastic/kibana-core x-pack/plugins/cloud_integrations/cloud_links @elastic/kibana-core x-pack/plugins/cloud @elastic/kibana-core +x-pack/packages/kbn-cloud-security-posture @elastic/kibana-cloud-security-posture +x-pack/packages/kbn-cloud-security-posture-common @elastic/kibana-cloud-security-posture x-pack/plugins/cloud_security_posture @elastic/kibana-cloud-security-posture packages/shared-ux/code_editor/impl @elastic/appex-sharedux packages/shared-ux/code_editor/mocks @elastic/appex-sharedux @@ -97,7 +101,11 @@ packages/kbn-config-mocks @elastic/kibana-core packages/kbn-config-schema @elastic/kibana-core src/plugins/console @elastic/kibana-management packages/content-management/content_editor @elastic/appex-sharedux +packages/content-management/content_insights/content_insights_public @elastic/appex-sharedux +packages/content-management/content_insights/content_insights_server @elastic/appex-sharedux examples/content_management_examples @elastic/appex-sharedux +packages/content-management/favorites/favorites_public @elastic/appex-sharedux +packages/content-management/favorites/favorites_server @elastic/appex-sharedux src/plugins/content_management @elastic/appex-sharedux packages/content-management/tabbed_table_list_view @elastic/appex-sharedux packages/content-management/table_list_view @elastic/appex-sharedux @@ -393,6 +401,7 @@ x-pack/plugins/encrypted_saved_objects @elastic/kibana-security x-pack/plugins/enterprise_search @elastic/search-kibana x-pack/plugins/observability_solution/entities_data_access @elastic/obs-entities x-pack/packages/kbn-entities-schema @elastic/obs-entities +x-pack/test/api_integration/apis/entity_manager/fixture_plugin @elastic/obs-entities x-pack/plugins/observability_solution/entity_manager @elastic/obs-entities examples/error_boundary @elastic/appex-sharedux packages/kbn-es @elastic/kibana-operations @@ -416,6 +425,7 @@ src/plugins/esql_datagrid @elastic/kibana-esql packages/kbn-esql-utils @elastic/kibana-esql packages/kbn-esql-validation-autocomplete @elastic/kibana-esql examples/esql_validation_example @elastic/kibana-esql +test/plugin_functional/plugins/eui_provider_dev_warning @elastic/appex-sharedux packages/kbn-event-annotation-common @elastic/kibana-visualizations packages/kbn-event-annotation-components @elastic/kibana-visualizations src/plugins/event_annotation_listing @elastic/kibana-visualizations @@ -475,6 +485,8 @@ x-pack/plugins/global_search @elastic/appex-sharedux x-pack/plugins/global_search_providers @elastic/appex-sharedux x-pack/test/plugin_functional/plugins/global_search_test @elastic/kibana-core x-pack/plugins/graph @elastic/kibana-visualizations +examples/grid_example @elastic/kibana-presentation +packages/kbn-grid-layout @elastic/kibana-presentation x-pack/plugins/grokdebugger @elastic/kibana-management packages/kbn-grouping @elastic/response-ops packages/kbn-guided-onboarding @elastic/appex-sharedux @@ -482,6 +494,7 @@ examples/guided_onboarding_example @elastic/appex-sharedux src/plugins/guided_onboarding @elastic/appex-sharedux packages/kbn-handlebars @elastic/kibana-security packages/kbn-hapi-mocks @elastic/kibana-core +test/plugin_functional/plugins/hardening @elastic/kibana-security packages/kbn-health-gateway-server @elastic/kibana-core examples/hello_world @elastic/kibana-core src/plugins/home @elastic/kibana-core @@ -499,7 +512,7 @@ x-pack/packages/index-management @elastic/kibana-management x-pack/plugins/index_management @elastic/kibana-management test/plugin_functional/plugins/index_patterns @elastic/kibana-data-discovery x-pack/packages/ml/inference_integration_flyout @elastic/ml-ui -x-pack/plugins/inference @elastic/kibana-core +x-pack/plugins/inference @elastic/appex-ai-infra x-pack/packages/kbn-infra-forge @elastic/obs-ux-management-team x-pack/plugins/observability_solution/infra @elastic/obs-ux-logs-team @elastic/obs-ux-infra_services-team x-pack/plugins/ingest_pipelines @elastic/kibana-management @@ -511,6 +524,7 @@ test/interactive_setup_api_integration/plugins/test_endpoints @elastic/kibana-se packages/kbn-interpreter @elastic/kibana-visualizations x-pack/plugins/observability_solution/investigate_app @elastic/obs-ux-management-team x-pack/plugins/observability_solution/investigate @elastic/obs-ux-management-team +packages/kbn-investigation-shared @elastic/obs-ux-management-team packages/kbn-io-ts-utils @elastic/obs-knowledge-team packages/kbn-ipynb @elastic/search-kibana packages/kbn-jest-serializers @elastic/kibana-operations @@ -722,13 +736,16 @@ examples/screenshot_mode_example @elastic/appex-sharedux src/plugins/screenshot_mode @elastic/appex-sharedux x-pack/examples/screenshotting_example @elastic/appex-sharedux x-pack/plugins/screenshotting @elastic/kibana-reporting-services +packages/kbn-screenshotting-server @elastic/appex-sharedux packages/kbn-search-api-panels @elastic/search-kibana +x-pack/plugins/search_assistant @elastic/search-kibana packages/kbn-search-connectors @elastic/search-kibana x-pack/plugins/search_connectors @elastic/search-kibana packages/kbn-search-errors @elastic/kibana-data-discovery examples/search_examples @elastic/kibana-data-discovery x-pack/plugins/search_homepage @elastic/search-kibana packages/kbn-search-index-documents @elastic/search-kibana +x-pack/plugins/search_indices @elastic/search-kibana x-pack/plugins/search_inference_endpoints @elastic/search-kibana x-pack/plugins/search_notebooks @elastic/search-kibana x-pack/plugins/search_playground @elastic/search-kibana @@ -737,12 +754,15 @@ packages/kbn-search-types @elastic/kibana-data-discovery x-pack/plugins/searchprofiler @elastic/kibana-management x-pack/test/security_api_integration/packages/helpers @elastic/kibana-security x-pack/packages/security/api_key_management @elastic/kibana-security +x-pack/packages/security/authorization_core @elastic/kibana-security x-pack/packages/security/form_components @elastic/kibana-security packages/kbn-security-hardening @elastic/kibana-security x-pack/plugins/security @elastic/kibana-security x-pack/packages/security/plugin_types_common @elastic/kibana-security x-pack/packages/security/plugin_types_public @elastic/kibana-security x-pack/packages/security/plugin_types_server @elastic/kibana-security +x-pack/packages/security/role_management_model @elastic/kibana-security +x-pack/packages/security-solution/common @elastic/security-threat-hunting-investigations x-pack/packages/security-solution/distribution_bar @elastic/kibana-cloud-security-posture x-pack/plugins/security_solution_ess @elastic/security-solution x-pack/packages/security-solution/features @elastic/security-threat-hunting-explore @@ -754,6 +774,7 @@ x-pack/packages/security-solution/side_nav @elastic/security-threat-hunting-expl x-pack/packages/security-solution/storybook/config @elastic/security-threat-hunting-explore x-pack/packages/security-solution/upselling @elastic/security-threat-hunting-explore x-pack/test/security_functional/plugins/test_endpoints @elastic/kibana-security +x-pack/packages/security/ui_components @elastic/kibana-security packages/kbn-securitysolution-autocomplete @elastic/security-detection-engine x-pack/packages/security-solution/data_table @elastic/security-threat-hunting-investigations packages/kbn-securitysolution-ecs @elastic/security-threat-hunting-explore @@ -842,6 +863,7 @@ packages/shared-ux/router/types @elastic/appex-sharedux packages/shared-ux/storybook/config @elastic/appex-sharedux packages/shared-ux/storybook/mock @elastic/appex-sharedux packages/shared-ux/modal/tabbed @elastic/appex-sharedux +packages/shared-ux/table_persist @elastic/appex-sharedux packages/kbn-shared-ux-utility @elastic/appex-sharedux x-pack/plugins/observability_solution/slo @elastic/obs-ux-management-team x-pack/packages/kbn-slo-schema @elastic/obs-ux-management-team @@ -911,7 +933,7 @@ test/plugin_functional/plugins/ui_settings_plugin @elastic/kibana-core packages/kbn-ui-shared-deps-npm @elastic/kibana-operations packages/kbn-ui-shared-deps-src @elastic/kibana-operations packages/kbn-ui-theme @elastic/kibana-operations -packages/kbn-unified-data-table @elastic/kibana-data-discovery +packages/kbn-unified-data-table @elastic/kibana-data-discovery @elastic/security-threat-hunting-investigations packages/kbn-unified-doc-viewer @elastic/kibana-data-discovery examples/unified_doc_viewer @elastic/kibana-core src/plugins/unified_doc_viewer @elastic/kibana-data-discovery @@ -1016,6 +1038,7 @@ packages/kbn-zod-helpers @elastic/security-detection-rule-management /x-pack/test_serverless/functional/test_suites/common/examples/search_examples @elastic/kibana-data-discovery /x-pack/test_serverless/functional/test_suites/common/examples/unified_field_list_examples @elastic/kibana-data-discovery /x-pack/test_serverless/functional/test_suites/common/management/data_views @elastic/kibana-data-discovery +src/plugins/discover/public/context_awareness/profile_providers/security @elastic/kibana-data-discovery @elastic/security-threat-hunting-investigations # Visualizations /src/plugins/visualize/ @elastic/kibana-visualizations @@ -1133,7 +1156,9 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/test_serverless/**/test_suites/observability/custom_threshold_rule/ @elastic/obs-ux-management-team /x-pack/test_serverless/**/test_suites/observability/slos/ @elastic/obs-ux-management-team /x-pack/test_serverless/api_integration/test_suites/observability/es_query_rule @elastic/obs-ux-management-team -/x-pack/test_serverless/api_integration/test_suites/observability/burn_rate_rule @elastic/obs-ux-management-team +/x-pack/test/api_integration/deployment_agnostic/apis/observability/alerting/burn_rate_rule @elastic/obs-ux-management-team +/x-pack/test/api_integration/deployment_agnostic/services/alerting_api @elastic/obs-ux-management-team +/x-pack/test/api_integration/deployment_agnostic/services/slo_api @elastic/obs-ux-management-team /x-pack/test_serverless/**/test_suites/observability/infra/ @elastic/obs-ux-infra_services-team # Elastic Stack Monitoring @@ -1142,7 +1167,6 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/test/api_integration/apis/monitoring_collection @elastic/stack-monitoring # Fleet -/fleet_packages.json @elastic/fleet /x-pack/test/fleet_api_integration @elastic/fleet /x-pack/test/fleet_cypress @elastic/fleet /x-pack/test/fleet_functional @elastic/fleet @@ -1258,6 +1282,7 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /kbn_pm/ @elastic/kibana-operations /x-pack/dev-tools @elastic/kibana-operations /catalog-info.yaml @elastic/kibana-operations @elastic/kibana-tech-leads +/.devcontainer/ @elastic/kibana-operations # Appex QA /src/dev/code_coverage @elastic/appex-qa @@ -1277,6 +1302,9 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/test_serverless/functional/test_suites/common/home_page/ @elastic/appex-qa /x-pack/test_serverless/**/services/ @elastic/appex-qa /packages/kbn-es/src/stateful_resources/roles.yml @elastic/appex-qa +x-pack/test/api_integration/deployment_agnostic/default_configs/ @elastic/appex-qa +x-pack/test/api_integration/deployment_agnostic/services/ @elastic/appex-qa +x-pack/test/**/deployment_agnostic/ @elastic/appex-qa #temporarily to monitor tests migration # Core /config/ @elastic/kibana-core @@ -1291,7 +1319,6 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/test_serverless/**/test_suites/common/saved_objects_management/ @elastic/kibana-core /x-pack/test_serverless/api_integration/test_suites/common/core/ @elastic/kibana-core /x-pack/test_serverless/api_integration/test_suites/**/telemetry/ @elastic/kibana-core -/x-pack/plugins/inference @elastic/kibana-core @elastic/obs-ai-assistant @elastic/security-generative-ai #CC# /src/core/server/csp/ @elastic/kibana-core #CC# /src/plugins/saved_objects/ @elastic/kibana-core #CC# /x-pack/plugins/cloud/ @elastic/kibana-core @@ -1300,6 +1327,9 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant #CC# /src/plugins/newsfeed @elastic/kibana-core #CC# /x-pack/plugins/global_search_providers/ @elastic/kibana-core +# AppEx AI Infra +/x-pack/plugins/inference @elastic/appex-ai-infra @elastic/obs-ai-assistant @elastic/security-generative-ai + # AppEx Platform Services Security x-pack/test_serverless/api_integration/test_suites/common/security_response_headers.ts @elastic/kibana-security @@ -1327,7 +1357,9 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib /packages/kbn-std/src/parse_next_url.ts @elastic/kibana-core @elastic/kibana-security /test/interactive_setup_api_integration/ @elastic/kibana-security /test/interactive_setup_functional/ @elastic/kibana-security +/test/plugin_functional/plugins/hardening @elastic/kibana-security /test/plugin_functional/test_suites/core_plugins/rendering.ts @elastic/kibana-security +/test/plugin_functional/test_suites/hardening @elastic/kibana-security /x-pack/test/accessibility/apps/group1/login_page.ts @elastic/kibana-security /x-pack/test/accessibility/apps/group1/roles.ts @elastic/kibana-security /x-pack/test/accessibility/apps/group1/spaces.ts @elastic/kibana-security @@ -1377,6 +1409,7 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib /x-pack/plugins/enterprise_search/public/applications/shared/doc_links @elastic/platform-docs /x-pack/test_serverless/api_integration/test_suites/search/serverless_search @elastic/search-kibana /x-pack/test_serverless/functional/test_suites/search/ @elastic/search-kibana +x-pack/test/api_integration/apis/management/index_management/inference_endpoints.ts @elastic/search-kibana # Management Experience - Deployment Management /x-pack/test_serverless/**/test_suites/common/index_management/ @elastic/kibana-management @@ -1523,18 +1556,18 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ ## Generative AI owner connectors # OpenAI -/x-pack/plugins/stack_connectors/public/connector_types/openai @elastic/security-generative-ai @elastic/obs-knowledge-team -/x-pack/plugins/stack_connectors/server/connector_types/openai @elastic/security-generative-ai @elastic/obs-knowledge-team -/x-pack/plugins/stack_connectors/common/openai @elastic/security-generative-ai @elastic/obs-knowledge-team +/x-pack/plugins/stack_connectors/public/connector_types/openai @elastic/security-generative-ai @elastic/obs-ai-assistant +/x-pack/plugins/stack_connectors/server/connector_types/openai @elastic/security-generative-ai @elastic/obs-ai-assistant +/x-pack/plugins/stack_connectors/common/openai @elastic/security-generative-ai @elastic/obs-ai-assistant # Bedrock -/x-pack/plugins/stack_connectors/public/connector_types/bedrock @elastic/security-generative-ai -/x-pack/plugins/stack_connectors/server/connector_types/bedrock @elastic/security-generative-ai -/x-pack/plugins/stack_connectors/common/bedrock @elastic/security-generative-ai +/x-pack/plugins/stack_connectors/public/connector_types/bedrock @elastic/security-generative-ai @elastic/obs-ai-assistant +/x-pack/plugins/stack_connectors/server/connector_types/bedrock @elastic/security-generative-ai @elastic/obs-ai-assistant +/x-pack/plugins/stack_connectors/common/bedrock @elastic/security-generative-ai @elastic/obs-ai-assistant # Gemini -/x-pack/plugins/stack_connectors/public/connector_types/gemini @elastic/security-generative-ai -/x-pack/plugins/stack_connectors/server/connector_types/gemini @elastic/security-generative-ai -/x-pack/plugins/stack_connectors/common/gemini @elastic/security-generative-ai +/x-pack/plugins/stack_connectors/public/connector_types/gemini @elastic/security-generative-ai @elastic/obs-ai-assistant +/x-pack/plugins/stack_connectors/server/connector_types/gemini @elastic/security-generative-ai @elastic/obs-ai-assistant +/x-pack/plugins/stack_connectors/common/gemini @elastic/security-generative-ai @elastic/obs-ai-assistant ## Defend Workflows owner connectors /x-pack/plugins/stack_connectors/public/connector_types/sentinelone @elastic/security-defend-workflows @@ -1737,6 +1770,8 @@ x-pack/plugins/observability_solution/observability_shared/public/components/pro # Shared UX packages/react @elastic/appex-sharedux +test/functional/page_objects/solution_navigation.ts @elastic/appex-sharedux +/x-pack/test_serverless/functional/page_objects/svl_common_navigation.ts @elastic/appex-sharedux # OpenAPI spec files /x-pack/plugins/fleet/common/openapi @elastic/platform-docs diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml index 461d850e4203c..d21bd48caf760 100644 --- a/.github/codeql/codeql-config.yml +++ b/.github/codeql/codeql-config.yml @@ -29,6 +29,7 @@ paths-ignore: - packages/kbn-eslint-plugin-disable - packages/kbn-eslint-plugin-eslint - packages/kbn-eslint-plugin-imports + - packages/*/scripts - packages/kbn-expect - packages/kbn-failed-test-reporter-cli - packages/kbn-find-used-node-modules @@ -70,5 +71,20 @@ paths-ignore: - packages/kbn-ts-type-check-cli - packages/kbn-web-worker-stub - packages/kbn-yarn-lock-validator + - scripts - test + - x-pack/plugins/canvas/scripts + - x-pack/plugins/cloud_security_posture/common/scripts + - x-pack/plugins/elastic_assistant/scripts + - x-pack/plugins/event_log/scripts + - x-pack/plugins/fleet/scripts + - x-pack/plugins/lists/scripts + - x-pack/plugins/lists/server/scripts + - x-pack/plugins/ml/scripts + - x-pack/plugins/observability_solution/*/scripts + - x-pack/plugins/osquery/scripts + - x-pack/plugins/rule_registry/scripts + - x-pack/plugins/security_solution/scripts + - x-pack/plugins/threat_intelligence/scripts + - x-pack/scripts - x-pack/test diff --git a/.github/workflows/add-fleet-issues-to-ingest-project.yml b/.github/workflows/add-fleet-issues-to-ingest-project.yml index 239c05c7028d4..ca04c0e6fa6d7 100644 --- a/.github/workflows/add-fleet-issues-to-ingest-project.yml +++ b/.github/workflows/add-fleet-issues-to-ingest-project.yml @@ -15,7 +15,7 @@ jobs: add_to_ingest_project: runs-on: ubuntu-latest steps: - - uses: octokit/graphql-action@v2.x + - uses: octokit/graphql-action@8ad880e4d437783ea2ab17010324de1075228110 # v2.3.2 id: add_to_project if: ${{ github.event.label.name == env.FLEET_LABEL }} with: @@ -32,7 +32,7 @@ jobs: content_id: ${{ github.event.issue.node_id }} env: GITHUB_TOKEN: ${{ secrets.FLEET_PROJECT_TOKEN }} - - uses: octokit/graphql-action@v2.x + - uses: octokit/graphql-action@8ad880e4d437783ea2ab17010324de1075228110 # v2.3.2 id: set_fleet_ui_area if: github.event.label.name == env.FLEET_LABEL with: diff --git a/.github/workflows/add-to-apm-project.yml b/.github/workflows/add-to-apm-project.yml index 8b55449060028..f3d0792ed6cd1 100644 --- a/.github/workflows/add-to-apm-project.yml +++ b/.github/workflows/add-to-apm-project.yml @@ -9,7 +9,7 @@ jobs: if: | github.event.label.name == 'Team:apm' steps: - - uses: octokit/graphql-action@v2.x + - uses: octokit/graphql-action@8ad880e4d437783ea2ab17010324de1075228110 # v2.3.2 id: add_to_project with: query: | @@ -27,7 +27,7 @@ jobs: env: PROJECT_ID: "PVT_kwDOAGc3Zs0VSg" GITHUB_TOKEN: ${{ secrets.APM_TECH_KIBANA_USER_TOKEN }} - - uses: octokit/graphql-action@v2.x + - uses: octokit/graphql-action@8ad880e4d437783ea2ab17010324de1075228110 # v2.3.2 id: label_team with: query: | diff --git a/.github/workflows/alert-failed-test.yml b/.github/workflows/alert-failed-test.yml index 92916629d80f3..4d465b03dd43f 100644 --- a/.github/workflows/alert-failed-test.yml +++ b/.github/workflows/alert-failed-test.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout kibana-operations - uses: actions/checkout@v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: 'elastic/kibana-operations' ref: main diff --git a/.github/workflows/auto-approve-api-docs.yml b/.github/workflows/auto-approve-api-docs.yml index 11e28d46d9cc2..00b814c1f699c 100644 --- a/.github/workflows/auto-approve-api-docs.yml +++ b/.github/workflows/auto-approve-api-docs.yml @@ -15,4 +15,4 @@ jobs: permissions: pull-requests: write steps: - - uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 #4.0.0 + - uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0 diff --git a/.github/workflows/auto-approve-backports.yml b/.github/workflows/auto-approve-backports.yml index 4c08e2bbb718c..97011de3f4675 100644 --- a/.github/workflows/auto-approve-backports.yml +++ b/.github/workflows/auto-approve-backports.yml @@ -15,4 +15,4 @@ jobs: permissions: pull-requests: write steps: - - uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 #4.0.0 + - uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0 diff --git a/.github/workflows/auto-approve-bundled-package-updates.yml b/.github/workflows/auto-approve-bundled-package-updates.yml new file mode 100644 index 0000000000000..5cf8655f37f73 --- /dev/null +++ b/.github/workflows/auto-approve-bundled-package-updates.yml @@ -0,0 +1,18 @@ +on: + pull_request: + types: + - opened + paths: + - 'fleet_packages.json' + +jobs: + approve: + name: Auto-approve bundled package updates + runs-on: ubuntu-latest + if: | + startsWith(github.event.pull_request.head.ref, 'update-bundled-packages') && + github.event.pull_request.user.login == 'elasticmachine' + permissions: + pull-requests: write + steps: + - uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0 diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml deleted file mode 100644 index 903c5a6ec36f9..0000000000000 --- a/.github/workflows/backport.yml +++ /dev/null @@ -1,32 +0,0 @@ -on: - pull_request_target: - branches: ['main'] - types: ['labeled', 'closed'] - -env: - NODE_ENV: kibana-github-action - -jobs: - backport: - name: Backport PR - runs-on: ubuntu-latest - if: | - github.event.pull_request.merged == true - && contains(github.event.pull_request.labels.*.name, 'auto-backport') - && ( - (github.event.action == 'labeled' && github.event.label.name == 'auto-backport') - || (github.event.action == 'closed') - ) - steps: - - name: Backport Action - uses: sorenlouv/backport-github-action@v8.9.7 - with: - github_token: ${{secrets.KIBANAMACHINE_TOKEN}} - - - name: Info log - if: ${{ success() }} - run: cat /home/runner/.backport/backport.info.log - - - name: Debug log - if: ${{ failure() }} - run: cat /home/runner/.backport/backport.debug.log diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c4819f86fa1f9..051cdc35b6507 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -22,12 +22,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: ref: ${{ matrix.branch }} - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 with: languages: ${{ matrix.language }} config-file: ./.github/codeql/codeql-config.yml @@ -42,7 +42,7 @@ jobs: # yarn kbn bootstrap --no-validate --no-vscode - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 # env: # NODE_OPTIONS: "--max-old-space-size=6144" with: diff --git a/.github/workflows/fix-version-gaps.yml b/.github/workflows/fix-version-gaps.yml deleted file mode 100644 index 77a56a268f20d..0000000000000 --- a/.github/workflows/fix-version-gaps.yml +++ /dev/null @@ -1,41 +0,0 @@ -on: - pull_request: - branches: - - main - types: - - closed - -jobs: - gaps: - name: Fix Version Label Gaps - # This fix also runs as part of the backport action (because backport depends on the labels) - # So we only need to trigger it for merged PRs that also won't be auto-backported - if: | - github.event.pull_request.merged == true - && !contains(github.event.pull_request.labels.*.name, 'auto-backport') - && !( - contains(github.event.pull_request.labels.*.name, 'backport:prev-minor') - || contains(github.event.pull_request.labels.*.name, 'backport:prev-major') - || contains(github.event.pull_request.labels.*.name, 'backport:all-open') - || contains(github.event.pull_request.labels.*.name, 'backport:auto-version') - ) - && !( - (github.event.action == 'labeled' && github.event.label.name == 'auto-backport') - || (github.event.action == 'closed') - ) - runs-on: ubuntu-latest - steps: - - name: Checkout Actions - uses: actions/checkout@v4 - with: - repository: 'elastic/kibana-github-actions' - ref: main - path: ./actions - - - name: Install Actions - run: npm ci --omit=dev --prefix ./actions - - - name: Run Fix Gaps - uses: ./actions/fix-version-gaps - with: - github_token: ${{secrets.KIBANAMACHINE_TOKEN}} diff --git a/.github/workflows/label-failed-test.yml b/.github/workflows/label-failed-test.yml index ec5114803639e..358ff08edecd1 100644 --- a/.github/workflows/label-failed-test.yml +++ b/.github/workflows/label-failed-test.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout kibana-operations - uses: actions/checkout@v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: 'elastic/kibana-operations' ref: main diff --git a/.github/workflows/label-qa-fixed-in.yml b/.github/workflows/label-qa-fixed-in.yml index 99803c2c4e880..247d2b26f1fb5 100644 --- a/.github/workflows/label-qa-fixed-in.yml +++ b/.github/workflows/label-qa-fixed-in.yml @@ -22,7 +22,7 @@ jobs: issue_ids: ${{ steps.issues_to_label.outputs.value }} label_ids: ${{ steps.label_ids.outputs.value }} steps: - - uses: octokit/graphql-action@v2.x + - uses: octokit/graphql-action@8ad880e4d437783ea2ab17010324de1075228110 # v2.3.2 id: closing_issues with: query: | @@ -46,7 +46,7 @@ jobs: prnumber: ${{ github.event.number }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: sergeysova/jq-action@v2 + - uses: sergeysova/jq-action@a3f0d4ff59cc1dddf023fc0b325dd75b10deec58 # v2.3.0 id: issues_to_label with: # Map to the issues' node id @@ -54,7 +54,7 @@ jobs: multiline: true env: CLOSING_ISSUES: ${{ steps.closing_issues.outputs.data }} - - uses: sergeysova/jq-action@v2 + - uses: sergeysova/jq-action@a3f0d4ff59cc1dddf023fc0b325dd75b10deec58 # v2.3.0 id: label_ids with: # Get list of version labels on pull request and map to label's node id, append 'QA:Ready For Testing' id ("MDU6TGFiZWwyNTQ1NjcwOTI4") @@ -78,7 +78,7 @@ jobs: name: Label issue ${{ matrix.issueId }} with ${{ matrix.labelId }} steps: - - uses: octokit/graphql-action@v2.x + - uses: octokit/graphql-action@8ad880e4d437783ea2ab17010324de1075228110 # v2.3.2 id: add_labels_to_closed_issue with: query: | diff --git a/.github/workflows/launchdarkly-code-references.yml b/.github/workflows/launchdarkly-code-references.yml index ab888da06c97a..eb32608d74928 100644 --- a/.github/workflows/launchdarkly-code-references.yml +++ b/.github/workflows/launchdarkly-code-references.yml @@ -16,11 +16,11 @@ jobs: if: github.event.repository.fork == false runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 11 # This value must be set if the lookback configuration option is not disabled for find-code-references. Read more: https://github.com/launchdarkly/ld-find-code-refs#searching-for-unused-flags-extinctions - name: LaunchDarkly Code References - uses: launchdarkly/find-code-references@v2.12.0 + uses: launchdarkly/find-code-references@ba05c32c4bddd0374bd3f5ecabcbb8e2118e8aa8 # v2.12.0 with: accessToken: ${{ secrets.LD_ACCESS_TOKEN }} projKey: ${{ secrets.LD_PROJECT_KEY }} diff --git a/.github/workflows/on-merge.yml b/.github/workflows/on-merge.yml index b02129edb6fe0..20596bf155910 100644 --- a/.github/workflows/on-merge.yml +++ b/.github/workflows/on-merge.yml @@ -10,21 +10,22 @@ jobs: runs-on: ubuntu-latest if: | github.event.pull_request.merged == true - && !contains(github.event.pull_request.labels.*.name, 'auto-backport') && ( ( github.event.action == 'labeled' && ( github.event.label.name == 'backport:prev-minor' || github.event.label.name == 'backport:prev-major' + || github.event.label.name == 'backport:current-major' || github.event.label.name == 'backport:all-open' - || github.event.label.name == 'backport:auto-version' + || github.event.label.name == 'backport:version' + || github.event.label.name == 'auto-backport' ) ) || (github.event.action == 'closed') ) steps: - name: Checkout Actions - uses: actions/checkout@v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: 'elastic/kibana-github-actions' ref: main diff --git a/.github/workflows/skip-failed-test.yml b/.github/workflows/skip-failed-test.yml index 4c6d7c94b808d..913ba7b9648d4 100644 --- a/.github/workflows/skip-failed-test.yml +++ b/.github/workflows/skip-failed-test.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Actions - uses: actions/checkout@v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: 'elastic/kibana-github-actions' ref: main @@ -30,7 +30,7 @@ jobs: token: ${{secrets.KIBANAMACHINE_TOKEN}} - name: Checkout kibana-operations - uses: actions/checkout@v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: 'elastic/kibana-operations' ref: main diff --git a/.gitignore b/.gitignore index cb94ba7ef2d3f..02f11f9275184 100644 --- a/.gitignore +++ b/.gitignore @@ -141,3 +141,14 @@ x-pack/test/security_api_integration/plugins/audit_log/audit.log # ignore FTR temp directory .ftr role_users.json + + +.devcontainer/.env + +# Ignore temporary files in oas_docs +output/kibana.serverless.tmp1.yaml +output/kibana.serverless.tmp2.yaml +output/kibana.tmp1.yaml +output/kibana.tmp2.yaml +output/kibana.new.yaml +output/kibana.serverless.new.yaml diff --git a/NOTICE.txt b/NOTICE.txt index ed8b96176e920..3cee52c089cb4 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -279,7 +279,7 @@ THE SOFTWARE. --- This code is part of the Services provided by FullStory, Inc. For license information, please refer to https://www.fullstory.com/legal/terms-and-conditions/ Portions of this code are licensed under the following license: - For license information please see fs.js.LICENSE.txt + For license information please see https://edge.fullstory.com/s/fs.js.LEGAL.txt --- This product bundles bootstrap@3.3.6 which is available under a diff --git a/api_docs/actions.devdocs.json b/api_docs/actions.devdocs.json index 5def04077bc26..22c2fabddb90b 100644 --- a/api_docs/actions.devdocs.json +++ b/api_docs/actions.devdocs.json @@ -764,7 +764,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -800,6 +800,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -858,6 +884,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -1452,7 +1480,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1478,7 +1508,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1724,6 +1754,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 884120ec4407d..d1b0d67338110 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-08-09 +date: 2024-08-27 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 50488fc76b2c0..00f292e066bd1 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-08-09 +date: 2024-08-27 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 7b3917be58317..c693b3de6677e 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-08-09 +date: 2024-08-27 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 e6bff13778b2a..be6ca5a797716 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.devdocs.json b/api_docs/alerting.devdocs.json index 3b4c372f8ea63..a2ee90c61e223 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -3286,7 +3286,7 @@ "label": "monitoring", "description": [], "signature": [ - "Readonly<{} & { run: Readonly<{} & { history: Readonly<{ outcome?: Readonly<{ warning?: \"execute\" | \"validate\" | \"unknown\" | \"license\" | \"timeout\" | \"read\" | \"decrypt\" | \"disabled\" | \"maxExecutableActions\" | \"maxAlerts\" | \"maxQueuedActions\" | null | undefined; outcomeOrder?: number | undefined; outcomeMsg?: string[] | null | undefined; } & { outcome: \"warning\" | \"succeeded\" | \"failed\"; alertsCount: Readonly<{ recovered?: number | null | undefined; active?: number | null | undefined; new?: number | null | undefined; ignored?: number | null | undefined; } & {}>; }> | undefined; duration?: number | undefined; } & { timestamp: number; success: boolean; }>[]; calculated_metrics: Readonly<{ p50?: number | undefined; p95?: number | undefined; p99?: number | undefined; } & { success_ratio: number; }>; last_run: Readonly<{} & { timestamp: string; metrics: Readonly<{ duration?: number | undefined; total_search_duration_ms?: number | null | undefined; total_indexing_duration_ms?: number | null | undefined; total_alerts_detected?: number | null | undefined; total_alerts_created?: number | null | undefined; gap_duration_s?: number | null | undefined; } & {}>; }>; }>; }> | undefined" + "Readonly<{} & { run: Readonly<{} & { history: Readonly<{ outcome?: Readonly<{ warning?: \"execute\" | \"validate\" | \"unknown\" | \"license\" | \"ruleExecution\" | \"timeout\" | \"read\" | \"decrypt\" | \"disabled\" | \"maxExecutableActions\" | \"maxAlerts\" | \"maxQueuedActions\" | null | undefined; outcomeOrder?: number | undefined; outcomeMsg?: string[] | null | undefined; } & { outcome: \"warning\" | \"succeeded\" | \"failed\"; alertsCount: Readonly<{ recovered?: number | null | undefined; active?: number | null | undefined; new?: number | null | undefined; ignored?: number | null | undefined; } & {}>; }> | undefined; duration?: number | undefined; } & { timestamp: number; success: boolean; }>[]; calculated_metrics: Readonly<{ p50?: number | undefined; p95?: number | undefined; p99?: number | undefined; } & { success_ratio: number; }>; last_run: Readonly<{} & { timestamp: string; metrics: Readonly<{ duration?: number | undefined; total_search_duration_ms?: number | null | undefined; total_indexing_duration_ms?: number | null | undefined; total_alerts_detected?: number | null | undefined; total_alerts_created?: number | null | undefined; gap_duration_s?: number | null | undefined; } & {}>; }>; }>; }> | undefined" ], "path": "x-pack/plugins/alerting/server/application/rule/types/rule.ts", "deprecated": false, @@ -3342,7 +3342,7 @@ "label": "lastRun", "description": [], "signature": [ - "Readonly<{ warning?: \"execute\" | \"validate\" | \"unknown\" | \"license\" | \"timeout\" | \"read\" | \"decrypt\" | \"disabled\" | \"maxExecutableActions\" | \"maxAlerts\" | \"maxQueuedActions\" | null | undefined; outcomeOrder?: number | undefined; outcomeMsg?: string[] | null | undefined; } & { outcome: \"warning\" | \"succeeded\" | \"failed\"; alertsCount: Readonly<{ recovered?: number | null | undefined; active?: number | null | undefined; new?: number | null | undefined; ignored?: number | null | undefined; } & {}>; }> | null | undefined" + "Readonly<{ warning?: \"execute\" | \"validate\" | \"unknown\" | \"license\" | \"ruleExecution\" | \"timeout\" | \"read\" | \"decrypt\" | \"disabled\" | \"maxExecutableActions\" | \"maxAlerts\" | \"maxQueuedActions\" | null | undefined; outcomeOrder?: number | undefined; outcomeMsg?: string[] | null | undefined; } & { outcome: \"warning\" | \"succeeded\" | \"failed\"; alertsCount: Readonly<{ recovered?: number | null | undefined; active?: number | null | undefined; new?: number | null | undefined; ignored?: number | null | undefined; } & {}>; }> | null | undefined" ], "path": "x-pack/plugins/alerting/server/application/rule/types/rule.ts", "deprecated": false, @@ -3710,26 +3710,6 @@ "deprecated": false, "trackAdoption": false, "children": [ - { - "parentPluginId": "alerting", - "id": "def-server.RuleExecutorServices.searchSourceClient", - "type": "Object", - "tags": [], - "label": "searchSourceClient", - "description": [], - "signature": [ - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.ISearchStartSearchSource", - "text": "ISearchStartSearchSource" - } - ], - "path": "x-pack/plugins/alerting/server/types.ts", - "deprecated": false, - "trackAdoption": false - }, { "parentPluginId": "alerting", "id": "def-server.RuleExecutorServices.savedObjectsClient", @@ -3930,344 +3910,66 @@ }, { "parentPluginId": "alerting", - "id": "def-server.RuleExecutorServices.dataViews", + "id": "def-server.RuleExecutorServices.ruleResultService", "type": "Object", "tags": [], - "label": "dataViews", + "label": "ruleResultService", "description": [], "signature": [ - "{ create: (spec: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - ", skipFetchFields?: boolean, displayErrors?: boolean) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ">; get: (id: string, displayErrors?: boolean, refreshFields?: boolean) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ">; delete: (indexPatternId: string) => Promise; find: (search: string, size?: number) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - "[]>; getCanSave: () => Promise; getIds: (refresh?: boolean) => Promise; getTitles: (refresh?: boolean) => Promise; findLazy: (search: string, size?: number) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" - }, - "[]>; getIdsWithTitle: (refresh?: boolean) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewListItem", - "text": "DataViewListItem" - }, - "[]>; getAllDataViewLazy: (refresh?: boolean) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" - }, - "[]>; clearCache: () => void; clearInstanceCache: (id?: string | undefined) => void; getCache: () => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSavedObjectAttrs", - "text": "DataViewSavedObjectAttrs" - }, - ">[] | null | undefined>; getDefault: (displayErrors?: boolean) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - " | null>; getDefaultId: () => Promise; setDefault: (id: string | null, force?: boolean) => Promise; hasUserDataView: () => Promise; getMetaFields: () => Promise; getShortDotsEnable: () => Promise; getFieldsForWildcard: (options: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.GetFieldsOptions", - "text": "GetFieldsOptions" - }, - ") => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - "[]>; getFieldsForIndexPattern: (indexPattern: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - ", options?: Omit<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.GetFieldsOptions", - "text": "GetFieldsOptions" - }, - ", \"allowNoIndex\"> | undefined) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - "[]>; refreshFields: (dataView: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ", displayErrors?: boolean, forceRefresh?: boolean) => Promise; fieldArrayToMap: (fields: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - "[], fieldAttrs?: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldAttrs", - "text": "FieldAttrs" - }, - " | undefined) => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewFieldMap", - "text": "DataViewFieldMap" - }, - "; savedObjectToSpec: (savedObject: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewAttributes", - "text": "DataViewAttributes" - }, - ">) => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - "; getDataViewLazy: (id: string) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" - }, - ">; getDataViewLazyFromCache: (id: string) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" - }, - " | undefined>; createDataViewLazy: (spec: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - ") => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" - }, - ">; createAndSaveDataViewLazy: (spec: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - ", overwrite?: boolean) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" - }, - ">; createAndSave: (spec: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - ", overwrite?: boolean, skipFetchFields?: boolean, displayErrors?: boolean) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ">; createSavedObject: (dataView: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.AbstractDataView", - "text": "AbstractDataView" - }, - ", overwrite?: boolean) => Promise; updateSavedObject: (indexPattern: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.AbstractDataView", - "text": "AbstractDataView" - }, - ", saveAttempts?: number, ignoreErrors?: boolean, displayErrors?: boolean) => Promise; defaultDataViewExists: () => Promise; getDefaultDataViewLazy: () => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" - }, - " | null>; getDefaultDataView: (options?: { displayErrors?: boolean | undefined; refreshFields?: boolean | undefined; }) => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - " | null>; toDataView: (dataViewLazy: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" - }, - ") => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ">; toDataViewLazy: (dataView: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ") => Promise<", + "PublicLastRunSetters", + " | undefined" + ], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.RuleExecutorServices.getDataViews", + "type": "Function", + "tags": [], + "label": "getDataViews", + "description": [], + "signature": [ + "() => Promise<", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewLazy", - "text": "DataViewLazy" + "section": "def-common.DataViewsContract", + "text": "DataViewsContract" }, - ">; }" + ">" ], "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "children": [], + "returnComment": [] }, { "parentPluginId": "alerting", - "id": "def-server.RuleExecutorServices.ruleResultService", - "type": "Object", + "id": "def-server.RuleExecutorServices.getSearchSourceClient", + "type": "Function", "tags": [], - "label": "ruleResultService", + "label": "getSearchSourceClient", "description": [], "signature": [ - "PublicLastRunSetters", - " | undefined" + "() => Promise<", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.ISearchStartSearchSource", + "text": "ISearchStartSearchSource" + }, + ">" ], "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -4398,7 +4100,7 @@ "label": "schemas", "description": [], "signature": [ - "{ params?: { type: \"zod\"; schema: Zod.ZodObject | Zod.ZodIntersection; } | { type: \"config-schema\"; schema: ", + "{ params?: { type: \"zod\"; schema: any; } | { type: \"config-schema\"; schema: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -5342,7 +5044,7 @@ }, ">; getAlertState: (params: ", "GetAlertStateParams", - ") => Promise | undefined; alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; previousStartedAt?: string | null | undefined; summaryActions?: Record> | undefined; } & {}>>; getAlertSummary: (params: ", + ") => Promise | undefined; alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; previousStartedAt?: string | null | undefined; summaryActions?: Record> | undefined; } & {}>>; getAlertSummary: (params: ", "GetAlertSummaryParams", ") => Promise<", { @@ -8827,6 +8529,20 @@ "path": "packages/kbn-alerting-types/rule_types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.Rule.flapping", + "type": "Object", + "tags": [], + "label": "flapping", + "description": [], + "signature": [ + "{ lookBackWindow: number; statusChangeThreshold: number; } | undefined" + ], + "path": "packages/kbn-alerting-types/rule_types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -9714,6 +9430,42 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "alerting", + "id": "def-common.RuleSpecificFlappingProperties", + "type": "Interface", + "tags": [], + "label": "RuleSpecificFlappingProperties", + "description": [], + "path": "x-pack/plugins/alerting/common/rules_settings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-common.RuleSpecificFlappingProperties.lookBackWindow", + "type": "number", + "tags": [], + "label": "lookBackWindow", + "description": [], + "path": "x-pack/plugins/alerting/common/rules_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.RuleSpecificFlappingProperties.statusChangeThreshold", + "type": "number", + "tags": [], + "label": "statusChangeThreshold", + "description": [], + "path": "x-pack/plugins/alerting/common/rules_settings.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-common.RulesSettings", @@ -10963,7 +10715,7 @@ "label": "LatestAlertInstanceMetaSchema", "description": [], "signature": [ - "{ readonly uuid?: string | undefined; readonly lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; readonly flappingHistory?: boolean[] | undefined; readonly flapping?: boolean | undefined; readonly maintenanceWindowIds?: string[] | undefined; readonly pendingRecoveredCount?: number | undefined; readonly activeCount?: number | undefined; }" + "{ readonly flapping?: boolean | undefined; readonly uuid?: string | undefined; readonly lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; readonly flappingHistory?: boolean[] | undefined; readonly maintenanceWindowIds?: string[] | undefined; readonly pendingRecoveredCount?: number | undefined; readonly activeCount?: number | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -11008,7 +10760,7 @@ "label": "LatestRawAlertInstanceSchema", "description": [], "signature": [ - "{ readonly meta?: Readonly<{ uuid?: string | undefined; lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; readonly state?: Record | undefined; }" + "{ readonly meta?: Readonly<{ flapping?: boolean | undefined; uuid?: string | undefined; lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; readonly state?: Record | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -11023,7 +10775,7 @@ "label": "LatestTaskStateSchema", "description": [], "signature": [ - "{ readonly alertTypeState?: Record | undefined; readonly alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly previousStartedAt?: string | null | undefined; readonly summaryActions?: Record> | undefined; }" + "{ readonly alertTypeState?: Record | undefined; readonly alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly previousStartedAt?: string | null | undefined; readonly summaryActions?: Record> | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -11378,7 +11130,7 @@ "signature": [ "20" ], - "path": "x-pack/plugins/alerting/common/rules_settings.ts", + "path": "packages/kbn-alerting-types/rule_flapping.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -11408,7 +11160,7 @@ "signature": [ "20" ], - "path": "x-pack/plugins/alerting/common/rules_settings.ts", + "path": "packages/kbn-alerting-types/rule_flapping.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -11423,7 +11175,7 @@ "signature": [ "2" ], - "path": "x-pack/plugins/alerting/common/rules_settings.ts", + "path": "packages/kbn-alerting-types/rule_flapping.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -11453,7 +11205,7 @@ "signature": [ "2" ], - "path": "x-pack/plugins/alerting/common/rules_settings.ts", + "path": "packages/kbn-alerting-types/rule_flapping.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index e153f8b1a4afd..1a063657bc3ca 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 871 | 1 | 839 | 52 | +| 875 | 1 | 843 | 52 | ## Client diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index eaba1415e703b..13e52a01e4bc3 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/apm_data_access.devdocs.json b/api_docs/apm_data_access.devdocs.json index 7334b593ed85f..e6d336d1074ee 100644 --- a/api_docs/apm_data_access.devdocs.json +++ b/api_docs/apm_data_access.devdocs.json @@ -437,6 +437,78 @@ ], "functions": [], "interfaces": [ + { + "parentPluginId": "apmDataAccess", + "id": "def-server.ApmDataAccessPrivilegesCheck", + "type": "Interface", + "tags": [], + "label": "ApmDataAccessPrivilegesCheck", + "description": [], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/lib/check_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "apmDataAccess", + "id": "def-server.ApmDataAccessPrivilegesCheck.request", + "type": "Object", + "tags": [], + "label": "request", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.KibanaRequest", + "text": "KibanaRequest" + }, + "" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/lib/check_privileges.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.ApmDataAccessPrivilegesCheck.security", + "type": "Object", + "tags": [], + "label": "security", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-plugin-types-server", + "scope": "server", + "docId": "kibKbnSecurityPluginTypesServerPluginApi", + "section": "def-server.SecurityPluginStart", + "text": "SecurityPluginStart" + }, + " | undefined" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/lib/check_privileges.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.ApmDataAccessPrivilegesCheck.getApmIndices", + "type": "Function", + "tags": [], + "label": "getApmIndices", + "description": [], + "signature": [ + "() => Promise>" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/lib/check_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "apmDataAccess", "id": "def-server.ApmDataAccessServicesParams", @@ -628,7 +700,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -664,6 +736,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -722,6 +820,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -1316,7 +1416,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1342,7 +1444,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1588,6 +1690,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -1879,6 +1983,200 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.GetDocumentTypeParams", + "type": "Interface", + "tags": [], + "label": "GetDocumentTypeParams", + "description": [], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_document_type_config/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "apmDataAccess", + "id": "def-server.GetDocumentTypeParams.start", + "type": "number", + "tags": [], + "label": "start", + "description": [], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_document_type_config/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.GetDocumentTypeParams.end", + "type": "number", + "tags": [], + "label": "end", + "description": [], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_document_type_config/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.GetDocumentTypeParams.documentSources", + "type": "Array", + "tags": [], + "label": "documentSources", + "description": [], + "signature": [ + "(", + { + "pluginId": "apmDataAccess", + "scope": "common", + "docId": "kibApmDataAccessPluginApi", + "section": "def-common.ApmDataSource", + "text": "ApmDataSource" + }, + " & { hasDocs: boolean; hasDurationSummaryField: boolean; })[]" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_document_type_config/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.GetDocumentTypeParams.documentTypes", + "type": "Array", + "tags": [], + "label": "documentTypes", + "description": [], + "signature": [ + { + "pluginId": "apmDataAccess", + "scope": "common", + "docId": "kibApmDataAccessPluginApi", + "section": "def-common.ApmDocumentType", + "text": "ApmDocumentType" + }, + "[]" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_document_type_config/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.GetDocumentTypeParams.numBuckets", + "type": "number", + "tags": [], + "label": "numBuckets", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_document_type_config/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.HostNamesRequest", + "type": "Interface", + "tags": [], + "label": "HostNamesRequest", + "description": [], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_names/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "apmDataAccess", + "id": "def-server.HostNamesRequest.query", + "type": "Object", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "QueryDslQueryContainer", + " | undefined" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_names/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.HostNamesRequest.kuery", + "type": "string", + "tags": [], + "label": "kuery", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_names/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.HostNamesRequest.start", + "type": "number", + "tags": [], + "label": "start", + "description": [], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_names/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.HostNamesRequest.end", + "type": "number", + "tags": [], + "label": "end", + "description": [], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_names/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.HostNamesRequest.size", + "type": "number", + "tags": [], + "label": "size", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_names/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "apmDataAccess", + "id": "def-server.HostNamesRequest.documentSources", + "type": "Array", + "tags": [], + "label": "documentSources", + "description": [], + "signature": [ + "(", + { + "pluginId": "apmDataAccess", + "scope": "common", + "docId": "kibApmDataAccessPluginApi", + "section": "def-common.ApmDataSource", + "text": "ApmDataSource" + }, + " & { hasDocs: boolean; hasDurationSummaryField: boolean; })[]" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_names/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -1923,8 +2221,30 @@ "text": "ApmDataSource" }, " & { hasDocs: boolean; hasDurationSummaryField: boolean; })[]>; getHostNames: ({ start, end, size, query, documentSources }: ", - "HostNamesRequest", - ") => Promise; }" + { + "pluginId": "apmDataAccess", + "scope": "server", + "docId": "kibApmDataAccessPluginApi", + "section": "def-server.HostNamesRequest", + "text": "HostNamesRequest" + }, + ") => Promise; getDocumentTypeConfig: ({ start, end, numBuckets, documentTypes, documentSources, }: ", + { + "pluginId": "apmDataAccess", + "scope": "server", + "docId": "kibApmDataAccessPluginApi", + "section": "def-server.GetDocumentTypeParams", + "text": "GetDocumentTypeParams" + }, + ") => { preferredSource: { source: ", + { + "pluginId": "apmDataAccess", + "scope": "common", + "docId": "kibApmDataAccessPluginApi", + "section": "def-common.ApmDataSourceWithSummary", + "text": "ApmDataSourceWithSummary" + }, + "; bucketSizeInSeconds: number; }; documentTypeConfig: DocumentTypeConfigOf; }; }" ], "path": "x-pack/plugins/observability_solution/apm_data_access/server/types.ts", "deprecated": false, @@ -2102,8 +2422,30 @@ "text": "ApmDataSource" }, " & { hasDocs: boolean; hasDurationSummaryField: boolean; })[]>; getHostNames: ({ start, end, size, query, documentSources }: ", - "HostNamesRequest", - ") => Promise; }" + { + "pluginId": "apmDataAccess", + "scope": "server", + "docId": "kibApmDataAccessPluginApi", + "section": "def-server.HostNamesRequest", + "text": "HostNamesRequest" + }, + ") => Promise; getDocumentTypeConfig: ({ start, end, numBuckets, documentTypes, documentSources, }: ", + { + "pluginId": "apmDataAccess", + "scope": "server", + "docId": "kibApmDataAccessPluginApi", + "section": "def-server.GetDocumentTypeParams", + "text": "GetDocumentTypeParams" + }, + ") => { preferredSource: { source: ", + { + "pluginId": "apmDataAccess", + "scope": "common", + "docId": "kibApmDataAccessPluginApi", + "section": "def-common.ApmDataSourceWithSummary", + "text": "ApmDataSourceWithSummary" + }, + "; bucketSizeInSeconds: number; }; documentTypeConfig: DocumentTypeConfigOf; }; }" ], "path": "x-pack/plugins/observability_solution/apm_data_access/server/types.ts", "deprecated": false, @@ -2146,7 +2488,56 @@ "path": "x-pack/plugins/observability_solution/apm_data_access/server/types.ts", "deprecated": false, "trackAdoption": false, - "children": [], + "children": [ + { + "parentPluginId": "apmDataAccess", + "id": "def-server.ApmDataAccessPluginStart.hasPrivileges", + "type": "Function", + "tags": [], + "label": "hasPrivileges", + "description": [], + "signature": [ + "(params: Pick<", + { + "pluginId": "apmDataAccess", + "scope": "server", + "docId": "kibApmDataAccessPluginApi", + "section": "def-server.ApmDataAccessPrivilegesCheck", + "text": "ApmDataAccessPrivilegesCheck" + }, + ", \"request\">) => Promise" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "apmDataAccess", + "id": "def-server.ApmDataAccessPluginStart.hasPrivileges.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + "Pick<", + { + "pluginId": "apmDataAccess", + "scope": "server", + "docId": "kibApmDataAccessPluginApi", + "section": "def-server.ApmDataAccessPrivilegesCheck", + "text": "ApmDataAccessPrivilegesCheck" + }, + ", \"request\">" + ], + "path": "x-pack/plugins/observability_solution/apm_data_access/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], "lifecycle": "start", "initialIsOpen": true } diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index c31515e6ab309..613931cbc07ad 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 74 | 0 | 74 | 1 | +| 93 | 0 | 93 | 0 | ## Server diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 7137b402d29c7..c84613332411c 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-08-09 +date: 2024-08-27 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 eebf435c20f31..37d3c259bd800 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-08-09 +date: 2024-08-27 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 087d4b69a0f11..f197f466828e3 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-08-09 +date: 2024-08-27 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 76e44f78a1610..2df911cc5320b 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-08-09 +date: 2024-08-27 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 7ef8e8d70a83e..51bfb61d58d53 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-08-09 +date: 2024-08-27 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 2d1e9611366ef..c41165e1ee318 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-08-09 +date: 2024-08-27 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 18cf116a6811a..78b45c64c1598 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-08-09 +date: 2024-08-27 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 4299278dfb42e..8924b2865f020 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-08-09 +date: 2024-08-27 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 b5e1179b11315..dd48d4ac54d58 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-08-09 +date: 2024-08-27 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 7a4b66e351b76..62fd884e90c6d 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 55777ee86ec7b..daccfcd4cf298 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-08-09 +date: 2024-08-27 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 7ab2cf169aed4..68c4aee644c2c 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.devdocs.json b/api_docs/controls.devdocs.json index 53d7081b73d7e..fa81eb3778122 100644 --- a/api_docs/controls.devdocs.json +++ b/api_docs/controls.devdocs.json @@ -645,7 +645,7 @@ "section": "def-common.ControlGroupInput", "text": "ControlGroupInput" }, - ">, \"id\" | \"controlStyle\" | \"ignoreParentSettings\" | \"panels\" | \"chainingSystem\" | \"showApplySelections\">" + ">, \"id\" | \"chainingSystem\" | \"ignoreParentSettings\" | \"controlStyle\" | \"panels\" | \"showApplySelections\">" ], "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", "deprecated": false, @@ -5251,6 +5251,414 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupRuntimeState", + "type": "Interface", + "tags": [], + "label": "ControlGroupRuntimeState", + "description": [], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupRuntimeState.chainingSystem", + "type": "CompoundType", + "tags": [], + "label": "chainingSystem", + "description": [], + "signature": [ + "\"NONE\" | \"HIERARCHICAL\"" + ], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupRuntimeState.labelPosition", + "type": "CompoundType", + "tags": [], + "label": "labelPosition", + "description": [], + "signature": [ + "\"twoLine\" | \"oneLine\"" + ], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupRuntimeState.autoApplySelections", + "type": "boolean", + "tags": [], + "label": "autoApplySelections", + "description": [], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupRuntimeState.ignoreParentSettings", + "type": "Object", + "tags": [], + "label": "ignoreParentSettings", + "description": [], + "signature": [ + "ParentIgnoreSettings", + " | undefined" + ], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupRuntimeState.initialChildControlState", + "type": "Object", + "tags": [], + "label": "initialChildControlState", + "description": [], + "signature": [ + "ControlPanelsState", + "<", + "ControlPanelState", + ">" + ], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupRuntimeState.editorConfig", + "type": "Object", + "tags": [], + "label": "editorConfig", + "description": [ + "TODO: Handle the editor config, which is used with the control group renderer component" + ], + "signature": [ + "{ hideDataViewSelector?: boolean | undefined; hideWidthSettings?: boolean | undefined; hideAdditionalSettings?: boolean | undefined; } | undefined" + ], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupSerializedState", + "type": "Interface", + "tags": [], + "label": "ControlGroupSerializedState", + "description": [], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupSerializedState.chainingSystem", + "type": "CompoundType", + "tags": [], + "label": "chainingSystem", + "description": [], + "signature": [ + "\"NONE\" | \"HIERARCHICAL\"" + ], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupSerializedState.panelsJSON", + "type": "string", + "tags": [], + "label": "panelsJSON", + "description": [], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupSerializedState.ignoreParentSettingsJSON", + "type": "string", + "tags": [], + "label": "ignoreParentSettingsJSON", + "description": [], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupSerializedState.controlStyle", + "type": "CompoundType", + "tags": [], + "label": "controlStyle", + "description": [], + "signature": [ + "\"twoLine\" | \"oneLine\"" + ], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupSerializedState.showApplySelections", + "type": "CompoundType", + "tags": [], + "label": "showApplySelections", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.DataControlFactory", + "type": "Interface", + "tags": [], + "label": "DataControlFactory", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.DataControlFactory", + "text": "DataControlFactory" + }, + " extends ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlFactory", + "text": "ControlFactory" + }, + "" + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.DataControlFactory.isFieldCompatible", + "type": "Function", + "tags": [], + "label": "isFieldCompatible", + "description": [], + "signature": [ + "(field: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => boolean" + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.DataControlFactory.isFieldCompatible.$1", + "type": "Object", + "tags": [], + "label": "field", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + } + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.DataControlFactory.CustomOptionsComponent", + "type": "Function", + "tags": [], + "label": "CustomOptionsComponent", + "description": [], + "signature": [ + "React.FC<", + "CustomOptionsComponentProps", + "> | undefined" + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.DataControlServices", + "type": "Interface", + "tags": [], + "label": "DataControlServices", + "description": [], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.DataControlServices.core", + "type": "Object", + "tags": [], + "label": "core", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "public", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-public.CoreStart", + "text": "CoreStart" + } + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.DataControlServices.data", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataPluginApi", + "section": "def-public.DataPublicPluginStart", + "text": "DataPublicPluginStart" + } + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.DataControlServices.dataViews", + "type": "Object", + "tags": [], + "label": "dataViews", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "public", + "docId": "kibDataViewsPluginApi", + "section": "def-public.DataViewsServicePublic", + "text": "DataViewsServicePublic" + } + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.DefaultDataControlState", + "type": "Interface", + "tags": [], + "label": "DefaultDataControlState", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.DefaultDataControlState", + "text": "DefaultDataControlState" + }, + " extends ", + "DefaultControlState" + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.DefaultDataControlState.dataViewId", + "type": "string", + "tags": [], + "label": "dataViewId", + "description": [], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.DefaultDataControlState.fieldName", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "controls", + "id": "def-public.DefaultDataControlState.title", + "type": "string", + "tags": [], + "label": "title", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "controls", "id": "def-public.IEditableControlFactory", @@ -5850,7 +6258,7 @@ "label": "ACTION_EDIT_CONTROL", "description": [], "signature": [ - "\"editControl\"" + "\"editLegacyEmbeddableControl\"" ], "path": "src/plugins/controls/public/control_group/actions/index.ts", "deprecated": false, @@ -6015,26 +6423,204 @@ "text": "ControlEmbeddable" }, "<", - "ControlInput", - ", ", + "ControlInput", + ", ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlOutput", + "text": "ControlOutput" + }, + ">, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">" + ], + "path": "src/plugins/controls/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupApi", + "type": "Type", + "tags": [], + "label": "ControlGroupApi", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-containers", + "scope": "public", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-public.PresentationContainer", + "text": "PresentationContainer" + }, + " & ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.DefaultEmbeddableApi", + "text": "DefaultEmbeddableApi" + }, + "<", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlGroupSerializedState", + "text": "ControlGroupSerializedState" + }, + ", ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" + }, + "> & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesFilters", + "text": "PublishesFilters" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesDataViews", + "text": "PublishesDataViews" + }, + " & ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "public", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-public.HasSerializedChildState", + "text": "HasSerializedChildState" + }, + "<", + "ControlPanelState", + "> & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.HasEditCapabilities", + "text": "HasEditCapabilities" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesDataLoading", + "text": "PublishesDataLoading" + }, + " & Pick<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesUnsavedChanges", + "text": "PublishesUnsavedChanges" + }, + ", \"unsavedChanges\"> & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesTimeslice", + "text": "PublishesTimeslice" + }, + " & Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.HasParentApi", + "text": "HasParentApi" + }, + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesUnifiedSearch", + "text": "PublishesUnifiedSearch" + }, + "> & ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "public", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-public.HasSaveNotification", + "text": "HasSaveNotification" + }, + " & ", + "PublishesReload", + "> & { asyncResetUnsavedChanges: () => Promise; autoApplySelections$: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishingSubject", + "text": "PublishingSubject" + }, + "; controlFetch$: (controlUuid: string) => ", + "Observable", + "<", + "ControlFetchContext", + ">; getLastSavedControlState: (controlUuid: string) => object; ignoreParentSettings$: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + "ParentIgnoreSettings", + " | undefined>; allowExpensiveQueries$: ", { - "pluginId": "controls", + "pluginId": "@kbn/presentation-publishing", "scope": "public", - "docId": "kibControlsPluginApi", - "section": "def-public.ControlOutput", - "text": "ControlOutput" + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishingSubject", + "text": "PublishingSubject" }, - ">, ", + "; untilInitialized: () => Promise; openAddDataControlFlyout: (settings?: { controlInputTransform?: ", { - "pluginId": "savedObjectsFinder", + "pluginId": "controls", "scope": "common", - "docId": "kibSavedObjectsFinderPluginApi", - "section": "def-common.FinderAttributes", - "text": "FinderAttributes" + "docId": "kibControlsPluginApi", + "section": "def-common.ControlInputTransform", + "text": "ControlInputTransform" }, - ">" + " | undefined; } | undefined) => void; labelPosition: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + "ControlStyle", + ">; }" ], - "path": "src/plugins/controls/public/types.ts", + "path": "src/plugins/controls/public/react_controls/control_group/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6265,6 +6851,170 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "controls", + "id": "def-public.DataControlApi", + "type": "Type", + "tags": [], + "label": "DataControlApi", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesDataLoading", + "text": "PublishesDataLoading" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesBlockingError", + "text": "PublishesBlockingError" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesUnsavedChanges", + "text": "PublishesUnsavedChanges" + }, + " & Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesDisabledActionIds", + "text": "PublishesDisabledActionIds" + }, + " & ", + "HasCustomPrepend", + "> & ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.CanClearSelections", + "text": "CanClearSelections" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.HasType", + "text": "HasType" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.HasUniqueId", + "text": "HasUniqueId" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.HasParentApi", + "text": "HasParentApi" + }, + "<", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlGroupApi", + "text": "ControlGroupApi" + }, + "> & { serializeState: () => ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "public", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-public.SerializedPanelState", + "text": "SerializedPanelState" + }, + "<", + "DefaultControlState", + ">; setDataLoading: (loading: boolean) => void; setBlockingError: (error: Error | undefined) => void; grow: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishingSubject", + "text": "PublishingSubject" + }, + "; width: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.ControlWidth", + "text": "ControlWidth" + }, + " | undefined>; } & Omit<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + ", \"hidePanelTitle\"> & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.HasEditCapabilities", + "text": "HasEditCapabilities" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesDataViews", + "text": "PublishesDataViews" + }, + " & ", + "PublishesField", + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesFilters", + "text": "PublishesFilters" + }, + " & { untilFiltersReady: () => Promise; }" + ], + "path": "src/plugins/controls/public/react_controls/controls/data_controls/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "controls", "id": "def-public.DataControlInput", @@ -6377,10 +7127,164 @@ "children": [ { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addDataControlFromField", + "id": "def-public.controlGroupInputBuilder.addDataControlFromField", + "type": "Function", + "tags": [], + "label": "addDataControlFromField", + "description": [], + "signature": [ + "(initialInput: Partial<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.ControlGroupInput", + "text": "ControlGroupInput" + }, + ">, controlProps: ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.AddDataControlProps", + "text": "AddDataControlProps" + }, + ") => Promise" + ], + "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.controlGroupInputBuilder.addDataControlFromField.$1", + "type": "Object", + "tags": [], + "label": "initialInput", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.ControlGroupInput", + "text": "ControlGroupInput" + }, + ">" + ], + "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupInputBuilder.addDataControlFromField.$2", + "type": "Object", + "tags": [], + "label": "controlProps", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.AddDataControlProps", + "text": "AddDataControlProps" + } + ], + "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupInputBuilder.addOptionsListControl", + "type": "Function", + "tags": [], + "label": "addOptionsListControl", + "description": [], + "signature": [ + "(initialInput: Partial<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.ControlGroupInput", + "text": "ControlGroupInput" + }, + ">, controlProps: ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.AddOptionsListControlProps", + "text": "AddOptionsListControlProps" + }, + ") => void" + ], + "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.controlGroupInputBuilder.addOptionsListControl.$1", + "type": "Object", + "tags": [], + "label": "initialInput", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.ControlGroupInput", + "text": "ControlGroupInput" + }, + ">" + ], + "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupInputBuilder.addOptionsListControl.$2", + "type": "CompoundType", + "tags": [], + "label": "controlProps", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.AddOptionsListControlProps", + "text": "AddOptionsListControlProps" + } + ], + "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupInputBuilder.addRangeSliderControl", "type": "Function", "tags": [], - "label": "addDataControlFromField", + "label": "addRangeSliderControl", "description": [], "signature": [ "(initialInput: Partial<", @@ -6396,10 +7300,10 @@ "pluginId": "controls", "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-public.AddDataControlProps", - "text": "AddDataControlProps" + "section": "def-public.AddRangeSliderControlProps", + "text": "AddRangeSliderControlProps" }, - ") => Promise" + ") => void" ], "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", "deprecated": false, @@ -6407,7 +7311,7 @@ "children": [ { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addDataControlFromField.$1", + "id": "def-public.controlGroupInputBuilder.addRangeSliderControl.$1", "type": "Object", "tags": [], "label": "initialInput", @@ -6430,8 +7334,8 @@ }, { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addDataControlFromField.$2", - "type": "Object", + "id": "def-public.controlGroupInputBuilder.addRangeSliderControl.$2", + "type": "CompoundType", "tags": [], "label": "controlProps", "description": [], @@ -6440,8 +7344,8 @@ "pluginId": "controls", "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-public.AddDataControlProps", - "text": "AddDataControlProps" + "section": "def-public.AddRangeSliderControlProps", + "text": "AddRangeSliderControlProps" } ], "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", @@ -6454,10 +7358,10 @@ }, { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addOptionsListControl", + "id": "def-public.controlGroupInputBuilder.addTimeSliderControl", "type": "Function", "tags": [], - "label": "addOptionsListControl", + "label": "addTimeSliderControl", "description": [], "signature": [ "(initialInput: Partial<", @@ -6468,15 +7372,7 @@ "section": "def-common.ControlGroupInput", "text": "ControlGroupInput" }, - ">, controlProps: ", - { - "pluginId": "controls", - "scope": "public", - "docId": "kibControlsPluginApi", - "section": "def-public.AddOptionsListControlProps", - "text": "AddOptionsListControlProps" - }, - ") => void" + ">) => void" ], "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", "deprecated": false, @@ -6484,7 +7380,7 @@ "children": [ { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addOptionsListControl.$1", + "id": "def-public.controlGroupInputBuilder.addTimeSliderControl.$1", "type": "Object", "tags": [], "label": "initialInput", @@ -6504,152 +7400,335 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder", + "type": "Object", + "tags": [], + "label": "controlGroupStateBuilder", + "description": [], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addDataControlFromField", + "type": "Function", + "tags": [], + "label": "addDataControlFromField", + "description": [], + "signature": [ + "(controlGroupState: Partial<", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" + }, + ">, controlState: ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.DefaultDataControlState", + "text": "DefaultDataControlState" + }, + ", controlId?: string | undefined) => Promise" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addDataControlFromField.$1", + "type": "Object", + "tags": [], + "label": "controlGroupState", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" + }, + ">" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true }, { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addOptionsListControl.$2", - "type": "CompoundType", + "id": "def-public.controlGroupStateBuilder.addDataControlFromField.$2", + "type": "Object", "tags": [], - "label": "controlProps", + "label": "controlState", "description": [], "signature": [ { "pluginId": "controls", "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-public.AddOptionsListControlProps", - "text": "AddOptionsListControlProps" + "section": "def-public.DefaultDataControlState", + "text": "DefaultDataControlState" } ], - "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addDataControlFromField.$3", + "type": "string", + "tags": [], + "label": "controlId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addRangeSliderControl", + "id": "def-public.controlGroupStateBuilder.addOptionsListControl", "type": "Function", "tags": [], - "label": "addRangeSliderControl", + "label": "addOptionsListControl", "description": [], "signature": [ - "(initialInput: Partial<", - { - "pluginId": "controls", - "scope": "common", - "docId": "kibControlsPluginApi", - "section": "def-common.ControlGroupInput", - "text": "ControlGroupInput" - }, - ">, controlProps: ", + "(controlGroupState: Partial<", { "pluginId": "controls", "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-public.AddRangeSliderControlProps", - "text": "AddRangeSliderControlProps" + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" }, - ") => void" + ">, controlState: ", + "OptionsListControlState", + ", controlId?: string | undefined) => void" ], - "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addRangeSliderControl.$1", + "id": "def-public.controlGroupStateBuilder.addOptionsListControl.$1", "type": "Object", "tags": [], - "label": "initialInput", + "label": "controlGroupState", "description": [], "signature": [ "Partial<", { "pluginId": "controls", - "scope": "common", + "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-common.ControlGroupInput", - "text": "ControlGroupInput" + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" }, ">" ], - "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", "deprecated": false, "trackAdoption": false, "isRequired": true }, { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addRangeSliderControl.$2", - "type": "CompoundType", + "id": "def-public.controlGroupStateBuilder.addOptionsListControl.$2", + "type": "Object", "tags": [], - "label": "controlProps", + "label": "controlState", + "description": [], + "signature": [ + "OptionsListControlState" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addOptionsListControl.$3", + "type": "string", + "tags": [], + "label": "controlId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addRangeSliderControl", + "type": "Function", + "tags": [], + "label": "addRangeSliderControl", + "description": [], + "signature": [ + "(controlGroupState: Partial<", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" + }, + ">, controlState: ", + "RangesliderControlState", + ", controlId?: string | undefined) => void" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addRangeSliderControl.$1", + "type": "Object", + "tags": [], + "label": "controlGroupState", "description": [], "signature": [ + "Partial<", { "pluginId": "controls", "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-public.AddRangeSliderControlProps", - "text": "AddRangeSliderControlProps" - } + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" + }, + ">" ], - "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addRangeSliderControl.$2", + "type": "Object", + "tags": [], + "label": "controlState", + "description": [], + "signature": [ + "RangesliderControlState" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addRangeSliderControl.$3", + "type": "string", + "tags": [], + "label": "controlId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addTimeSliderControl", + "id": "def-public.controlGroupStateBuilder.addTimeSliderControl", "type": "Function", "tags": [], "label": "addTimeSliderControl", "description": [], "signature": [ - "(initialInput: Partial<", + "(controlGroupState: Partial<", { "pluginId": "controls", - "scope": "common", + "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-common.ControlGroupInput", - "text": "ControlGroupInput" + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" }, - ">) => void" + ">, controlId?: string | undefined) => void" ], - "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "controls", - "id": "def-public.controlGroupInputBuilder.addTimeSliderControl.$1", + "id": "def-public.controlGroupStateBuilder.addTimeSliderControl.$1", "type": "Object", "tags": [], - "label": "initialInput", + "label": "controlGroupState", "description": [], "signature": [ "Partial<", { "pluginId": "controls", - "scope": "common", + "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-common.ControlGroupInput", - "text": "ControlGroupInput" + "section": "def-public.ControlGroupRuntimeState", + "text": "ControlGroupRuntimeState" }, ">" ], - "path": "src/plugins/controls/public/control_group/external_api/control_group_input_builder.ts", + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.controlGroupStateBuilder.addTimeSliderControl.$2", + "type": "string", + "tags": [], + "label": "controlId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/controls/public/react_controls/control_group/control_group_state_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [] @@ -6791,11 +7870,7 @@ "section": "def-common.ControlsPanels", "text": "ControlsPanels" }, - "; controlStyle: ", - "ControlStyle", - "; ignoreParentSettings?: ", - "ParentIgnoreSettings", - " | undefined; chainingSystem: ", + "; chainingSystem: ", { "pluginId": "controls", "scope": "common", @@ -6803,6 +7878,10 @@ "section": "def-common.ControlGroupChainingSystem", "text": "ControlGroupChainingSystem" }, + "; ignoreParentSettings?: ", + "ParentIgnoreSettings", + " | undefined; controlStyle: ", + "ControlStyle", "; showApplySelections?: boolean | undefined; } | undefined" ], "path": "src/plugins/controls/common/control_group/control_group_persistence.ts", @@ -7926,25 +9005,25 @@ "label": "PersistableControlGroupInput", "description": [], "signature": [ - "{ controlStyle: ", - "ControlStyle", - "; ignoreParentSettings?: ", - "ParentIgnoreSettings", - " | undefined; panels: ", + "{ chainingSystem: ", { "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.ControlsPanels", - "text": "ControlsPanels" + "section": "def-common.ControlGroupChainingSystem", + "text": "ControlGroupChainingSystem" }, - "; chainingSystem: ", + "; ignoreParentSettings?: ", + "ParentIgnoreSettings", + " | undefined; controlStyle: ", + "ControlStyle", + "; panels: ", { "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.ControlGroupChainingSystem", - "text": "ControlGroupChainingSystem" + "section": "def-common.ControlsPanels", + "text": "ControlsPanels" }, "; showApplySelections?: boolean | undefined; }" ], @@ -7963,7 +9042,7 @@ "\nOnly parts of the Control Group Input should be persisted" ], "signature": [ - "(\"controlStyle\" | \"ignoreParentSettings\" | \"panels\" | \"chainingSystem\" | \"showApplySelections\")[]" + "(\"chainingSystem\" | \"ignoreParentSettings\" | \"controlStyle\" | \"panels\" | \"showApplySelections\")[]" ], "path": "src/plugins/controls/common/control_group/types.ts", "deprecated": false, diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index d7a2d16003262..c8b738ffc3cac 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.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 | |-------------------|-----------|------------------------|-----------------| -| 351 | 0 | 343 | 19 | +| 394 | 0 | 385 | 28 | ## Client diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index ae363d30cfae3..be528efc795ec 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-08-09 +date: 2024-08-27 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 7ee85d1689799..485b62c398132 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 2e3a6f1ee629c..42e081040e905 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.devdocs.json b/api_docs/data.devdocs.json index 5af00566bd450..21c6295f9e49e 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -2690,7 +2690,7 @@ "section": "def-public.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; enableUiSettingsValidations: boolean; }>>" + "; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; query: Readonly<{} & { timefilter: Readonly<{} & { minRefreshInterval: number; }>; }>; enableUiSettingsValidations: boolean; }>>" ], "path": "src/plugins/data/public/plugin.ts", "deprecated": false, @@ -11983,7 +11983,7 @@ "section": "def-server.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; enableUiSettingsValidations: boolean; }>>" + "; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; query: Readonly<{} & { timefilter: Readonly<{} & { minRefreshInterval: number; }>; }>; enableUiSettingsValidations: boolean; }>>" ], "path": "src/plugins/data/server/plugin.ts", "deprecated": false, @@ -16070,7 +16070,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -16106,6 +16106,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -16164,6 +16190,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -16758,7 +16786,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -16784,7 +16814,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -17030,6 +17060,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 8163cbe639019..ae5937d365d80 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_quality.mdx b/api_docs/data_quality.mdx index 78275dd7a5b39..41028dd816d74 100644 --- a/api_docs/data_quality.mdx +++ b/api_docs/data_quality.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataQuality title: "dataQuality" image: https://source.unsplash.com/400x175/?github description: API docs for the dataQuality plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataQuality'] --- import dataQualityObj from './data_quality.devdocs.json'; diff --git a/api_docs/data_query.devdocs.json b/api_docs/data_query.devdocs.json index fcb1d445f23ae..eec375eb64279 100644 --- a/api_docs/data_query.devdocs.json +++ b/api_docs/data_query.devdocs.json @@ -3430,7 +3430,7 @@ "section": "def-common.RefreshInterval", "text": "RefreshInterval" }, - "; setRefreshInterval: (refreshInterval: Partial<", + "; getMinRefreshInterval: () => number; setRefreshInterval: (refreshInterval: Partial<", { "pluginId": "data", "scope": "common", @@ -3834,7 +3834,7 @@ "section": "def-common.RefreshInterval", "text": "RefreshInterval" }, - "; setRefreshInterval: (refreshInterval: Partial<", + "; getMinRefreshInterval: () => number; setRefreshInterval: (refreshInterval: Partial<", { "pluginId": "data", "scope": "common", diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 107edac3a9ca7..fffe43296211b 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.devdocs.json b/api_docs/data_search.devdocs.json index 0d2eb09086dc9..7baaa41c1bfd6 100644 --- a/api_docs/data_search.devdocs.json +++ b/api_docs/data_search.devdocs.json @@ -1342,7 +1342,7 @@ "label": "config", "description": [], "signature": [ - "Readonly<{} & { search: Readonly<{} & { aggs: Readonly<{} & { shardDelay: Readonly<{} & { enabled: boolean; }>; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; enableUiSettingsValidations: boolean; }>" + "Readonly<{} & { search: Readonly<{} & { aggs: Readonly<{} & { shardDelay: Readonly<{} & { enabled: boolean; }>; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; query: Readonly<{} & { timefilter: Readonly<{} & { minRefreshInterval: number; }>; }>; enableUiSettingsValidations: boolean; }>" ], "path": "src/plugins/data/server/search/session/session_service.ts", "deprecated": false, diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index f1edf2042a1b7..c25bda8943efb 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-08-09 +date: 2024-08-27 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 4553e1d8a5305..436eede1240b4 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-08-09 +date: 2024-08-27 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 5cd39996587e4..89aa3a4b3ae7d 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-08-09 +date: 2024-08-27 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 8ff977ac59a64..1757889dd6502 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json index 5bce761617486..f003397257a1f 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -12788,7 +12788,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -12824,6 +12824,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -12882,6 +12908,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -13476,7 +13504,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -13502,7 +13532,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -13748,6 +13778,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -14028,7 +14060,7 @@ }, { "plugin": "@kbn/unified-field-list", - "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts" + "path": "packages/kbn-unified-field-list/src/services/field_stats/load_field_stats.ts" }, { "plugin": "@kbn/unified-field-list", @@ -14036,7 +14068,7 @@ }, { "plugin": "@kbn/unified-field-list", - "path": "packages/kbn-unified-field-list/src/services/field_stats/load_field_stats.ts" + "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts" }, { "plugin": "lens", @@ -14054,6 +14086,10 @@ "plugin": "controls", "path": "src/plugins/controls/public/services/options_list/options_list_service.ts" }, + { + "plugin": "controls", + "path": "src/plugins/controls/public/react_controls/controls/data_controls/options_list_control/options_list_fetch_cache.ts" + }, { "plugin": "@kbn/lens-embeddable-utils", "path": "packages/kbn-lens-embeddable-utils/config_builder/columns/breakdown.ts" @@ -14182,14 +14218,14 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx" }, - { - "plugin": "@kbn/ml-data-view-utils", - "path": "x-pack/packages/ml/data_view_utils/actions/data_view_handler.ts" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts" }, + { + "plugin": "@kbn/ml-data-view-utils", + "path": "x-pack/packages/ml/data_view_utils/actions/data_view_handler.ts" + }, { "plugin": "enterpriseSearch", "path": "x-pack/plugins/enterprise_search/public/applications/analytics/utils/find_or_create_data_view.ts" diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index b9df8d42d41c7..6a74b9a11ded2 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-08-09 +date: 2024-08-27 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 6f7396a898dff..91ca1bc925b24 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-08-09 +date: 2024-08-27 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 6fdc03a22121e..22bb1d7a3e854 100644 --- a/api_docs/dataset_quality.devdocs.json +++ b/api_docs/dataset_quality.devdocs.json @@ -94,7 +94,62 @@ "DatasetQualityPublicState", "> | undefined; }" ], - "path": "x-pack/plugins/observability_solution/dataset_quality/public/controller/create_controller.ts", + "path": "x-pack/plugins/observability_solution/dataset_quality/public/controller/dataset_quality/create_controller.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "datasetQuality", + "id": "def-public.DatasetQualityPluginStart.DatasetQualityDetails", + "type": "CompoundType", + "tags": [], + "label": "DatasetQualityDetails", + "description": [], + "signature": [ + "React.ComponentClass<", + "DatasetQualityDetailsProps", + ", any> | React.FunctionComponent<", + "DatasetQualityDetailsProps", + ">" + ], + "path": "x-pack/plugins/observability_solution/dataset_quality/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "datasetQuality", + "id": "def-public.DatasetQualityPluginStart.createDatasetQualityDetailsController", + "type": "Function", + "tags": [], + "label": "createDatasetQualityDetailsController", + "description": [], + "signature": [ + "({ initialState, }: { initialState: ", + "DatasetQualityDetailsPublicStateUpdate", + "; }) => Promise<", + "DatasetQualityDetailsController", + ">" + ], + "path": "x-pack/plugins/observability_solution/dataset_quality/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "datasetQuality", + "id": "def-public.DatasetQualityPluginStart.createDatasetQualityDetailsController.$1", + "type": "Object", + "tags": [], + "label": "__0", + "description": [], + "signature": [ + "{ initialState: ", + "DatasetQualityDetailsPublicStateUpdate", + "; }" + ], + "path": "x-pack/plugins/observability_solution/dataset_quality/public/controller/dataset_quality_details/create_controller.ts", "deprecated": false, "trackAdoption": false } @@ -115,7 +170,41 @@ }, "common": { "classes": [], - "functions": [], + "functions": [ + { + "parentPluginId": "datasetQuality", + "id": "def-common.indexNameToDataStreamParts", + "type": "Function", + "tags": [], + "label": "indexNameToDataStreamParts", + "description": [], + "signature": [ + "(dataStreamName: string) => { type: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\"; dataset: string; namespace: string; }" + ], + "path": "x-pack/plugins/observability_solution/dataset_quality/common/utils/dataset_name.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "datasetQuality", + "id": "def-common.indexNameToDataStreamParts.$1", + "type": "string", + "tags": [], + "label": "dataStreamName", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/observability_solution/dataset_quality/common/utils/dataset_name.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], "interfaces": [ { "parentPluginId": "datasetQuality", @@ -159,7 +248,7 @@ "KeyofC", "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>; }> | undefined; handler: ({}: ", "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; })[]; }>; } & ", + " & { params: { query: { type?: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | undefined; }; }; }) => Promise<{ integrations: ({ name: string; } & { title?: string | undefined; version?: string | undefined; icons?: ({ src: string; } & { path?: string | undefined; size?: string | undefined; title?: string | undefined; type?: string | undefined; })[] | undefined; datasets?: { [x: string]: string; } | undefined; })[]; }>; } & ", "DatasetQualityRouteCreateOptions", "; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\"; params?: ", "TypeC", @@ -169,7 +258,7 @@ "StringC", "; }>; }> | undefined; handler: ({}: ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | null | undefined; integration?: string | undefined; }>; } & ", + " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | null | undefined; integration?: string | undefined; datasetUserPrivileges?: ({ canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }) | undefined; }>; } & ", "DatasetQualityRouteCreateOptions", "; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", "TypeC", @@ -223,7 +312,7 @@ "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[]; }>; } & ", + " & { params: { query: { start: number; end: number; } & { type?: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | 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", @@ -245,7 +334,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; docsCount: number; percentage: number; }[]; }>; } & ", + " & { params: { query: { start: number; end: number; } & { type?: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | 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", @@ -261,24 +350,30 @@ "StringC", "; }>]>; }> | undefined; handler: ({}: ", "DatasetQualityRouteHandlerResources", - " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ datasetUserPrivileges: { canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }; dataStreamsStats: ({ name: string; userPrivileges: { canMonitor: boolean; }; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; totalDocs?: number | null | undefined; })[]; }>; } & ", + " & { params: { query: { type?: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ datasetUserPrivileges: { canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }; dataStreamsStats: ({ name: string; userPrivileges: { canMonitor: boolean; }; } & { 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 ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " | undefined | undefined; handler: ({}: any) => Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, " ? TRouteParamsRT extends ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " ? ClientRequestParamsOfType : {} : never" @@ -314,7 +409,7 @@ "KeyofC", "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>; }> | undefined; handler: ({}: ", "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; })[]; }>; } & ", + " & { params: { query: { type?: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | undefined; }; }; }) => Promise<{ integrations: ({ name: string; } & { title?: string | undefined; version?: string | undefined; icons?: ({ src: string; } & { path?: string | undefined; size?: string | undefined; title?: string | undefined; type?: string | undefined; })[] | undefined; datasets?: { [x: string]: string; } | undefined; })[]; }>; } & ", "DatasetQualityRouteCreateOptions", "; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\"; params?: ", "TypeC", @@ -324,7 +419,7 @@ "StringC", "; }>; }> | undefined; handler: ({}: ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | null | undefined; integration?: string | undefined; }>; } & ", + " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | null | undefined; integration?: string | undefined; datasetUserPrivileges?: ({ canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }) | undefined; }>; } & ", "DatasetQualityRouteCreateOptions", "; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", "TypeC", @@ -378,7 +473,7 @@ "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[]; }>; } & ", + " & { params: { query: { start: number; end: number; } & { type?: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | 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", @@ -400,7 +495,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; docsCount: number; percentage: number; }[]; }>; } & ", + " & { params: { query: { start: number; end: number; } & { type?: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | 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", @@ -416,10 +511,16 @@ "StringC", "; }>]>; }> | undefined; handler: ({}: ", "DatasetQualityRouteHandlerResources", - " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ datasetUserPrivileges: { canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }; dataStreamsStats: ({ name: string; userPrivileges: { canMonitor: boolean; }; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; totalDocs?: number | null | undefined; })[]; }>; } & ", + " & { params: { query: { type?: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ datasetUserPrivileges: { canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }; dataStreamsStats: ({ name: string; userPrivileges: { canMonitor: boolean; }; } & { 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", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx index 3bcf1d1e8bdfb..f3589688ad057 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality'] --- import datasetQualityObj from './dataset_quality.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 | |-------------------|-----------|------------------------|-----------------| -| 10 | 0 | 10 | 5 | +| 15 | 0 | 15 | 8 | ## Client @@ -36,6 +36,9 @@ Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux ## Common +### Functions + + ### Interfaces diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 9b377d6c3f83a..3f4966f0c7a88 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -51,7 +51,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | @kbn/core-saved-objects-common, @kbn/core-saved-objects-server, @kbn/core, actions, @kbn/alerting-types, alerting, savedSearch, canvas, enterpriseSearch, securitySolution, taskManager, @kbn/core-saved-objects-server-internal, @kbn/core-saved-objects-api-server | - | | | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, @kbn/core, home, savedObjectsTagging, canvas, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-import-export-server-internal, savedObjectsTaggingOss, lists, securitySolution, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal | - | | | @kbn/core-saved-objects-migration-server-internal, actions, dataViews, data, alerting, lens, cases, savedSearch, canvas, savedObjectsTagging, graph, lists, maps, visualizations, securitySolution, dashboard, @kbn/core-test-helpers-so-type-serializer | - | -| | security, securitySolution, cloudLinks, observabilityAIAssistantApp, cases | - | +| | security, securitySolution, cloudLinks, cases | - | | | security, cases, searchPlayground, securitySolution | - | | | lists, securitySolution, @kbn/securitysolution-io-ts-list-types | - | | | lists, securitySolution, @kbn/securitysolution-io-ts-list-types | - | @@ -165,6 +165,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | @kbn/core | - | | | @kbn/core-plugins-server-internal | - | | | encryptedSavedObjects | - | +| | @kbn/esql-validation-autocomplete | - | | | reporting | - | | | @kbn/reporting-export-types-csv, reporting | - | | | @kbn/reporting-export-types-csv, reporting | - | @@ -176,10 +177,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | spaces, security, actions, alerting, aiops, remoteClusters, ml, graph, indexLifecycleManagement, mapsEms, osquery, securitySolution, painlessLab, rollup, searchprofiler, snapshotRestore, transform, upgradeAssistant | 8.8.0 | | | fleet, apm, security, securitySolution | 8.8.0 | | | fleet, apm, security, securitySolution | 8.8.0 | -| | spaces, security, alerting, cases | 8.8.0 | +| | spaces, @kbn/security-authorization-core, security, alerting, cases, @kbn/security-role-management-model | 8.8.0 | | | @kbn/core-application-browser-internal, @kbn/core-application-browser-mocks, management, fleet, security, kibanaOverview, @kbn/core | 8.8.0 | | | embeddable, presentationUtil, lens, dashboard, discover, graph, links | 8.8.0 | -| | security | 8.8.0 | +| | security, @kbn/security-role-management-model | 8.8.0 | | | apm | 8.8.0 | | | mapsEms | 8.8.0 | | | savedObjectsTaggingOss | 8.8.0 | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index d0b2daa0c4269..9d2017898746e 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -339,6 +339,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] +## @kbn/esql-validation-autocomplete + +| Deprecated API | Reference location(s) | Remove By | +| ---------------|-----------|-----------| +| | [helpers.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts#:~:text=quoted), [variables.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-esql-validation-autocomplete/src/shared/variables.ts#:~:text=quoted) | - | + + + ## @kbn/lens-embeddable-utils | Deprecated API | Reference location(s) | Remove By | @@ -420,6 +428,23 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] +## @kbn/security-authorization-core + +| Deprecated API | Reference location(s) | Remove By | +| ---------------|-----------|-----------| +| | [privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures)+ 20 more | 8.8.0 | + + + +## @kbn/security-role-management-model + +| Deprecated API | Reference location(s) | Remove By | +| ---------------|-----------|-----------| +| | [kibana_privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/role_management_model/src/__fixtures__/kibana_privileges.ts#:~:text=getKibanaFeatures), [kibana_privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/role_management_model/src/__fixtures__/kibana_privileges.ts#:~:text=getKibanaFeatures) | 8.8.0 | +| | [kibana_privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/role_management_model/src/__fixtures__/kibana_privileges.ts#:~:text=getElasticsearchFeatures) | 8.8.0 | + + + ## @kbn/securitysolution-data-table | Deprecated API | Reference location(s) | Remove By | @@ -452,7 +477,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [use_existing_fields.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts#:~:text=title), [use_existing_fields.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts#:~:text=title), [load_field_stats.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-unified-field-list/src/services/field_stats/load_field_stats.ts#:~:text=title) | - | +| | [load_field_stats.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-unified-field-list/src/services/field_stats/load_field_stats.ts#:~:text=title), [use_existing_fields.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts#:~:text=title), [use_existing_fields.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts#:~:text=title) | - | @@ -615,7 +640,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/data_views/data_views.story.ts#:~:text=title) | - | +| | [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [options_list_fetch_cache.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/react_controls/controls/data_controls/options_list_control/options_list_fetch_cache.ts#:~:text=title), [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/data_views/data_views.story.ts#:~:text=title) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/plugin.ts#:~:text=registerEmbeddableFactory), [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/plugin.ts#:~:text=registerEmbeddableFactory), [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/plugin.ts#:~:text=registerEmbeddableFactory), [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/plugin.ts#:~:text=registerEmbeddableFactory) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/embeddable/types.ts#:~:text=getEmbeddableFactory), [embeddable_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/embeddable/embeddable_service.ts#:~:text=getEmbeddableFactory), [embeddable.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/embeddable/embeddable.story.ts#:~:text=getEmbeddableFactory) | - | | | [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [control_group_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/control_group/control_group_persistable_state.ts#:~:text=SavedObjectReference)+ 2 more | - | @@ -1125,14 +1150,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] -## observabilityAIAssistantApp - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [use_current_user.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/hooks/use_current_user.ts#:~:text=authc) | - | - - - ## observabilityOnboarding | Deprecated API | Reference location(s) | Remove By | @@ -1325,7 +1342,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ This is relied on by the reporting feature, and should be removed once reporting migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/issues/19914 | -| | [app_authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.ts#:~:text=getKibanaFeatures), [privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.ts#:~:text=getKibanaFeatures), [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getKibanaFeatures), [app_authorization.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures)+ 24 more | 8.8.0 | +| | [app_authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.ts#:~:text=getKibanaFeatures), [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getKibanaFeatures), [app_authorization.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | | | [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getElasticsearchFeatures) | 8.8.0 | | | [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode) | 8.8.0 | | | [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/plugin.tsx#:~:text=license%24) | 8.8.0 | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 5606cb16ee691..8e248de96b0bd 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -87,8 +87,8 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ This is relied on by the reporting feature, and should be removed once reporting migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/issues/19914 | -| security | | [app_authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.ts#:~:text=getKibanaFeatures), [privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.ts#:~:text=getKibanaFeatures), [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getKibanaFeatures), [app_authorization.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures)+ 27 more | 8.8.0 | -| security | | [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getElasticsearchFeatures) | 8.8.0 | +| security | | [app_authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.ts#:~:text=getKibanaFeatures), [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getKibanaFeatures), [app_authorization.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.test.ts#:~:text=getKibanaFeatures), [on_post_auth_interceptor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/lib/request_interceptors/on_post_auth_interceptor.ts#:~:text=getKibanaFeatures), [spaces_usage_collector.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts#:~:text=getKibanaFeatures), [on_post_auth_interceptor.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/lib/request_interceptors/on_post_auth_interceptor.test.ts#:~:text=getKibanaFeatures), [privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts#:~:text=getKibanaFeatures)+ 28 more | 8.8.0 | +| security | | [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getElasticsearchFeatures), [kibana_privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/packages/security/role_management_model/src/__fixtures__/kibana_privileges.ts#:~:text=getElasticsearchFeatures) | 8.8.0 | | security | | [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode) | 8.8.0 | | security | | [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/plugin.tsx#:~:text=license%24) | 8.8.0 | | security | | [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode) | 8.8.0 | diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 5ea0d01252fcb..763357dce3d34 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-08-09 +date: 2024-08-27 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 ed0d600efff04..b55e78eeafff9 100644 --- a/api_docs/discover.devdocs.json +++ b/api_docs/discover.devdocs.json @@ -511,6 +511,29 @@ "path": "src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverAppState.density", + "type": "CompoundType", + "tags": [], + "label": "density", + "description": [ + "\nDensity of table" + ], + "signature": [ + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.DataGridDensity", + "text": "DataGridDensity" + }, + " | undefined" + ], + "path": "src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 2cd6f2880551f..fc1bfd676d94d 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-08-09 +date: 2024-08-27 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 | |-------------------|-----------|------------------------|-----------------| -| 149 | 0 | 102 | 26 | +| 150 | 0 | 102 | 26 | ## Client diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index 306ed6475304b..8b59717c8123d 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-08-09 +date: 2024-08-27 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 b497b8bdef188..97e775ece5349 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-08-09 +date: 2024-08-27 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 a15f430b74bc5..d4ae7cd36f63d 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-08-09 +date: 2024-08-27 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 0943f010a0d08..2ea883a26f65b 100644 --- a/api_docs/elastic_assistant.devdocs.json +++ b/api_docs/elastic_assistant.devdocs.json @@ -381,7 +381,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -417,6 +417,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -475,6 +501,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -1069,7 +1097,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1095,7 +1125,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1341,6 +1371,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index 7735ad881e1e1..632160f5c04a9 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.devdocs.json b/api_docs/embeddable.devdocs.json index 2f366ce07e0ae..a8f0320e4e8a1 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -8980,7 +8980,7 @@ "section": "def-public.PresentationPanelProps", "text": "PresentationPanelProps" }, - ", \"showShadow\" | \"showBorder\" | \"showBadges\" | \"showNotifications\" | \"hideHeader\" | \"hideInspector\"> | undefined; hidePanelChrome?: boolean | undefined; onAnyStateChange?: ((state: ", + ", \"showShadow\" | \"showBorder\" | \"showBadges\" | \"showNotifications\" | \"hideLoader\" | \"hideHeader\" | \"hideInspector\"> | undefined; hidePanelChrome?: boolean | undefined; onAnyStateChange?: ((state: ", { "pluginId": "@kbn/presentation-containers", "scope": "public", @@ -9094,7 +9094,7 @@ "section": "def-public.PresentationPanelProps", "text": "PresentationPanelProps" }, - ", \"showShadow\" | \"showBorder\" | \"showBadges\" | \"showNotifications\" | \"hideHeader\" | \"hideInspector\"> | undefined" + ", \"showShadow\" | \"showBorder\" | \"showBadges\" | \"showNotifications\" | \"hideLoader\" | \"hideHeader\" | \"hideInspector\"> | undefined" ], "path": "src/plugins/embeddable/public/react_embeddable_system/react_embeddable_renderer.tsx", "deprecated": false, diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 64cc9677b665e..6afa158bf1204 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-08-09 +date: 2024-08-27 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 b22f23a7cd605..34e8d7bd33b28 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-08-09 +date: 2024-08-27 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 27a1c08396cff..01c434f316a48 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-08-09 +date: 2024-08-27 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 97a40e4c49669..a86dd58f54772 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/entities_data_access.mdx b/api_docs/entities_data_access.mdx index 60fa8fb1a65b5..9bc9b25dd0bfc 100644 --- a/api_docs/entities_data_access.mdx +++ b/api_docs/entities_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/entitiesDataAccess title: "entitiesDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the entitiesDataAccess plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'entitiesDataAccess'] --- import entitiesDataAccessObj from './entities_data_access.devdocs.json'; diff --git a/api_docs/entity_manager.mdx b/api_docs/entity_manager.mdx index 319f97c72fe77..b52d2f36b5f39 100644 --- a/api_docs/entity_manager.mdx +++ b/api_docs/entity_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/entityManager title: "entityManager" image: https://source.unsplash.com/400x175/?github description: API docs for the entityManager plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'entityManager'] --- import entityManagerObj from './entity_manager.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index eb096d199cf08..1f1a0ded169d4 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/esql.mdx b/api_docs/esql.mdx index d8c687374cb97..45d20a01d3834 100644 --- a/api_docs/esql.mdx +++ b/api_docs/esql.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esql title: "esql" image: https://source.unsplash.com/400x175/?github description: API docs for the esql plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esql'] --- import esqlObj from './esql.devdocs.json'; diff --git a/api_docs/esql_data_grid.mdx b/api_docs/esql_data_grid.mdx index 886ac72ecd7cb..c961d5ad93093 100644 --- a/api_docs/esql_data_grid.mdx +++ b/api_docs/esql_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esqlDataGrid title: "esqlDataGrid" image: https://source.unsplash.com/400x175/?github description: API docs for the esqlDataGrid plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esqlDataGrid'] --- import esqlDataGridObj from './esql_data_grid.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index a026c486ebcd6..041bac091bc0b 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-08-09 +date: 2024-08-27 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 05fb8b1ac4fa7..5079a06b4d0f0 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.devdocs.json b/api_docs/event_log.devdocs.json index b90ea6139d7d3..7ce5819610f98 100644 --- a/api_docs/event_log.devdocs.json +++ b/api_docs/event_log.devdocs.json @@ -1450,7 +1450,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; code?: string | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" + "(Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false, @@ -1470,7 +1470,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; code?: string | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1485,7 +1485,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; code?: string | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}> | undefined" + "Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index a5e73b5043fdf..57ee52ba4ebb6 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 69ac02b47f290..3472ef2cd2b8e 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-08-09 +date: 2024-08-27 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 c83f8253e1429..98f8d449dacad 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-08-09 +date: 2024-08-27 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 8c67a0eb73b22..c1ec78c25a48d 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-08-09 +date: 2024-08-27 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 b2e1bead027c2..1220aeaeb1197 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-08-09 +date: 2024-08-27 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 f982fe3a16ed6..63a3bb1804286 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-08-09 +date: 2024-08-27 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 ea51a34cf01ab..0f53d63b6f7b6 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-08-09 +date: 2024-08-27 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 47d9999fd10f6..da30f6abd5686 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-08-09 +date: 2024-08-27 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 366f0319b4be2..66b5f5c744a70 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-08-09 +date: 2024-08-27 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 dd2a90dbe6766..d31843a6fb7cc 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-08-09 +date: 2024-08-27 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 ce3fc533ede27..2e80c4db64538 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-08-09 +date: 2024-08-27 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 5112e2ae86a76..0c54bc0c3bf43 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-08-09 +date: 2024-08-27 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 0f75c5f89517a..1807e75907553 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-08-09 +date: 2024-08-27 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 c44d3e19563c7..9e08043cf7ad3 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-08-09 +date: 2024-08-27 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 005250d67dd89..cad02c831acd9 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-08-09 +date: 2024-08-27 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 741974c95b2aa..91eae5512c2eb 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.devdocs.json b/api_docs/features.devdocs.json index e6c5019a037fb..6b01f79e4bb96 100644 --- a/api_docs/features.devdocs.json +++ b/api_docs/features.devdocs.json @@ -2104,12 +2104,12 @@ "path": "x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/app_authorization.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.ts" }, { "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.ts" + "path": "x-pack/plugins/security/server/authorization/app_authorization.ts" }, { "plugin": "security", @@ -2128,128 +2128,132 @@ "path": "x-pack/plugins/security/server/authorization/app_authorization.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "spaces", + "path": "x-pack/plugins/spaces/server/lib/request_interceptors/on_post_auth_interceptor.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-role-management-model", + "path": "x-pack/packages/security/role_management_model/src/__fixtures__/kibana_privileges.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-role-management-model", + "path": "x-pack/packages/security/role_management_model/src/__fixtures__/kibana_privileges.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/server/authorization/privileges/privileges.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "spaces", - "path": "x-pack/plugins/spaces/server/lib/request_interceptors/on_post_auth_interceptor.test.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" }, { - "plugin": "security", - "path": "x-pack/plugins/security/public/management/roles/__fixtures__/kibana_privileges.ts" + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" + }, + { + "plugin": "@kbn/security-authorization-core", + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.test.ts" } ], "children": [], @@ -2285,6 +2289,10 @@ { "plugin": "security", "path": "x-pack/plugins/security/server/authorization/authorization_service.tsx" + }, + { + "plugin": "@kbn/security-role-management-model", + "path": "x-pack/packages/security/role_management_model/src/__fixtures__/kibana_privileges.ts" } ], "children": [], diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 780c6ee08af01..f67e6ab2de725 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-08-09 +date: 2024-08-27 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 ed4b692d9c523..e985fa2b90bff 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/fields_metadata.devdocs.json b/api_docs/fields_metadata.devdocs.json index b328d61dc2d34..fb8dbbf87b1f8 100644 --- a/api_docs/fields_metadata.devdocs.json +++ b/api_docs/fields_metadata.devdocs.json @@ -336,7 +336,7 @@ "label": "pick", "description": [], "signature": [ - "(props: (\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"beta\" | \"required\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]) => { name?: string | undefined; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" + "(props: (\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]) => { name?: string | undefined; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/field_metadata.ts", "deprecated": false, @@ -350,7 +350,7 @@ "label": "props", "description": [], "signature": [ - "(\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"beta\" | \"required\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]" + "(\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/field_metadata.ts", "deprecated": false, @@ -454,7 +454,7 @@ "label": "pick", "description": [], "signature": [ - "(attributes: (\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"beta\" | \"required\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]) => Record" + "(attributes: (\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]) => Record" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/fields_metadata_dictionary.ts", "deprecated": false, @@ -468,7 +468,7 @@ "label": "attributes", "description": [], "signature": [ - "(\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"beta\" | \"required\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]" + "(\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/fields_metadata_dictionary.ts", "deprecated": false, @@ -605,7 +605,7 @@ "label": "FieldAttribute", "description": [], "signature": [ - "\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"beta\" | \"required\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\"" + "\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\"" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/types.ts", "deprecated": false, diff --git a/api_docs/fields_metadata.mdx b/api_docs/fields_metadata.mdx index 25cbf24dd6aba..00c482ea0b345 100644 --- a/api_docs/fields_metadata.mdx +++ b/api_docs/fields_metadata.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldsMetadata title: "fieldsMetadata" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldsMetadata plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldsMetadata'] --- import fieldsMetadataObj from './fields_metadata.devdocs.json'; diff --git a/api_docs/file_upload.devdocs.json b/api_docs/file_upload.devdocs.json index ec813208b95dd..791269ecab683 100644 --- a/api_docs/file_upload.devdocs.json +++ b/api_docs/file_upload.devdocs.json @@ -981,6 +981,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "fileUpload", + "id": "def-common.FindFileStructureResponse.document_type", + "type": "string", + "tags": [], + "label": "document_type", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/file_upload/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "fileUpload", "id": "def-common.FindFileStructureResponse.field_stats", @@ -1295,6 +1309,26 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "fileUpload", + "id": "def-common.FindFileStructureResponse.ingest_pipeline", + "type": "Object", + "tags": [], + "label": "ingest_pipeline", + "description": [], + "signature": [ + { + "pluginId": "fileUpload", + "scope": "common", + "docId": "kibFileUploadPluginApi", + "section": "def-common.IngestPipeline", + "text": "IngestPipeline" + } + ], + "path": "x-pack/plugins/file_upload/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "fileUpload", "id": "def-common.FindFileStructureResponse.quote", @@ -1517,6 +1551,34 @@ "path": "x-pack/plugins/file_upload/common/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "fileUpload", + "id": "def-common.IngestPipeline.isManaged", + "type": "CompoundType", + "tags": [], + "label": "isManaged", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/file_upload/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fileUpload", + "id": "def-common.IngestPipeline.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/file_upload/common/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 0d7404c49413e..d717a1ed62e1e 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 84 | 0 | 84 | 8 | +| 88 | 0 | 88 | 8 | ## Client diff --git a/api_docs/files.devdocs.json b/api_docs/files.devdocs.json index f3cc7d80e6a15..c63a73b61a66c 100644 --- a/api_docs/files.devdocs.json +++ b/api_docs/files.devdocs.json @@ -981,7 +981,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -1017,6 +1017,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -1075,6 +1101,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -1669,7 +1697,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1695,7 +1725,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1941,6 +1971,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 07c7ea0447888..60537517ae2ec 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-08-09 +date: 2024-08-27 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 ad392100e992b..93407e10b2fd2 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-08-09 +date: 2024-08-27 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 54f1b16567154..6fdb547691329 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -1608,6 +1608,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "fleet", + "id": "def-public.NewPackagePolicy.output_id", + "type": "CompoundType", + "tags": [], + "label": "output_id", + "description": [], + "signature": [ + "string | null | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/models/package_policy.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "fleet", "id": "def-public.NewPackagePolicy.package", @@ -2908,7 +2922,7 @@ "The updated Integration Policy to be merged back and included in the API call" ], "signature": [ - "{ id?: string | number | undefined; name?: string | undefined; description?: string | undefined; namespace?: string | undefined; enabled?: boolean | undefined; is_managed?: boolean | undefined; policy_id?: string | undefined; policy_ids?: string[] | undefined; package?: ", + "{ id?: string | number | undefined; name?: string | undefined; description?: string | undefined; namespace?: string | undefined; enabled?: boolean | undefined; is_managed?: boolean | undefined; policy_id?: string | undefined; policy_ids?: string[] | undefined; output_id?: string | null | undefined; package?: ", { "pluginId": "fleet", "scope": "common", @@ -6308,7 +6322,15 @@ "section": "def-server.SavedObjectsClientContract", "text": "SavedObjectsClientContract" }, - ", id: string, options?: { standalone: boolean; } | undefined) => Promise<", + ", id: string, options?: { standalone?: boolean | undefined; agentPolicy?: ", + { + "pluginId": "fleet", + "scope": "common", + "docId": "kibFleetPluginApi", + "section": "def-common.AgentPolicy", + "text": "AgentPolicy" + }, + " | undefined; } | undefined) => Promise<", { "pluginId": "fleet", "scope": "common", @@ -6362,7 +6384,15 @@ "label": "options", "description": [], "signature": [ - "{ standalone: boolean; } | undefined" + "{ standalone?: boolean | undefined; agentPolicy?: ", + { + "pluginId": "fleet", + "scope": "common", + "docId": "kibFleetPluginApi", + "section": "def-common.AgentPolicy", + "text": "AgentPolicy" + }, + " | undefined; } | undefined" ], "path": "x-pack/plugins/fleet/server/services/agent_policy.ts", "deprecated": false, @@ -6530,7 +6560,7 @@ }, ", { perPage, kuery }?: ", "FetchAllAgentPolicyIdsOptions", - ") => AsyncIterable" + ") => Promise>" ], "path": "x-pack/plugins/fleet/server/services/index.ts", "deprecated": false, @@ -6591,7 +6621,7 @@ }, ", { perPage, kuery, sortOrder, sortField, fields, }?: ", "FetchAllAgentPoliciesOptions", - ") => AsyncIterable<", + ") => Promise" + "[]>>" ], "path": "x-pack/plugins/fleet/server/services/index.ts", "deprecated": false, @@ -11683,6 +11713,98 @@ ], "returnComment": [] }, + { + "parentPluginId": "fleet", + "id": "def-server.PackagePolicyClient.removeOutputFromAll", + "type": "Function", + "tags": [], + "label": "removeOutputFromAll", + "description": [ + "\nRemove an output from all package policies that are using it, and replace the output by the default ones." + ], + "signature": [ + "(soClient: ", + { + "pluginId": "@kbn/core-saved-objects-api-server", + "scope": "server", + "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", + "section": "def-server.SavedObjectsClientContract", + "text": "SavedObjectsClientContract" + }, + ", esClient: ", + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "server", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-server.ElasticsearchClient", + "text": "ElasticsearchClient" + }, + ", outputId: string) => Promise" + ], + "path": "x-pack/plugins/fleet/server/services/package_policy_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-server.PackagePolicyClient.removeOutputFromAll.$1", + "type": "Object", + "tags": [], + "label": "soClient", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-api-server", + "scope": "server", + "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", + "section": "def-server.SavedObjectsClientContract", + "text": "SavedObjectsClientContract" + } + ], + "path": "x-pack/plugins/fleet/server/services/package_policy_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "fleet", + "id": "def-server.PackagePolicyClient.removeOutputFromAll.$2", + "type": "Object", + "tags": [], + "label": "esClient", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "server", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-server.ElasticsearchClient", + "text": "ElasticsearchClient" + } + ], + "path": "x-pack/plugins/fleet/server/services/package_policy_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "fleet", + "id": "def-server.PackagePolicyClient.removeOutputFromAll.$3", + "type": "string", + "tags": [], + "label": "outputId", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/fleet/server/services/package_policy_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "fleet", "id": "def-server.PackagePolicyClient.fetchAllItemIds", @@ -11703,7 +11825,7 @@ }, ", options?: ", "PackagePolicyClientFetchAllItemIdsOptions", - " | undefined) => AsyncIterable" + " | undefined) => Promise>" ], "path": "x-pack/plugins/fleet/server/services/package_policy_service.ts", "deprecated": false, @@ -11769,7 +11891,7 @@ }, ", options?: ", "PackagePolicyClientFetchAllItemsOptions", - " | undefined) => AsyncIterable<", + " | undefined) => Promise" + "[]>>" ], "path": "x-pack/plugins/fleet/server/services/package_policy_service.ts", "deprecated": false, @@ -12225,7 +12347,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -12261,6 +12383,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -12319,6 +12467,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -12913,7 +13063,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -12939,7 +13091,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -13185,6 +13337,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -13596,7 +13750,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -13632,6 +13786,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -13690,6 +13870,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -14284,7 +14466,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -14310,7 +14494,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -14556,6 +14740,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -14980,7 +15166,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -15016,6 +15202,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -15074,6 +15286,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -15668,7 +15882,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -15694,7 +15910,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -15940,6 +16156,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -16133,7 +16351,7 @@ "section": "def-common.PackagePolicyPackage", "text": "PackagePolicyPackage" }, - " | undefined; policy_id?: string | undefined; policy_ids?: string[] | undefined; statusCode?: number | undefined; body?: { message: string; } | undefined; }>, soClient: ", + " | undefined; policy_id?: string | undefined; policy_ids?: string[] | undefined; output_id?: string | undefined; statusCode?: number | undefined; body?: { message: string; } | undefined; }>, soClient: ", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "server", @@ -16189,7 +16407,7 @@ "section": "def-common.PackagePolicyPackage", "text": "PackagePolicyPackage" }, - " | undefined; policy_id?: string | undefined; policy_ids?: string[] | undefined; statusCode?: number | undefined; body?: { message: string; } | undefined; }>" + " | undefined; policy_id?: string | undefined; policy_ids?: string[] | undefined; output_id?: string | undefined; statusCode?: number | undefined; body?: { message: string; } | undefined; }>" ], "path": "x-pack/plugins/fleet/server/types/extensions.ts", "deprecated": false, @@ -16361,7 +16579,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -16397,6 +16615,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -16455,6 +16699,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -17049,7 +17295,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -17075,7 +17323,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -17321,6 +17569,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -17745,7 +17995,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -17781,6 +18031,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -17839,6 +18115,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -18433,7 +18711,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -18459,7 +18739,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -18705,6 +18985,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -19711,13 +19993,13 @@ }, { "parentPluginId": "fleet", - "id": "def-common.AgentPolicy.space_id", - "type": "string", + "id": "def-common.AgentPolicy.space_ids", + "type": "Array", "tags": [], - "label": "space_id", + "label": "space_ids", "description": [], "signature": [ - "string | undefined" + "string[] | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts", "deprecated": false, @@ -23088,6 +23370,20 @@ "path": "x-pack/plugins/fleet/common/types/rest_spec/common.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.ListWithKuery.fields", + "type": "Array", + "tags": [], + "label": "fields", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/rest_spec/common.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -23139,6 +23435,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "fleet", + "id": "def-common.NewAgentPolicy.space_ids", + "type": "Array", + "tags": [], + "label": "space_ids", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "fleet", "id": "def-common.NewAgentPolicy.description", @@ -23646,6 +23956,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "fleet", + "id": "def-common.NewPackagePolicy.output_id", + "type": "CompoundType", + "tags": [], + "label": "output_id", + "description": [], + "signature": [ + "string | null | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/models/package_policy.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "fleet", "id": "def-common.NewPackagePolicy.package", @@ -24086,13 +24410,13 @@ }, { "parentPluginId": "fleet", - "id": "def-common.PackagePolicy.spaceId", - "type": "string", + "id": "def-common.PackagePolicy.spaceIds", + "type": "Array", "tags": [], - "label": "spaceId", + "label": "spaceIds", "description": [], "signature": [ - "string | undefined" + "string[] | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/package_policy.ts", "deprecated": false, @@ -26335,7 +26659,7 @@ "label": "AGENT_POLICY_SAVED_OBJECT_TYPE", "description": [], "signature": [ - "\"ingest-agent-policies\"" + "\"fleet-agent-policies\"" ], "path": "x-pack/plugins/fleet/common/constants/agent_policy.ts", "deprecated": false, @@ -27361,6 +27685,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-common.LEGACY_AGENT_POLICY_SAVED_OBJECT_TYPE", + "type": "string", + "tags": [], + "label": "LEGACY_AGENT_POLICY_SAVED_OBJECT_TYPE", + "description": [], + "signature": [ + "\"ingest-agent-policies\"" + ], + "path": "x-pack/plugins/fleet/common/constants/agent_policy.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.LEGACY_PACKAGE_POLICY_SAVED_OBJECT_TYPE", + "type": "string", + "tags": [], + "label": "LEGACY_PACKAGE_POLICY_SAVED_OBJECT_TYPE", + "description": [], + "signature": [ + "\"ingest-package-policies\"" + ], + "path": "x-pack/plugins/fleet/common/constants/package_policy.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-common.MESSAGE_SIGNING_KEYS_SAVED_OBJECT_TYPE", @@ -27461,21 +27815,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.PACKAGE_POLICY_SAVED_OBJECT_TYPE", - "type": "string", - "tags": [], - "label": "PACKAGE_POLICY_SAVED_OBJECT_TYPE", - "description": [], - "signature": [ - "\"ingest-package-policies\"" - ], - "path": "x-pack/plugins/fleet/common/constants/package_policy.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.PackageInfo", @@ -27640,7 +27979,7 @@ "label": "PackageSpecCategory", "description": [], "signature": [ - "\"monitoring\" | \"security\" | \"connector\" | \"observability\" | \"custom\" | \"infrastructure\" | \"cloud\" | \"enterprise_search\" | \"advanced_analytics_ueba\" | \"analytics_engine\" | \"application_observability\" | \"app_search\" | \"auditd\" | \"authentication\" | \"aws\" | \"azure\" | \"big_data\" | \"cdn_security\" | \"config_management\" | \"connector_client\" | \"containers\" | \"crawler\" | \"credential_management\" | \"crm\" | \"custom_logs\" | \"database_security\" | \"datastore\" | \"dns_security\" | \"edr_xdr\" | \"cloudsecurity_cdr\" | \"elasticsearch_sdk\" | \"elastic_stack\" | \"email_security\" | \"firewall_security\" | \"google_cloud\" | \"iam\" | \"ids_ips\" | \"java_observability\" | \"kubernetes\" | \"language_client\" | \"languages\" | \"load_balancer\" | \"message_queue\" | \"native_search\" | \"network\" | \"network_security\" | \"notification\" | \"os_system\" | \"process_manager\" | \"productivity\" | \"productivity_security\" | \"proxy_security\" | \"sdk_search\" | \"stream_processing\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"virtualization\" | \"vpn_security\" | \"vulnerability_management\" | \"web\" | \"web_application_firewall\" | \"websphere\" | \"workplace_search_content_source\" | \"workplace_search\"" + "\"connector\" | \"monitoring\" | \"security\" | \"observability\" | \"custom\" | \"infrastructure\" | \"cloud\" | \"enterprise_search\" | \"advanced_analytics_ueba\" | \"analytics_engine\" | \"application_observability\" | \"app_search\" | \"auditd\" | \"authentication\" | \"aws\" | \"azure\" | \"big_data\" | \"cdn_security\" | \"config_management\" | \"connector_client\" | \"containers\" | \"crawler\" | \"credential_management\" | \"crm\" | \"custom_logs\" | \"database_security\" | \"datastore\" | \"dns_security\" | \"edr_xdr\" | \"cloudsecurity_cdr\" | \"elasticsearch_sdk\" | \"elastic_stack\" | \"email_security\" | \"firewall_security\" | \"google_cloud\" | \"iam\" | \"ids_ips\" | \"java_observability\" | \"kubernetes\" | \"language_client\" | \"languages\" | \"load_balancer\" | \"message_queue\" | \"native_search\" | \"network\" | \"network_security\" | \"notification\" | \"os_system\" | \"process_manager\" | \"productivity\" | \"productivity_security\" | \"proxy_security\" | \"sdk_search\" | \"stream_processing\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"virtualization\" | \"vpn_security\" | \"vulnerability_management\" | \"web\" | \"web_application_firewall\" | \"websphere\" | \"workplace_search_content_source\" | \"workplace_search\"" ], "path": "x-pack/plugins/fleet/common/types/models/package_spec.ts", "deprecated": false, @@ -27678,7 +28017,7 @@ "section": "def-common.PackagePolicyPackage", "text": "PackagePolicyPackage" }, - " | undefined; policy_id?: string | undefined; policy_ids?: string[] | undefined; statusCode?: number | undefined; body?: { message: string; } | undefined; }[]" + " | undefined; policy_id?: string | undefined; policy_ids?: string[] | undefined; output_id?: string | undefined; statusCode?: number | undefined; body?: { message: string; } | undefined; }[]" ], "path": "x-pack/plugins/fleet/common/types/rest_spec/package_policy.ts", "deprecated": false, @@ -27762,7 +28101,7 @@ "label": "RegistrySearchResult", "description": [], "signature": [ - "{ type?: \"input\" | \"integration\" | undefined; version: string; name: string; title: string; description: string; path: string; internal?: boolean | undefined; download: string; icons?: (", + "{ type?: \"input\" | \"integration\" | undefined; version: string; name: string; title: string; description: string; internal?: boolean | undefined; path: string; download: string; icons?: (", { "pluginId": "fleet", "scope": "common", @@ -29382,6 +29721,17 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "fleet", + "id": "def-common.APP_API_ROUTES.AGENT_POLICIES_SPACES", + "type": "string", + "tags": [], + "label": "AGENT_POLICIES_SPACES", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "fleet", "id": "def-common.APP_API_ROUTES.GENERATE_SERVICE_TOKEN_PATTERN_DEPRECATED", @@ -29456,6 +29806,22 @@ "trackAdoption": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-common.appRoutesService.getAgentPoliciesSpacesPath", + "type": "Function", + "tags": [], + "label": "getAgentPoliciesSpacesPath", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/fleet/common/services/routes.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 319503b068c82..b64018272a21b 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-08-09 +date: 2024-08-27 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 | |-------------------|-----------|------------------------|-----------------| -| 1351 | 5 | 1229 | 74 | +| 1362 | 5 | 1239 | 74 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 4747686e0c57d..eac71905ded56 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-08-09 +date: 2024-08-27 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 ffd302c8cc856..197a35e1a463c 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-08-09 +date: 2024-08-27 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 f7d1f75abebf1..8d281fc9b1aef 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-08-09 +date: 2024-08-27 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 3e435e146860b..16d8e69eaeebd 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-08-09 +date: 2024-08-27 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 fe5657db2892a..15a25b6609373 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.devdocs.json b/api_docs/index_management.devdocs.json index f0b2487774725..062bb86a24a7f 100644 --- a/api_docs/index_management.devdocs.json +++ b/api_docs/index_management.devdocs.json @@ -2405,6 +2405,145 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule", + "type": "Interface", + "tags": [], + "label": "IndexModule", + "description": [], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.number_of_shards", + "type": "CompoundType", + "tags": [], + "label": "number_of_shards", + "description": [], + "signature": [ + "string | number" + ], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.codec", + "type": "string", + "tags": [], + "label": "codec", + "description": [], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.routing_partition_size", + "type": "number", + "tags": [], + "label": "routing_partition_size", + "description": [], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.refresh_interval", + "type": "string", + "tags": [], + "label": "refresh_interval", + "description": [], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.load_fixed_bitset_filters_eagerly", + "type": "boolean", + "tags": [], + "label": "load_fixed_bitset_filters_eagerly", + "description": [], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.shard", + "type": "Object", + "tags": [], + "label": "shard", + "description": [], + "signature": [ + "{ check_on_startup: boolean | \"checksum\"; }" + ], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.number_of_replicas", + "type": "number", + "tags": [], + "label": "number_of_replicas", + "description": [], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.auto_expand_replicas", + "type": "CompoundType", + "tags": [], + "label": "auto_expand_replicas", + "description": [], + "signature": [ + "string | false" + ], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.lifecycle", + "type": "Object", + "tags": [], + "label": "lifecycle", + "description": [], + "signature": [ + "LifecycleModule" + ], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "indexManagement", + "id": "def-common.IndexModule.routing", + "type": "Object", + "tags": [], + "label": "routing", + "description": [], + "signature": [ + "{ allocation: { enable: \"none\" | \"all\" | \"primaries\" | \"new_primaries\"; }; rebalance: { enable: \"none\" | \"all\" | \"primaries\" | \"replicas\"; }; }" + ], + "path": "x-pack/plugins/index_management/common/types/indices.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "indexManagement", "id": "def-common.IndexSettings", @@ -2424,7 +2563,15 @@ "label": "index", "description": [], "signature": [ - "Partial | undefined" + "Partial<", + { + "pluginId": "indexManagement", + "scope": "common", + "docId": "kibIndexManagementPluginApi", + "section": "def-common.IndexModule", + "text": "IndexModule" + }, + "> | undefined" ], "path": "x-pack/plugins/index_management/common/types/indices.ts", "deprecated": false, diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 27c7391fd2d78..84f5f3de0a2c0 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kiban | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 227 | 0 | 222 | 1 | +| 238 | 0 | 233 | 1 | ## Client diff --git a/api_docs/inference.mdx b/api_docs/inference.mdx index 5533a277640a2..fd95715a8cc2f 100644 --- a/api_docs/inference.mdx +++ b/api_docs/inference.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/inference title: "inference" image: https://source.unsplash.com/400x175/?github description: API docs for the inference plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inference'] --- import inferenceObj from './inference.devdocs.json'; -Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai-infra) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/infra.devdocs.json b/api_docs/infra.devdocs.json index 29f2b00c3936e..60b2506aad099 100644 --- a/api_docs/infra.devdocs.json +++ b/api_docs/infra.devdocs.json @@ -472,6 +472,22 @@ "path": "x-pack/plugins/observability_solution/infra/server/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "infra", + "id": "def-server.InfraRequestHandlerContext.getMetricsIndices", + "type": "Function", + "tags": [], + "label": "getMetricsIndices", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "x-pack/plugins/observability_solution/infra/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 8e8c2532078b1..19175d82460f5 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.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 | |-------------------|-----------|------------------------|-----------------| -| 37 | 0 | 34 | 6 | +| 38 | 0 | 35 | 6 | ## Client diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx index 9029485c0c6f2..e4cafbc124649 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-08-09 +date: 2024-08-27 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 f74be9ae581f3..5cf566b63af27 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/integration_assistant.devdocs.json b/api_docs/integration_assistant.devdocs.json index 9b7d0934031ff..ab607c4fa22fe 100644 --- a/api_docs/integration_assistant.devdocs.json +++ b/api_docs/integration_assistant.devdocs.json @@ -188,7 +188,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }[]; logo?: string | undefined; }; }" + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }" ], "path": "x-pack/plugins/integration_assistant/common/api/build_integration/build_integration.ts", "deprecated": false, @@ -353,7 +353,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }" + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -497,7 +497,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }[]; logo?: string | undefined; }" + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -667,6 +667,23 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "integrationAssistant", + "id": "def-common.SamplesFormat", + "type": "Type", + "tags": [], + "label": "SamplesFormat", + "description": [ + "\nFormat of the provided log samples." + ], + "signature": [ + "{ name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }" + ], + "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [ @@ -742,7 +759,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -758,7 +775,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -774,7 +791,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }>, \"many\">; logo: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>, \"many\">; logo: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -790,7 +807,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }[]; logo?: string | undefined; }, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -806,7 +823,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }[]; logo?: string | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { integration: { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { integration: { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -822,7 +839,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }[]; logo?: string | undefined; }; }, { integration: { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }, { integration: { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -838,7 +855,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }[]; logo?: string | undefined; }; }>" + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }>" ], "path": "x-pack/plugins/integration_assistant/common/api/build_integration/build_integration.ts", "deprecated": false, @@ -1297,7 +1314,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1313,7 +1330,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1329,7 +1346,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }>" + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -1627,7 +1644,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1643,7 +1660,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1659,7 +1676,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }>, \"many\">; logo: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>, \"many\">; logo: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1675,7 +1692,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }[]; logo?: string | undefined; }, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http-endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1691,7 +1708,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; }[]; logo?: string | undefined; }>" + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }>" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -2030,6 +2047,21 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "integrationAssistant", + "id": "def-common.SamplesFormat", + "type": "Object", + "tags": [], + "label": "SamplesFormat", + "description": [], + "signature": [ + "Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>" + ], + "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ] } diff --git a/api_docs/integration_assistant.mdx b/api_docs/integration_assistant.mdx index ec8c9e146bfc5..2812e63061be9 100644 --- a/api_docs/integration_assistant.mdx +++ b/api_docs/integration_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/integrationAssistant title: "integrationAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the integrationAssistant plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'integrationAssistant'] --- import integrationAssistantObj from './integration_assistant.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-scalability](https://github.com/orgs/elastic/teams/se | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 47 | 0 | 40 | 3 | +| 49 | 0 | 41 | 3 | ## Client diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index e17e0e6bf5b23..4200b4df55f6d 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/investigate.devdocs.json b/api_docs/investigate.devdocs.json index 84d3ffbb38d41..8febc4c6ac5f4 100644 --- a/api_docs/investigate.devdocs.json +++ b/api_docs/investigate.devdocs.json @@ -27,7 +27,7 @@ "section": "def-public.EsqlWidgetParameters", "text": "EsqlWidgetParameters" }, - ">, PredefinedKeys>>(widgetCreate: T) => Pick<", + ">, \"type\">>(widgetCreate: T) => Pick<", { "pluginId": "investigate", "scope": "common", @@ -43,7 +43,7 @@ "section": "def-public.EsqlWidgetParameters", "text": "EsqlWidgetParameters" }, - ">, PredefinedKeys> & Omit & { parameters: T[\"parameters\"] & ", + ">, \"type\"> & Omit & { parameters: T[\"parameters\"] & ", "_DeepPartialObject", "<", "GlobalWidgetParameters", @@ -79,15 +79,7 @@ "label": "createWidgetFactory", "description": [], "signature": [ - "(type: string, defaults: Pick>, AllowedDefaultKeys> | undefined) => ", + "(type: string) => ", "WidgetFactory", "" ], @@ -109,29 +101,6 @@ "deprecated": false, "trackAdoption": false, "isRequired": true - }, - { - "parentPluginId": "investigate", - "id": "def-public.createWidgetFactory.$2", - "type": "Object", - "tags": [], - "label": "defaults", - "description": [], - "signature": [ - "Pick>, AllowedDefaultKeys> | undefined" - ], - "path": "x-pack/plugins/observability_solution/investigate/public/create_widget.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false } ], "returnComment": [], @@ -525,10 +494,10 @@ }, { "parentPluginId": "investigate", - "id": "def-public.InvestigateWidget.created", + "id": "def-public.InvestigateWidget.createdAt", "type": "number", "tags": [], - "label": "created", + "label": "createdAt", "description": [], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -536,10 +505,10 @@ }, { "parentPluginId": "investigate", - "id": "def-public.InvestigateWidget.last_updated", - "type": "number", + "id": "def-public.InvestigateWidget.createdBy", + "type": "string", "tags": [], - "label": "last_updated", + "label": "createdBy", "description": [], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -547,10 +516,10 @@ }, { "parentPluginId": "investigate", - "id": "def-public.InvestigateWidget.type", + "id": "def-public.InvestigateWidget.title", "type": "string", "tags": [], - "label": "type", + "label": "title", "description": [], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -558,20 +527,11 @@ }, { "parentPluginId": "investigate", - "id": "def-public.InvestigateWidget.user", - "type": "Object", + "id": "def-public.InvestigateWidget.type", + "type": "string", "tags": [], - "label": "user", + "label": "type", "description": [], - "signature": [ - { - "pluginId": "@kbn/core-security-common", - "scope": "common", - "docId": "kibKbnCoreSecurityCommonPluginApi", - "section": "def-common.AuthenticatedUser", - "text": "AuthenticatedUser" - } - ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false @@ -604,62 +564,6 @@ "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "investigate", - "id": "def-public.InvestigateWidget.title", - "type": "string", - "tags": [], - "label": "title", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "investigate", - "id": "def-public.InvestigateWidget.description", - "type": "string", - "tags": [], - "label": "description", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "investigate", - "id": "def-public.InvestigateWidget.columns", - "type": "Enum", - "tags": [], - "label": "columns", - "description": [], - "signature": [ - { - "pluginId": "investigate", - "scope": "common", - "docId": "kibInvestigatePluginApi", - "section": "def-common.InvestigateWidgetColumnSpan", - "text": "InvestigateWidgetColumnSpan" - } - ], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "investigate", - "id": "def-public.InvestigateWidget.rows", - "type": "number", - "tags": [], - "label": "rows", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false @@ -688,31 +592,11 @@ }, { "parentPluginId": "investigate", - "id": "def-public.Investigation.timestamp", + "id": "def-public.Investigation.createdAt", "type": "number", "tags": [], - "label": "'@timestamp'", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "investigate", - "id": "def-public.Investigation.user", - "type": "Object", - "tags": [], - "label": "user", + "label": "createdAt", "description": [], - "signature": [ - { - "pluginId": "@kbn/core-security-common", - "scope": "common", - "docId": "kibKbnCoreSecurityCommonPluginApi", - "section": "def-common.AuthenticatedUser", - "text": "AuthenticatedUser" - } - ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false @@ -751,129 +635,44 @@ }, { "parentPluginId": "investigate", - "id": "def-public.Investigation.parameters", - "type": "Object", + "id": "def-public.Investigation.notes", + "type": "Array", "tags": [], - "label": "parameters", + "label": "notes", "description": [], "signature": [ - "GlobalWidgetParameters" + { + "pluginId": "investigate", + "scope": "common", + "docId": "kibInvestigatePluginApi", + "section": "def-common.InvestigationNote", + "text": "InvestigationNote" + }, + "[]" ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "investigate", - "id": "def-public.WidgetRenderAPI", - "type": "Interface", - "tags": [], - "label": "WidgetRenderAPI", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "investigate", - "id": "def-public.WidgetRenderAPI.onDelete", - "type": "Function", - "tags": [], - "label": "onDelete", - "description": [], - "signature": [ - "() => void" - ], - "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] }, { "parentPluginId": "investigate", - "id": "def-public.WidgetRenderAPI.onWidgetAdd", - "type": "Function", + "id": "def-public.Investigation.parameters", + "type": "Object", "tags": [], - "label": "onWidgetAdd", + "label": "parameters", "description": [], "signature": [ - "(create: ", - { - "pluginId": "investigate", - "scope": "common", - "docId": "kibInvestigatePluginApi", - "section": "def-common.InvestigateWidgetCreate", - "text": "InvestigateWidgetCreate" - }, - "<{}>) => Promise" + "GlobalWidgetParameters" ], - "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", + "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "investigate", - "id": "def-public.WidgetRenderAPI.onWidgetAdd.$1", - "type": "CompoundType", - "tags": [], - "label": "create", - "description": [], - "signature": [ - "Pick<", - { - "pluginId": "investigate", - "scope": "common", - "docId": "kibInvestigatePluginApi", - "section": "def-common.InvestigateWidget", - "text": "InvestigateWidget" - }, - "<{}, {}>, \"type\" | \"title\" | \"columns\" | \"description\" | \"rows\"> & { parameters: ", - "_DeepPartialObject", - "<", - "GlobalWidgetParameters", - ">; }" - ], - "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", - "deprecated": false, - "trackAdoption": false - } - ] + "trackAdoption": false } ], "initialIsOpen": false } ], - "enums": [ - { - "parentPluginId": "investigate", - "id": "def-public.ChromeOption", - "type": "Enum", - "tags": [], - "label": "ChromeOption", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "investigate", - "id": "def-public.InvestigateWidgetColumnSpan", - "type": "Enum", - "tags": [], - "label": "InvestigateWidgetColumnSpan", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], + "enums": [], "misc": [ { "parentPluginId": "investigate", @@ -906,7 +705,7 @@ "section": "def-common.InvestigateWidget", "text": "InvestigateWidget" }, - "<{}, {}>, \"type\" | \"title\" | \"columns\" | \"description\" | \"rows\"> & { parameters: ", + "<{}, {}>, \"type\" | \"title\"> & { parameters: ", "_DeepPartialObject", "<", "GlobalWidgetParameters", @@ -956,7 +755,7 @@ "section": "def-common.InvestigateWidget", "text": "InvestigateWidget" }, - "<{}, {}>, \"type\" | \"title\" | \"columns\" | \"description\" | \"rows\"> & { parameters: ", + "<{}, {}>, \"type\" | \"title\"> & { parameters: ", "_DeepPartialObject", "<", "GlobalWidgetParameters", @@ -1067,7 +866,7 @@ "section": "def-common.AuthenticatedUser", "text": "AuthenticatedUser" }, - "; from: string; to: string; }) => ", + "; investigationData?: { id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]; } | undefined; }) => ", "UseInvestigationApi" ], "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", @@ -1107,22 +906,14 @@ }, { "parentPluginId": "investigate", - "id": "def-public.InvestigatePublicStart.useInvestigation.$1.from", - "type": "string", - "tags": [], - "label": "from", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "investigate", - "id": "def-public.InvestigatePublicStart.useInvestigation.$1.to", - "type": "string", + "id": "def-public.InvestigatePublicStart.useInvestigation.$1.investigationData", + "type": "Object", "tags": [], - "label": "to", + "label": "investigationData", "description": [], + "signature": [ + "{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]; } | undefined" + ], "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", "deprecated": false, "trackAdoption": false @@ -1131,24 +922,6 @@ } ], "returnComment": [] - }, - { - "parentPluginId": "investigate", - "id": "def-public.InvestigatePublicStart.useInvestigateWidget", - "type": "Function", - "tags": [], - "label": "useInvestigateWidget", - "description": [], - "signature": [ - "() => ", - "UseInvestigateWidgetApi", - "<{}, {}> | undefined" - ], - "path": "x-pack/plugins/observability_solution/investigate/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] } ], "lifecycle": "start", @@ -1470,10 +1243,10 @@ }, { "parentPluginId": "investigate", - "id": "def-common.InvestigateWidget.created", + "id": "def-common.InvestigateWidget.createdAt", "type": "number", "tags": [], - "label": "created", + "label": "createdAt", "description": [], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -1481,10 +1254,10 @@ }, { "parentPluginId": "investigate", - "id": "def-common.InvestigateWidget.last_updated", - "type": "number", + "id": "def-common.InvestigateWidget.createdBy", + "type": "string", "tags": [], - "label": "last_updated", + "label": "createdBy", "description": [], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -1492,10 +1265,10 @@ }, { "parentPluginId": "investigate", - "id": "def-common.InvestigateWidget.type", + "id": "def-common.InvestigateWidget.title", "type": "string", "tags": [], - "label": "type", + "label": "title", "description": [], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -1503,20 +1276,11 @@ }, { "parentPluginId": "investigate", - "id": "def-common.InvestigateWidget.user", - "type": "Object", + "id": "def-common.InvestigateWidget.type", + "type": "string", "tags": [], - "label": "user", + "label": "type", "description": [], - "signature": [ - { - "pluginId": "@kbn/core-security-common", - "scope": "common", - "docId": "kibKbnCoreSecurityCommonPluginApi", - "section": "def-common.AuthenticatedUser", - "text": "AuthenticatedUser" - } - ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false @@ -1549,10 +1313,46 @@ "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "investigate", + "id": "def-common.Investigation", + "type": "Interface", + "tags": [], + "label": "Investigation", + "description": [], + "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "investigate", + "id": "def-common.Investigation.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "investigate", - "id": "def-common.InvestigateWidget.title", + "id": "def-common.Investigation.createdAt", + "type": "number", + "tags": [], + "label": "createdAt", + "description": [], + "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "investigate", + "id": "def-common.Investigation.title", "type": "string", "tags": [], "label": "title", @@ -1563,13 +1363,20 @@ }, { "parentPluginId": "investigate", - "id": "def-common.InvestigateWidget.description", - "type": "string", + "id": "def-common.Investigation.items", + "type": "Array", "tags": [], - "label": "description", + "label": "items", "description": [], "signature": [ - "string | undefined" + { + "pluginId": "investigate", + "scope": "common", + "docId": "kibInvestigatePluginApi", + "section": "def-common.InvestigateWidget", + "text": "InvestigateWidget" + }, + "<{}, {}>[]" ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -1577,19 +1384,20 @@ }, { "parentPluginId": "investigate", - "id": "def-common.InvestigateWidget.columns", - "type": "Enum", + "id": "def-common.Investigation.notes", + "type": "Array", "tags": [], - "label": "columns", + "label": "notes", "description": [], "signature": [ { "pluginId": "investigate", "scope": "common", "docId": "kibInvestigatePluginApi", - "section": "def-common.InvestigateWidgetColumnSpan", - "text": "InvestigateWidgetColumnSpan" - } + "section": "def-common.InvestigationNote", + "text": "InvestigationNote" + }, + "[]" ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -1597,11 +1405,14 @@ }, { "parentPluginId": "investigate", - "id": "def-common.InvestigateWidget.rows", - "type": "number", + "id": "def-common.Investigation.parameters", + "type": "Object", "tags": [], - "label": "rows", + "label": "parameters", "description": [], + "signature": [ + "GlobalWidgetParameters" + ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false @@ -1611,10 +1422,10 @@ }, { "parentPluginId": "investigate", - "id": "def-common.Investigation", + "id": "def-common.InvestigationNote", "type": "Interface", "tags": [], - "label": "Investigation", + "label": "InvestigationNote", "description": [], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -1622,7 +1433,7 @@ "children": [ { "parentPluginId": "investigate", - "id": "def-common.Investigation.id", + "id": "def-common.InvestigationNote.id", "type": "string", "tags": [], "label": "id", @@ -1633,10 +1444,10 @@ }, { "parentPluginId": "investigate", - "id": "def-common.Investigation.timestamp", + "id": "def-common.InvestigationNote.createdAt", "type": "number", "tags": [], - "label": "'@timestamp'", + "label": "createdAt", "description": [], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, @@ -1644,66 +1455,22 @@ }, { "parentPluginId": "investigate", - "id": "def-common.Investigation.user", - "type": "Object", - "tags": [], - "label": "user", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-security-common", - "scope": "common", - "docId": "kibKbnCoreSecurityCommonPluginApi", - "section": "def-common.AuthenticatedUser", - "text": "AuthenticatedUser" - } - ], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "investigate", - "id": "def-common.Investigation.title", + "id": "def-common.InvestigationNote.createdBy", "type": "string", "tags": [], - "label": "title", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "investigate", - "id": "def-common.Investigation.items", - "type": "Array", - "tags": [], - "label": "items", + "label": "createdBy", "description": [], - "signature": [ - { - "pluginId": "investigate", - "scope": "common", - "docId": "kibInvestigatePluginApi", - "section": "def-common.InvestigateWidget", - "text": "InvestigateWidget" - }, - "<{}, {}>[]" - ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "investigate", - "id": "def-common.Investigation.parameters", - "type": "Object", + "id": "def-common.InvestigationNote.content", + "type": "string", "tags": [], - "label": "parameters", + "label": "content", "description": [], - "signature": [ - "GlobalWidgetParameters" - ], "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", "deprecated": false, "trackAdoption": false @@ -1712,20 +1479,7 @@ "initialIsOpen": false } ], - "enums": [ - { - "parentPluginId": "investigate", - "id": "def-common.InvestigateWidgetColumnSpan", - "type": "Enum", - "tags": [], - "label": "InvestigateWidgetColumnSpan", - "description": [], - "path": "x-pack/plugins/observability_solution/investigate/common/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], + "enums": [], "misc": [ { "parentPluginId": "investigate", @@ -1743,7 +1497,7 @@ "section": "def-common.InvestigateWidget", "text": "InvestigateWidget" }, - "<{}, {}>, \"type\" | \"title\" | \"columns\" | \"description\" | \"rows\"> & { parameters: ", + "<{}, {}>, \"type\" | \"title\"> & { parameters: ", "_DeepPartialObject", "<", "GlobalWidgetParameters", diff --git a/api_docs/investigate.mdx b/api_docs/investigate.mdx index 717c6f28cb803..e9fa8ccba29e8 100644 --- a/api_docs/investigate.mdx +++ b/api_docs/investigate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/investigate title: "investigate" image: https://source.unsplash.com/400x175/?github description: API docs for the investigate plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'investigate'] --- import investigateObj from './investigate.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 | |-------------------|-----------|------------------------|-----------------| -| 105 | 0 | 105 | 6 | +| 92 | 0 | 92 | 5 | ## Client @@ -37,9 +37,6 @@ Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/ ### Interfaces -### Enums - - ### Consts, variables and types @@ -59,9 +56,6 @@ Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/ ### Interfaces -### Enums - - ### Consts, variables and types diff --git a/api_docs/investigate_app.devdocs.json b/api_docs/investigate_app.devdocs.json index d8b91a87450ee..cb7fd681facbe 100644 --- a/api_docs/investigate_app.devdocs.json +++ b/api_docs/investigate_app.devdocs.json @@ -50,27 +50,119 @@ "label": "InvestigateAppServerRouteRepository", "description": [], "signature": [ - "{ \"GET /api/observability/investigations/{id} 2023-10-31\": { endpoint: \"GET /api/observability/investigations/{id} 2023-10-31\"; params?: ", + "{ \"GET /api/observability/investigations/{investigationId}/items 2023-10-31\": { endpoint: \"GET /api/observability/investigations/{investigationId}/items 2023-10-31\"; params?: ", "TypeC", "<{ path: ", "TypeC", - "<{ id: ", + "<{ investigationId: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "InvestigateAppRouteHandlerResources", + " & { params: { path: { investigationId: string; }; }; }) => Promise<({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]>; } & ", + "InvestigateAppRouteCreateOptions", + "; \"DELETE /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\": { endpoint: \"DELETE /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; itemId: ", "StringC", "; }>; }> | undefined; handler: ({}: ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { id: string; }; }; }) => Promise<{ id: string; title: string; createdAt: number; createdBy: string; parameters: { timeRange: { from: number; to: number; }; }; }>; } & ", + " & { params: { path: { investigationId: string; itemId: string; }; }; }) => Promise; } & ", + "InvestigateAppRouteCreateOptions", + "; \"POST /api/observability/investigations/{investigationId}/items 2023-10-31\": { endpoint: \"POST /api/observability/investigations/{investigationId}/items 2023-10-31\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; body: ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>; }> | undefined; handler: ({}: ", + "InvestigateAppRouteHandlerResources", + " & { params: { path: { investigationId: string; }; body: { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; }; }; }) => Promise<{ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; }>; } & ", + "InvestigateAppRouteCreateOptions", + "; \"DELETE /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\": { endpoint: \"DELETE /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; noteId: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "InvestigateAppRouteHandlerResources", + " & { params: { path: { investigationId: string; noteId: string; }; }; }) => Promise; } & ", + "InvestigateAppRouteCreateOptions", + "; \"GET /api/observability/investigations/{investigationId}/notes 2023-10-31\": { endpoint: \"GET /api/observability/investigations/{investigationId}/notes 2023-10-31\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "InvestigateAppRouteHandlerResources", + " & { params: { path: { investigationId: string; }; }; }) => Promise<{ id: string; content: string; createdAt: number; createdBy: string; }[]>; } & ", + "InvestigateAppRouteCreateOptions", + "; \"POST /api/observability/investigations/{investigationId}/notes 2023-10-31\": { endpoint: \"POST /api/observability/investigations/{investigationId}/notes 2023-10-31\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; body: ", + "TypeC", + "<{ content: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "InvestigateAppRouteHandlerResources", + " & { params: { path: { investigationId: string; }; body: { content: string; }; }; }) => Promise<{ id: string; content: string; createdAt: number; createdBy: string; }>; } & ", + "InvestigateAppRouteCreateOptions", + "; \"DELETE /api/observability/investigations/{investigationId} 2023-10-31\": { endpoint: \"DELETE /api/observability/investigations/{investigationId} 2023-10-31\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "InvestigateAppRouteHandlerResources", + " & { params: { path: { investigationId: string; }; }; }) => Promise; } & ", + "InvestigateAppRouteCreateOptions", + "; \"GET /api/observability/investigations/{investigationId} 2023-10-31\": { endpoint: \"GET /api/observability/investigations/{investigationId} 2023-10-31\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "InvestigateAppRouteHandlerResources", + " & { params: { path: { investigationId: string; }; }; }) => Promise<{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]; }>; } & ", "InvestigateAppRouteCreateOptions", "; \"GET /api/observability/investigations 2023-10-31\": { endpoint: \"GET /api/observability/investigations 2023-10-31\"; params?: ", "PartialC", "<{ query: ", "PartialC", - "<{ page: ", + "<{ alertId: ", + "StringC", + "; page: ", "StringC", "; perPage: ", "StringC", "; }>; }> | undefined; handler: ({}: ", "InvestigateAppRouteHandlerResources", - " & { params?: { query?: { page?: string | undefined; perPage?: string | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: { id: string; title: string; createdAt: number; createdBy: string; parameters: { timeRange: { from: number; to: number; }; }; }[]; }>; } & ", + " & { params?: { query?: { alertId?: string | undefined; page?: string | undefined; perPage?: string | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: { id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]; }[]; }>; } & ", "InvestigateAppRouteCreateOptions", "; \"POST /api/observability/investigations 2023-10-31\": { endpoint: \"POST /api/observability/investigations 2023-10-31\"; params?: ", "TypeC", @@ -80,7 +172,7 @@ "StringC", "; title: ", "StringC", - "; parameters: ", + "; params: ", "TypeC", "<{ timeRange: ", "TypeC", @@ -88,9 +180,21 @@ "NumberC", "; to: ", "NumberC", - "; }>; }>; }>; }> | undefined; handler: ({}: ", + "; }>; }>; origin: ", + "UnionC", + "<[", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"alert\">; id: ", + "StringC", + "; }>, ", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"blank\">; }>]>; }>; }> | undefined; handler: ({}: ", "InvestigateAppRouteHandlerResources", - " & { params: { body: { id: string; title: string; parameters: { timeRange: { from: number; to: number; }; }; }; }; }) => Promise<{ id: string; title: string; createdAt: number; createdBy: string; parameters: { timeRange: { from: number; to: number; }; }; }>; } & ", + " & { params: { body: { id: string; title: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; }; }; }) => Promise<{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]; }>; } & ", "InvestigateAppRouteCreateOptions", "; }" ], diff --git a/api_docs/investigate_app.mdx b/api_docs/investigate_app.mdx index 283cc524dab53..2348c5fcb711b 100644 --- a/api_docs/investigate_app.mdx +++ b/api_docs/investigate_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/investigateApp title: "investigateApp" image: https://source.unsplash.com/400x175/?github description: API docs for the investigateApp plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'investigateApp'] --- import investigateAppObj from './investigate_app.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 5b09e6be47824..36a873aa0aa93 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-08-09 +date: 2024-08-27 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 8ee9a22546086..2b22f5d6fc202 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-08-09 +date: 2024-08-27 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 75de3d4ecf3b4..879e63ec94b52 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-08-09 +date: 2024-08-27 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 b9be6ee6094fb..be52419021093 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-08-09 +date: 2024-08-27 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 e02b4abff3319..4eddc3c8f1588 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-08-09 +date: 2024-08-27 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 7765adb08b69c..f4a1536f13765 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-08-09 +date: 2024-08-27 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_comparators.mdx b/api_docs/kbn_alerting_comparators.mdx index b3b2c1e95d790..7fb32ced0de89 100644 --- a/api_docs/kbn_alerting_comparators.mdx +++ b/api_docs/kbn_alerting_comparators.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-comparators title: "@kbn/alerting-comparators" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-comparators plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-comparators'] --- import kbnAlertingComparatorsObj from './kbn_alerting_comparators.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.devdocs.json b/api_docs/kbn_alerting_state_types.devdocs.json index 4beda471f14be..2afc1a566a537 100644 --- a/api_docs/kbn_alerting_state_types.devdocs.json +++ b/api_docs/kbn_alerting_state_types.devdocs.json @@ -124,7 +124,7 @@ "label": "LatestAlertInstanceMetaSchema", "description": [], "signature": [ - "{ readonly uuid?: string | undefined; readonly lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; readonly flappingHistory?: boolean[] | undefined; readonly flapping?: boolean | undefined; readonly maintenanceWindowIds?: string[] | undefined; readonly pendingRecoveredCount?: number | undefined; readonly activeCount?: number | undefined; }" + "{ readonly flapping?: boolean | undefined; readonly uuid?: string | undefined; readonly lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; readonly flappingHistory?: boolean[] | undefined; readonly maintenanceWindowIds?: string[] | undefined; readonly pendingRecoveredCount?: number | undefined; readonly activeCount?: number | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -169,7 +169,7 @@ "label": "LatestRawAlertInstanceSchema", "description": [], "signature": [ - "{ readonly meta?: Readonly<{ uuid?: string | undefined; lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; readonly state?: Record | undefined; }" + "{ readonly meta?: Readonly<{ flapping?: boolean | undefined; uuid?: string | undefined; lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; readonly state?: Record | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -184,7 +184,7 @@ "label": "LatestTaskStateSchema", "description": [], "signature": [ - "{ readonly alertTypeState?: Record | undefined; readonly alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly previousStartedAt?: string | null | undefined; readonly summaryActions?: Record> | undefined; }" + "{ readonly alertTypeState?: Record | undefined; readonly alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly previousStartedAt?: string | null | undefined; readonly summaryActions?: Record> | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -214,7 +214,7 @@ "label": "MutableLatestAlertInstanceMetaSchema", "description": [], "signature": [ - "{ uuid?: Mutable; lastScheduledActions?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined>; flappingHistory?: Mutable; flapping?: Mutable; maintenanceWindowIds?: Mutable; pendingRecoveredCount?: Mutable; activeCount?: Mutable; }" + "{ flapping?: Mutable; uuid?: Mutable; lastScheduledActions?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined>; flappingHistory?: Mutable; maintenanceWindowIds?: Mutable; pendingRecoveredCount?: Mutable; activeCount?: Mutable; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -229,7 +229,7 @@ "label": "MutableLatestTaskStateSchema", "description": [], "signature": [ - "{ alertTypeState?: Mutable | undefined>; alertInstances?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt?: Mutable; summaryActions?: Mutable> | undefined>; }" + "{ alertTypeState?: Mutable | undefined>; alertInstances?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt?: Mutable; summaryActions?: Mutable> | undefined>; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -404,7 +404,7 @@ "label": "1", "description": [], "signature": [ - "{ up: (state: Record) => Readonly<{ alertTypeState?: Record | undefined; alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; previousStartedAt?: string | null | undefined; summaryActions?: Record> | undefined; } & {}>; schema: ", + "{ up: (state: Record) => Readonly<{ alertTypeState?: Record | undefined; alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; previousStartedAt?: string | null | undefined; summaryActions?: Record> | undefined; } & {}>; schema: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -428,7 +428,7 @@ "section": "def-common.Type", "text": "Type" }, - "> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances: ", + "> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -436,7 +436,7 @@ "section": "def-common.Type", "text": "Type" }, - "> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt: ", + "> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index f9c6b696406c8..7429ff247175c 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_alerting_types.devdocs.json index 51c85cf8a437e..7c10c27a4d38a 100644 --- a/api_docs/kbn_alerting_types.devdocs.json +++ b/api_docs/kbn_alerting_types.devdocs.json @@ -1577,6 +1577,20 @@ "path": "packages/kbn-alerting-types/rule_types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.Rule.flapping", + "type": "Object", + "tags": [], + "label": "flapping", + "description": [], + "signature": [ + "{ lookBackWindow: number; statusChangeThreshold: number; } | undefined" + ], + "path": "packages/kbn-alerting-types/rule_types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -3206,6 +3220,66 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.MAX_LOOK_BACK_WINDOW", + "type": "number", + "tags": [], + "label": "MAX_LOOK_BACK_WINDOW", + "description": [], + "signature": [ + "20" + ], + "path": "packages/kbn-alerting-types/rule_flapping.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.MAX_STATUS_CHANGE_THRESHOLD", + "type": "number", + "tags": [], + "label": "MAX_STATUS_CHANGE_THRESHOLD", + "description": [], + "signature": [ + "20" + ], + "path": "packages/kbn-alerting-types/rule_flapping.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.MIN_LOOK_BACK_WINDOW", + "type": "number", + "tags": [], + "label": "MIN_LOOK_BACK_WINDOW", + "description": [], + "signature": [ + "2" + ], + "path": "packages/kbn-alerting-types/rule_flapping.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.MIN_STATUS_CHANGE_THRESHOLD", + "type": "number", + "tags": [], + "label": "MIN_STATUS_CHANGE_THRESHOLD", + "description": [], + "signature": [ + "2" + ], + "path": "packages/kbn-alerting-types/rule_flapping.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerting-types", "id": "def-common.RecoveredActionGroupId", diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx index c2ce13f320024..ca1cc6be7b68c 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types'] --- import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 217 | 0 | 214 | 0 | +| 222 | 0 | 219 | 0 | ## Common diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 31637fbc455df..f4446f2c69f3d 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-08-09 +date: 2024-08-27 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_grouping.devdocs.json b/api_docs/kbn_alerts_grouping.devdocs.json index 718a5c1791d96..e3042f1c99a59 100644 --- a/api_docs/kbn_alerts_grouping.devdocs.json +++ b/api_docs/kbn_alerts_grouping.devdocs.json @@ -13,15 +13,15 @@ "\nA coordinator component to show multiple alert tables grouped by one or more fields\n" ], "signature": [ - "React.NamedExoticComponent<", + "> & { readonly type: (props: ", + ">(props: ", { "pluginId": "@kbn/alerts-grouping", "scope": "public", @@ -29,7 +29,7 @@ "section": "def-public.AlertsGroupingProps", "text": "AlertsGroupingProps" }, - "<{}>) => JSX.Element; }" + ") => JSX.Element" ], "path": "packages/kbn-alerts-grouping/src/components/alerts_grouping.tsx", "deprecated": false, @@ -39,14 +39,21 @@ { "parentPluginId": "@kbn/alerts-grouping", "id": "def-public.AlertsGrouping.$1", - "type": "Uncategorized", + "type": "Object", "tags": [], "label": "props", "description": [], "signature": [ - "P" + { + "pluginId": "@kbn/alerts-grouping", + "scope": "public", + "docId": "kibKbnAlertsGroupingPluginApi", + "section": "def-public.AlertsGroupingProps", + "text": "AlertsGroupingProps" + }, + "" ], - "path": "node_modules/@types/react/index.d.ts", + "path": "packages/kbn-alerts-grouping/src/components/alerts_grouping.tsx", "deprecated": false, "trackAdoption": false } @@ -92,6 +99,70 @@ } ], "interfaces": [ + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.AlertsGroupAggregationBucket", + "type": "Interface", + "tags": [], + "label": "AlertsGroupAggregationBucket", + "description": [], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.AlertsGroupAggregationBucket.key", + "type": "string", + "tags": [], + "label": "key", + "description": [], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.AlertsGroupAggregationBucket.doc_count", + "type": "number", + "tags": [], + "label": "doc_count", + "description": [], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.AlertsGroupAggregationBucket.isNullGroup", + "type": "CompoundType", + "tags": [], + "label": "isNullGroup", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.AlertsGroupAggregationBucket.unitsCount", + "type": "Object", + "tags": [], + "label": "unitsCount", + "description": [], + "signature": [ + "{ value: number; } | undefined" + ], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerts-grouping", "id": "def-public.AlertsGroupingProps", @@ -467,6 +538,70 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.BaseAlertsGroupAggregations", + "type": "Interface", + "tags": [], + "label": "BaseAlertsGroupAggregations", + "description": [], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.BaseAlertsGroupAggregations.groupByFields", + "type": "Object", + "tags": [], + "label": "groupByFields", + "description": [], + "signature": [ + "{ doc_count_error_upper_bound: number; sum_other_doc_count: number; buckets: ", + { + "pluginId": "@kbn/alerts-grouping", + "scope": "public", + "docId": "kibKbnAlertsGroupingPluginApi", + "section": "def-public.AlertsGroupAggregationBucket", + "text": "AlertsGroupAggregationBucket" + }, + "[]; }" + ], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.BaseAlertsGroupAggregations.groupsCount", + "type": "Object", + "tags": [], + "label": "groupsCount", + "description": [], + "signature": [ + "{ value: number; }" + ], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-grouping", + "id": "def-public.BaseAlertsGroupAggregations.unitsCount", + "type": "Object", + "tags": [], + "label": "unitsCount", + "description": [], + "signature": [ + "{ value: number; }" + ], + "path": "packages/kbn-alerts-grouping/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], diff --git a/api_docs/kbn_alerts_grouping.mdx b/api_docs/kbn_alerts_grouping.mdx index c27c6790f0d32..0870d46f2715d 100644 --- a/api_docs/kbn_alerts_grouping.mdx +++ b/api_docs/kbn_alerts_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-grouping title: "@kbn/alerts-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-grouping plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-grouping'] --- import kbnAlertsGroupingObj from './kbn_alerts_grouping.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 22 | 0 | 5 | 1 | +| 31 | 0 | 15 | 1 | ## Client diff --git a/api_docs/kbn_alerts_ui_shared.devdocs.json b/api_docs/kbn_alerts_ui_shared.devdocs.json index 17e09808e3c68..c4423422e2a72 100644 --- a/api_docs/kbn_alerts_ui_shared.devdocs.json +++ b/api_docs/kbn_alerts_ui_shared.devdocs.json @@ -161,7 +161,7 @@ "id": "def-public.AlertsSearchBar.$1", "type": "Object", "tags": [], - "label": "{\n appName,\n disableQueryLanguageSwitcher = false,\n featureIds,\n ruleTypeId,\n query,\n filters,\n onQueryChange,\n onQuerySubmit,\n onFiltersUpdated,\n rangeFrom,\n rangeTo,\n showFilterBar = false,\n showDatePicker = true,\n showSubmitButton = true,\n placeholder = SEARCH_BAR_PLACEHOLDER,\n submitOnBlur = false,\n http,\n toasts,\n unifiedSearchBar,\n dataViewsService,\n}", + "label": "{\n appName,\n disableQueryLanguageSwitcher = false,\n featureIds = EMPTY_FEATURE_IDS,\n ruleTypeId,\n query,\n filters,\n onQueryChange,\n onQuerySubmit,\n onFiltersUpdated,\n rangeFrom,\n rangeTo,\n showFilterBar = false,\n showDatePicker = true,\n showSubmitButton = true,\n placeholder = SEARCH_BAR_PLACEHOLDER,\n submitOnBlur = false,\n http,\n toasts,\n unifiedSearchBar,\n dataViewsService,\n}", "description": [], "signature": [ { @@ -279,56 +279,60 @@ }, { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.useAlertDataView", + "id": "def-public.useAlertsDataView", "type": "Function", "tags": [], - "label": "useAlertDataView", - "description": [], + "label": "useAlertsDataView", + "description": [ + "\nComputes a {@link DataViewBase} object for alerts indices based on the provided feature ids\n" + ], "signature": [ - "(props: ", + "({ http, dataViewsService, toasts, featureIds, }: ", { "pluginId": "@kbn/alerts-ui-shared", "scope": "public", "docId": "kibKbnAlertsUiSharedPluginApi", - "section": "def-public.UseAlertDataViewProps", - "text": "UseAlertDataViewProps" + "section": "def-public.UseAlertsDataViewParams", + "text": "UseAlertsDataViewParams" }, ") => ", { "pluginId": "@kbn/alerts-ui-shared", "scope": "public", "docId": "kibKbnAlertsUiSharedPluginApi", - "section": "def-public.UseAlertDataViewResult", - "text": "UseAlertDataViewResult" + "section": "def-public.UseAlertsDataViewResult", + "text": "UseAlertsDataViewResult" } ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.useAlertDataView.$1", + "id": "def-public.useAlertsDataView.$1", "type": "Object", "tags": [], - "label": "props", + "label": "{\n http,\n dataViewsService,\n toasts,\n featureIds,\n}", "description": [], "signature": [ { "pluginId": "@kbn/alerts-ui-shared", "scope": "public", "docId": "kibKbnAlertsUiSharedPluginApi", - "section": "def-public.UseAlertDataViewProps", - "text": "UseAlertDataViewProps" + "section": "def-public.UseAlertsDataViewParams", + "text": "UseAlertsDataViewParams" } ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false, "isRequired": true } ], - "returnComment": [], + "returnComment": [ + "A {@link DataViewBase } object, intentionally not typed as a complete {@link DataView } object\nsince only Security Solution uses an actual in-memory data view (when `featureIds = ['siem']).\nIn all other cases the data view is computed from the index names and fields fetched from the\nalerting APIs." + ], "initialIsOpen": false }, { @@ -414,59 +418,6 @@ "returnComment": [], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.useFindAlertsQuery", - "type": "Function", - "tags": [], - "label": "useFindAlertsQuery", - "description": [ - "\nA generic hook to find alerts\n\nStill applies alerts authorization rules but, unlike triggers_actions_ui's `useFetchAlerts` hook,\nallows to perform arbitrary queries" - ], - "signature": [ - "({ http, toasts, enabled, params, }: ", - { - "pluginId": "@kbn/alerts-ui-shared", - "scope": "public", - "docId": "kibKbnAlertsUiSharedPluginApi", - "section": "def-public.UseFindAlertsQueryProps", - "text": "UseFindAlertsQueryProps" - }, - ") => ", - "UseQueryResult", - "<", - "SearchResponseBody", - "<{}, T>, Error>" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_find_alerts_query.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.useFindAlertsQuery.$1", - "type": "Object", - "tags": [], - "label": "{\n http,\n toasts,\n enabled = true,\n params,\n}", - "description": [], - "signature": [ - { - "pluginId": "@kbn/alerts-ui-shared", - "scope": "public", - "docId": "kibKbnAlertsUiSharedPluginApi", - "section": "def-public.UseFindAlertsQueryProps", - "text": "UseFindAlertsQueryProps" - } - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_find_alerts_query.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/alerts-ui-shared", "id": "def-public.useGetAlertsGroupAggregationsQuery", @@ -474,7 +425,7 @@ "tags": [], "label": "useGetAlertsGroupAggregationsQuery", "description": [ - "\nFetches alerts aggregations for a given groupByField.\n\nSome default aggregations are applied:\n- `groupByFields`, to get the buckets based on the provided grouping field,\n - `unitsCount`, to count the number of alerts in each bucket,\n- `unitsCount`, to count the total number of alerts targeted by the query,\n- `groupsCount`, to count the total number of groups.\n\nThe provided `aggregations` are applied within `groupByFields`. Here the `groupByField` runtime\nfield can be used to perform grouping-based aggregations.\n\nApplies alerting RBAC through featureIds." + "\nFetches alerts aggregations for a given groupByField.\n\nSome default aggregations are applied:\n- `groupByFields`, to get the buckets based on the provided grouping field,\n - `unitsCount`, to count the number of alerts in each bucket,\n- `unitsCount`, to count the total number of alerts targeted by the query,\n- `groupsCount`, to count the total number of groups.\n\nThe provided `aggregations` are applied within `groupByFields`. Here the `groupByField` runtime\nfield can be used to perform grouping-based aggregations.\n`groupByField` buckets computed over a field with a null/absent value are marked with the\n`isNullGroup` flag set to true and their key is set to the `--` string.\n\nApplies alerting RBAC through featureIds." ], "signature": [ "({ http, toasts, enabled, params, }: ", @@ -894,95 +845,6 @@ "returnComment": [], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.useSearchAlertsQuery", - "type": "Function", - "tags": [ - "external" - ], - "label": "useSearchAlertsQuery", - "description": [ - "\nQuery alerts\n\nWhen testing components that depend on this hook, prefer mocking the {@link searchAlerts} function instead of the hook itself." - ], - "signature": [ - "({ data, ...params }: { fields?: ", - "QueryDslFieldAndFormat", - "[] | undefined; featureIds: ", - { - "pluginId": "@kbn/rule-data-utils", - "scope": "common", - "docId": "kibKbnRuleDataUtilsPluginApi", - "section": "def-common.AlertConsumers", - "text": "AlertConsumers" - }, - "[]; data: ", - { - "pluginId": "data", - "scope": "public", - "docId": "kibDataPluginApi", - "section": "def-public.DataPublicPluginStart", - "text": "DataPublicPluginStart" - }, - "; runtimeMappings?: ", - "MappingRuntimeFields", - " | undefined; sort?: ", - "SortCombinations", - "[] | undefined; query?: Pick<", - "QueryDslQueryContainer", - ", \"ids\" | \"bool\"> | undefined; pageSize?: number | undefined; pageIndex?: number | undefined; }) => ", - "UseQueryResult", - "<", - "SearchAlertsResult", - ", unknown>" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_search_alerts_query.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.useSearchAlertsQuery.$1", - "type": "Object", - "tags": [], - "label": "{ data, ...params }", - "description": [], - "signature": [ - "{ fields?: ", - "QueryDslFieldAndFormat", - "[] | undefined; featureIds: ", - { - "pluginId": "@kbn/rule-data-utils", - "scope": "common", - "docId": "kibKbnRuleDataUtilsPluginApi", - "section": "def-common.AlertConsumers", - "text": "AlertConsumers" - }, - "[]; data: ", - { - "pluginId": "data", - "scope": "public", - "docId": "kibDataPluginApi", - "section": "def-public.DataPublicPluginStart", - "text": "DataPublicPluginStart" - }, - "; runtimeMappings?: ", - "MappingRuntimeFields", - " | undefined; sort?: ", - "SortCombinations", - "[] | undefined; query?: Pick<", - "QueryDslQueryContainer", - ", \"ids\" | \"bool\"> | undefined; pageSize?: number | undefined; pageIndex?: number | undefined; }" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_search_alerts_query.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/alerts-ui-shared", "id": "def-public.useUpdateRule", @@ -4267,7 +4129,7 @@ "label": "setRuleProperty", "description": [], "signature": [ - "(key: Prop, value: ", + "(key: Prop, value: ", { "pluginId": "@kbn/alerts-ui-shared", "scope": "public", @@ -4504,39 +4366,18 @@ }, { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseAlertDataViewProps", + "id": "def-public.UseAlertsDataViewParams", "type": "Interface", "tags": [], - "label": "UseAlertDataViewProps", + "label": "UseAlertsDataViewParams", "description": [], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseAlertDataViewProps.featureIds", - "type": "Array", - "tags": [], - "label": "featureIds", - "description": [], - "signature": [ - { - "pluginId": "@kbn/rule-data-utils", - "scope": "common", - "docId": "kibKbnRuleDataUtilsPluginApi", - "section": "def-common.AlertConsumers", - "text": "AlertConsumers" - }, - "[]" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseAlertDataViewProps.http", + "id": "def-public.UseAlertsDataViewParams.http", "type": "Object", "tags": [], "label": "http", @@ -4550,13 +4391,13 @@ "text": "HttpSetup" } ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseAlertDataViewProps.dataViewsService", + "id": "def-public.UseAlertsDataViewParams.dataViewsService", "type": "Object", "tags": [], "label": "dataViewsService", @@ -4876,13 +4717,13 @@ }, ">; }" ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseAlertDataViewProps.toasts", + "id": "def-public.UseAlertsDataViewParams.toasts", "type": "Object", "tags": [], "label": "toasts", @@ -4896,7 +4737,30 @@ "text": "IToasts" } ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-public.UseAlertsDataViewParams.featureIds", + "type": "Array", + "tags": [], + "label": "featureIds", + "description": [ + "\nArray of feature ids used for authorization and area-based filtering\n\nSecurity data views must be requested in isolation (i.e. `['siem']`). If mixed with\nother feature ids, the resulting data view will be empty." + ], + "signature": [ + { + "pluginId": "@kbn/rule-data-utils", + "scope": "common", + "docId": "kibKbnRuleDataUtilsPluginApi", + "section": "def-common.AlertConsumers", + "text": "AlertConsumers" + }, + "[]" + ], + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false } @@ -4905,44 +4769,53 @@ }, { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseAlertDataViewResult", + "id": "def-public.UseAlertsDataViewResult", "type": "Interface", "tags": [], - "label": "UseAlertDataViewResult", + "label": "UseAlertsDataViewResult", "description": [], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseAlertDataViewResult.dataViews", - "type": "Array", + "id": "def-public.UseAlertsDataViewResult.isLoading", + "type": "boolean", "tags": [], - "label": "dataViews", + "label": "isLoading", "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - "[] | undefined" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseAlertDataViewResult.loading", - "type": "boolean", + "id": "def-public.UseAlertsDataViewResult.dataView", + "type": "CompoundType", "tags": [], - "label": "loading", + "label": "dataView", "description": [], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alert_data_view.ts", + "signature": [ + "(Omit<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.DataViewBase", + "text": "DataViewBase" + }, + ", \"fields\"> & { fields: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]; }) | undefined" + ], + "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_alerts_data_view.ts", "deprecated": false, "trackAdoption": false } @@ -5081,90 +4954,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseFindAlertsQueryProps", - "type": "Interface", - "tags": [], - "label": "UseFindAlertsQueryProps", - "description": [], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_find_alerts_query.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseFindAlertsQueryProps.http", - "type": "Object", - "tags": [], - "label": "http", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "public", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-public.HttpSetup", - "text": "HttpSetup" - } - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_find_alerts_query.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseFindAlertsQueryProps.toasts", - "type": "Object", - "tags": [], - "label": "toasts", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "public", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-public.IToasts", - "text": "IToasts" - } - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_find_alerts_query.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseFindAlertsQueryProps.enabled", - "type": "CompoundType", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_find_alerts_query.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseFindAlertsQueryProps.params", - "type": "CompoundType", - "tags": [], - "label": "params", - "description": [], - "signature": [ - "{ trackTotalHits?: boolean | undefined; } & ", - "SearchRequest", - " & { feature_ids?: string[] | undefined; }" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_find_alerts_query.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/alerts-ui-shared", "id": "def-public.UseGetAlertsGroupAggregationsQueryProps", @@ -6063,21 +5852,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.queryKeyPrefix", - "type": "Array", - "tags": [], - "label": "queryKeyPrefix", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_search_alerts_query.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "@kbn/alerts-ui-shared", "id": "def-public.ResolvedRule", @@ -6406,45 +6180,6 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/alerts-ui-shared", - "id": "def-public.UseSearchAlertsQueryParams", - "type": "Type", - "tags": [], - "label": "UseSearchAlertsQueryParams", - "description": [], - "signature": [ - "{ fields?: ", - "QueryDslFieldAndFormat", - "[] | undefined; featureIds: ", - { - "pluginId": "@kbn/rule-data-utils", - "scope": "common", - "docId": "kibKbnRuleDataUtilsPluginApi", - "section": "def-common.AlertConsumers", - "text": "AlertConsumers" - }, - "[]; data: ", - { - "pluginId": "data", - "scope": "public", - "docId": "kibDataPluginApi", - "section": "def-public.DataPublicPluginStart", - "text": "DataPublicPluginStart" - }, - "; runtimeMappings?: ", - "MappingRuntimeFields", - " | undefined; sort?: ", - "SortCombinations", - "[] | undefined; query?: Pick<", - "QueryDslQueryContainer", - ", \"ids\" | \"bool\"> | undefined; pageSize?: number | undefined; pageIndex?: number | undefined; }" - ], - "path": "packages/kbn-alerts-ui-shared/src/common/hooks/use_search_alerts_query.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false } ], "objects": [ diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index ac998c5bb4316..f4ae83ee2bb5d 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 310 | 0 | 293 | 9 | +| 299 | 0 | 282 | 8 | ## Client diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index dd5f22a14f394..b1116871df3d5 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx index 06b57d303d835..9d2cf63cd98a9 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils'] --- import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index f4b71ba43faf9..baab52fcd0c72 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-08-09 +date: 2024-08-27 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 9f46de34ea606..5bd1bdf21cf2c 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_apm_synthtrace.devdocs.json index 26ccc25ade717..33cbffd896893 100644 --- a/api_docs/kbn_apm_synthtrace.devdocs.json +++ b/api_docs/kbn_apm_synthtrace.devdocs.json @@ -633,6 +633,38 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.InfraSynthtraceKibanaClient.uninstallSystemPackage", + "type": "Function", + "tags": [], + "label": "uninstallSystemPackage", + "description": [], + "signature": [ + "(packageVersion: string) => Promise" + ], + "path": "packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.InfraSynthtraceKibanaClient.uninstallSystemPackage.$1", + "type": "string", + "tags": [], + "label": "packageVersion", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -704,6 +736,40 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.LogsSynthtraceEsClient.createIndexTemplate", + "type": "Function", + "tags": [], + "label": "createIndexTemplate", + "description": [], + "signature": [ + "(name: ", + "IndexTemplateName", + ") => Promise" + ], + "path": "packages/kbn-apm-synthtrace/src/lib/logs/logs_synthtrace_es_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.LogsSynthtraceEsClient.createIndexTemplate.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "IndexTemplateName" + ], + "path": "packages/kbn-apm-synthtrace/src/lib/logs/logs_synthtrace_es_client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 26f74245bed6a..f2cd1fc825be9 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.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 | |-------------------|-----------|------------------------|-----------------| -| 49 | 0 | 49 | 8 | +| 53 | 0 | 53 | 9 | ## Server diff --git a/api_docs/kbn_apm_synthtrace_client.devdocs.json b/api_docs/kbn_apm_synthtrace_client.devdocs.json index 2c1979907d982..8f29a85704f03 100644 --- a/api_docs/kbn_apm_synthtrace_client.devdocs.json +++ b/api_docs/kbn_apm_synthtrace_client.devdocs.json @@ -2724,7 +2724,9 @@ " | ", "K8sContainerMetricsDocument", " | ", - "AWSRdsMetricsDocument" + "AWSRdsMetricsDocument", + " | ", + "K8sNodeMetricsDocument" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts", "deprecated": false, @@ -2739,7 +2741,7 @@ "label": "LogDocument", "description": [], "signature": [ - "{ '@timestamp'?: number | undefined; } & Partial<{ 'input.type': string; 'log.file.path'?: string | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'data_stream.namespace': string; 'data_stream.type': string; 'data_stream.dataset': string; message?: string | undefined; 'error.message'?: string | undefined; 'event.original'?: string | undefined; 'event.dataset': string; 'log.level'?: string | undefined; 'host.name'?: string | undefined; 'container.id'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'kubernetes.pod.uid'?: string | undefined; 'aws.s3.bucket.name'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'container.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.exception.stacktrace'?: string | undefined; 'error.log.stacktrace'?: string | undefined; 'log.custom': Record; }>" + "{ '@timestamp'?: number | undefined; } & Partial<{ 'input.type': string; 'log.file.path'?: string | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'data_stream.namespace': string; 'data_stream.type': string; 'data_stream.dataset': string; message?: string | undefined; 'error.message'?: string | undefined; 'event.original'?: string | undefined; 'event.dataset': string; 'log.level'?: string | undefined; 'host.name'?: string | undefined; 'container.id'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'kubernetes.pod.uid'?: string | undefined; 'aws.s3.bucket.name'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'container.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.exception.stacktrace'?: string | undefined; 'error.log.stacktrace'?: string | undefined; 'log.custom': Record; 'host.geo.location': number[]; 'host.ip': string; 'network.bytes': number; 'tls.established': boolean; 'event.duration': number; 'event.start': Date; 'event.end': Date; }>" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts", "deprecated": false, @@ -3135,6 +3137,46 @@ "trackAdoption": false } ] + }, + { + "parentPluginId": "@kbn/apm-synthtrace-client", + "id": "def-common.infra.k8sNode", + "type": "Function", + "tags": [], + "label": "k8sNode", + "description": [], + "signature": [ + "(name: string, podUid: string) => ", + "K8sNode" + ], + "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.k8sNode.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_node.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/apm-synthtrace-client", + "id": "def-common.infra.k8sNode.$2", + "type": "string", + "tags": [], + "label": "podUid", + "description": [], + "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_node.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "initialIsOpen": false @@ -3158,13 +3200,28 @@ "label": "create", "description": [], "signature": [ - "() => Log" + "(logsOptions?: LogsOptions) => Log" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], - "children": [] + "children": [ + { + "parentPluginId": "@kbn/apm-synthtrace-client", + "id": "def-common.log.create.$1", + "type": "Object", + "tags": [], + "label": "logsOptions", + "description": [], + "signature": [ + "LogsOptions" + ], + "path": "packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "initialIsOpen": false diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index d8f456992fd82..cd6976985d516 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-08-09 +date: 2024-08-27 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 | |-------------------|-----------|------------------------|-----------------| -| 200 | 0 | 200 | 31 | +| 204 | 0 | 204 | 33 | ## Common diff --git a/api_docs/kbn_apm_types.mdx b/api_docs/kbn_apm_types.mdx index ae6b2b8e752b7..7e25637a0387f 100644 --- a/api_docs/kbn_apm_types.mdx +++ b/api_docs/kbn_apm_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-types title: "@kbn/apm-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-types plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-types'] --- import kbnApmTypesObj from './kbn_apm_types.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index d89f300c22cae..4a5c5681ea201 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_avc_banner.mdx b/api_docs/kbn_avc_banner.mdx index c5162e3b2766b..81e4caa4db02e 100644 --- a/api_docs/kbn_avc_banner.mdx +++ b/api_docs/kbn_avc_banner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-avc-banner title: "@kbn/avc-banner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/avc-banner plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/avc-banner'] --- import kbnAvcBannerObj from './kbn_avc_banner.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 1dc2f49f4c87d..83ffe3d48c656 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-08-09 +date: 2024-08-27 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 86b7dd66f9f3a..0e695ad07bcff 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-08-09 +date: 2024-08-27 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 e85729810262a..56a0eec50a8f2 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-08-09 +date: 2024-08-27 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 9e1a7a1cb093e..91398cbf372ed 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-08-09 +date: 2024-08-27 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 7e82a0e7fee71..83fef34dce621 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cbor.devdocs.json b/api_docs/kbn_cbor.devdocs.json new file mode 100644 index 0000000000000..aaa703e771f89 --- /dev/null +++ b/api_docs/kbn_cbor.devdocs.json @@ -0,0 +1,171 @@ +{ + "id": "@kbn/cbor", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [ + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.KbnCbor", + "type": "Class", + "tags": [], + "label": "KbnCbor", + "description": [], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.KbnCbor.encode", + "type": "Function", + "tags": [], + "label": "encode", + "description": [], + "signature": [ + "(data: unknown) => any" + ], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.KbnCbor.encode.$1", + "type": "Unknown", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.KbnCbor.decode", + "type": "Function", + "tags": [], + "label": "decode", + "description": [], + "signature": [ + "(uint8: any) => any" + ], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.KbnCbor.decode.$1", + "type": "Any", + "tags": [], + "label": "uint8", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.decode", + "type": "Function", + "tags": [], + "label": "decode", + "description": [], + "signature": [ + "(uint8: any) => any" + ], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.decode.$1", + "type": "Any", + "tags": [], + "label": "uint8", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.encode", + "type": "Function", + "tags": [], + "label": "encode", + "description": [], + "signature": [ + "(data: unknown) => any" + ], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/cbor", + "id": "def-common.encode.$1", + "type": "Unknown", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-cbor/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_cbor.mdx b/api_docs/kbn_cbor.mdx new file mode 100644 index 0000000000000..5720f6996dfdf --- /dev/null +++ b/api_docs/kbn_cbor.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCborPluginApi +slug: /kibana-dev-docs/api/kbn-cbor +title: "@kbn/cbor" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/cbor plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cbor'] +--- +import kbnCborObj from './kbn_cbor.devdocs.json'; + + + +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 9 | 2 | 9 | 0 | + +## Common + +### Functions + + +### Classes + + diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 9379e60e8b414..a07787f1fbc3a 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-08-09 +date: 2024-08-27 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 e242e6aae319d..56b27d69fcece 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-08-09 +date: 2024-08-27 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 8d3a5251e12ed..795e67895a493 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-08-09 +date: 2024-08-27 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 e8c4ee961a525..3e7cdf023bff6 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-08-09 +date: 2024-08-27 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 265b03ec36d10..80e3fe3bef8b4 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-08-09 +date: 2024-08-27 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 48f5eb050e190..6f6944f783e90 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-08-09 +date: 2024-08-27 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 d3501c233f8f2..622447bc9ecd5 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-08-09 +date: 2024-08-27 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 0bcf2cae47ec7..85f1b3317f0f0 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-08-09 +date: 2024-08-27 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 07ff53da835cc..ee54ac976c335 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-08-09 +date: 2024-08-27 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 693e8e420adc5..b284131e2e21a 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-08-09 +date: 2024-08-27 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 34a2479160975..acd67820e9cbf 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-08-09 +date: 2024-08-27 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 9bece4544b547..2fbfe5daa0121 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-08-09 +date: 2024-08-27 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 5d02a6662e46b..8520b4bb8e954 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.devdocs.json b/api_docs/kbn_config_schema.devdocs.json index bf268d7f43e1e..27e04a098acd6 100644 --- a/api_docs/kbn_config_schema.devdocs.json +++ b/api_docs/kbn_config_schema.devdocs.json @@ -1056,7 +1056,7 @@ { "parentPluginId": "@kbn/config-schema", "id": "def-common.Type.internalSchema", - "type": "Object", + "type": "CompoundType", "tags": [ "type" ], @@ -1066,6 +1066,28 @@ ], "signature": [ "AnySchema", + " | ", + "ArraySchema", + " | ", + "AlternativesSchema", + " | ", + "BinarySchema", + " | ", + "BooleanSchema", + " | ", + "DateSchema", + " | ", + "FunctionSchema", + " | ", + "NumberSchema", + " | ", + "ObjectSchema", + " | ", + "StringSchema", + " | ", + "LinkSchema", + " | ", + "SymbolSchema", "" ], "path": "packages/kbn-config-schema/src/types/type.ts", @@ -1089,12 +1111,12 @@ { "parentPluginId": "@kbn/config-schema", "id": "def-common.Type.Unnamed.$1", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "schema", "description": [], "signature": [ - "AnySchema", + "Schema", "" ], "path": "packages/kbn-config-schema/src/types/type.ts", @@ -1268,7 +1290,7 @@ "description": [], "signature": [ "() => ", - "AnySchema", + "Schema", "" ], "path": "packages/kbn-config-schema/src/types/type.ts", @@ -4648,7 +4670,113 @@ "section": "def-common.ObjectType", "text": "ObjectType" }, - "

; oneOf: { (types: [", + "

; oneOf: { (types: [", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "], options?: ", + "UnionTypeOptions", + " | undefined): ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; (types: [", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -9054,7 +9182,113 @@ "label": "oneOf", "description": [], "signature": [ - "{ (types: [", + "{ (types: [", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + ", ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "], options?: ", + "UnionTypeOptions", + " | undefined): ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; (types: [", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index ba1bc5a16484f..ab0b8b39b7997 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_content_management_content_editor.devdocs.json index 5c5c0f8208433..fc863182b74d3 100644 --- a/api_docs/kbn_content_management_content_editor.devdocs.json +++ b/api_docs/kbn_content_management_content_editor.devdocs.json @@ -170,7 +170,7 @@ "Item", "; isReadonly?: boolean | undefined; readonlyReason?: string | undefined; entityName: string; customValidators?: ", "CustomValidators", - " | undefined; showActivityView?: boolean | undefined; }" + " | undefined; appendRows?: React.ReactNode; }" ], "path": "packages/content-management/content_editor/src/open_content_editor.tsx", "deprecated": false, diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index f9125cd04200f..35107047deb46 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-08-09 +date: 2024-08-27 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_content_insights_public.devdocs.json b/api_docs/kbn_content_management_content_insights_public.devdocs.json new file mode 100644 index 0000000000000..0e6c72081bd1b --- /dev/null +++ b/api_docs/kbn_content_management_content_insights_public.devdocs.json @@ -0,0 +1,619 @@ +{ + "id": "@kbn/content-management-content-insights-public", + "client": { + "classes": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient", + "type": "Class", + "tags": [], + "label": "ContentInsightsClient", + "description": [ + "\nClient for the Content Management Insights service." + ], + "signature": [ + { + "pluginId": "@kbn/content-management-content-insights-public", + "scope": "public", + "docId": "kibKbnContentManagementContentInsightsPublicPluginApi", + "section": "def-public.ContentInsightsClient", + "text": "ContentInsightsClient" + }, + " implements ", + { + "pluginId": "@kbn/content-management-content-insights-public", + "scope": "public", + "docId": "kibKbnContentManagementContentInsightsPublicPluginApi", + "section": "def-public.ContentInsightsClientPublic", + "text": "ContentInsightsClientPublic" + } + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "deps", + "description": [], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.Unnamed.$1.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-browser", + "scope": "public", + "docId": "kibKbnCoreHttpBrowserPluginApi", + "section": "def-public.HttpSetup", + "text": "HttpSetup" + } + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.Unnamed.$2.domainId", + "type": "string", + "tags": [], + "label": "domainId", + "description": [], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.track", + "type": "Function", + "tags": [], + "label": "track", + "description": [], + "signature": [ + "(id: string, eventType: \"viewed\") => void" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.track.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.track.$2", + "type": "string", + "tags": [], + "label": "eventType", + "description": [], + "signature": [ + "\"viewed\"" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.getStats", + "type": "Function", + "tags": [], + "label": "getStats", + "description": [], + "signature": [ + "(id: string, eventType: \"viewed\") => Promise<", + { + "pluginId": "@kbn/content-management-content-insights-server", + "scope": "server", + "docId": "kibKbnContentManagementContentInsightsServerPluginApi", + "section": "def-server.ContentInsightsStats", + "text": "ContentInsightsStats" + }, + ">" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.getStats.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClient.getStats.$2", + "type": "string", + "tags": [], + "label": "eventType", + "description": [], + "signature": [ + "\"viewed\"" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ActivityView", + "type": "Function", + "tags": [], + "label": "ActivityView", + "description": [], + "signature": [ + "({ item }: ", + { + "pluginId": "@kbn/content-management-content-insights-public", + "scope": "public", + "docId": "kibKbnContentManagementContentInsightsPublicPluginApi", + "section": "def-public.ActivityViewProps", + "text": "ActivityViewProps" + }, + ") => JSX.Element" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/components/activity_view.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ActivityView.$1", + "type": "Object", + "tags": [], + "label": "{ item }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/content-management-content-insights-public", + "scope": "public", + "docId": "kibKbnContentManagementContentInsightsPublicPluginApi", + "section": "def-public.ActivityViewProps", + "text": "ActivityViewProps" + } + ], + "path": "packages/content-management/content_insights/content_insights_public/src/components/activity_view.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsProvider", + "type": "Function", + "tags": [], + "label": "ContentInsightsProvider", + "description": [ + "\nAbstract external service Provider." + ], + "signature": [ + "({ children, ...services }: React.PropsWithChildren>>) => JSX.Element" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/services.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsProvider.$1", + "type": "CompoundType", + "tags": [], + "label": "{\n children,\n ...services\n}", + "description": [], + "signature": [ + "React.PropsWithChildren>>" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/services.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.useServices", + "type": "Function", + "tags": [], + "label": "useServices", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/content-management-content-insights-public", + "scope": "public", + "docId": "kibKbnContentManagementContentInsightsPublicPluginApi", + "section": "def-public.ContentInsightsServices", + "text": "ContentInsightsServices" + }, + " | null" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/services.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ViewsStats", + "type": "Function", + "tags": [], + "label": "ViewsStats", + "description": [], + "signature": [ + "({ item }: { item: ", + { + "pluginId": "@kbn/content-management-table-list-view-common", + "scope": "common", + "docId": "kibKbnContentManagementTableListViewCommonPluginApi", + "section": "def-common.UserContentCommonSchema", + "text": "UserContentCommonSchema" + }, + "; }) => JSX.Element" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ViewsStats.$1", + "type": "Object", + "tags": [], + "label": "{ item }", + "description": [], + "path": "packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ViewsStats.$1.item", + "type": "Object", + "tags": [], + "label": "item", + "description": [], + "signature": [ + { + "pluginId": "@kbn/content-management-table-list-view-common", + "scope": "common", + "docId": "kibKbnContentManagementTableListViewCommonPluginApi", + "section": "def-common.UserContentCommonSchema", + "text": "UserContentCommonSchema" + } + ], + "path": "packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.tsx", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ActivityViewProps", + "type": "Interface", + "tags": [], + "label": "ActivityViewProps", + "description": [], + "path": "packages/content-management/content_insights/content_insights_public/src/components/activity_view.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ActivityViewProps.item", + "type": "Object", + "tags": [], + "label": "item", + "description": [], + "signature": [ + "{ createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; managed?: boolean | undefined; }" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/components/activity_view.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClientPublic", + "type": "Interface", + "tags": [], + "label": "ContentInsightsClientPublic", + "description": [ + "\nPublic interface of the Content Management Insights service." + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClientPublic.track", + "type": "Function", + "tags": [], + "label": "track", + "description": [], + "signature": [ + "(id: string, eventType: \"viewed\") => void" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClientPublic.track.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClientPublic.track.$2", + "type": "string", + "tags": [], + "label": "eventType", + "description": [], + "signature": [ + "\"viewed\"" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClientPublic.getStats", + "type": "Function", + "tags": [], + "label": "getStats", + "description": [], + "signature": [ + "(id: string, eventType: \"viewed\") => Promise<", + { + "pluginId": "@kbn/content-management-content-insights-server", + "scope": "server", + "docId": "kibKbnContentManagementContentInsightsServerPluginApi", + "section": "def-server.ContentInsightsStats", + "text": "ContentInsightsStats" + }, + ">" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClientPublic.getStats.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsClientPublic.getStats.$2", + "type": "string", + "tags": [], + "label": "eventType", + "description": [], + "signature": [ + "\"viewed\"" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsServices", + "type": "Interface", + "tags": [], + "label": "ContentInsightsServices", + "description": [ + "\nAbstract external services for this component." + ], + "path": "packages/content-management/content_insights/content_insights_public/src/services.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsServices.contentInsightsClient", + "type": "Object", + "tags": [], + "label": "contentInsightsClient", + "description": [], + "signature": [ + { + "pluginId": "@kbn/content-management-content-insights-public", + "scope": "public", + "docId": "kibKbnContentManagementContentInsightsPublicPluginApi", + "section": "def-public.ContentInsightsClientPublic", + "text": "ContentInsightsClientPublic" + } + ], + "path": "packages/content-management/content_insights/content_insights_public/src/services.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/content-management-content-insights-public", + "id": "def-public.ContentInsightsEventTypes", + "type": "Type", + "tags": [], + "label": "ContentInsightsEventTypes", + "description": [], + "signature": [ + "\"viewed\"" + ], + "path": "packages/content-management/content_insights/content_insights_public/src/client.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_content_management_content_insights_public.mdx b/api_docs/kbn_content_management_content_insights_public.mdx new file mode 100644 index 0000000000000..25b8de8994840 --- /dev/null +++ b/api_docs/kbn_content_management_content_insights_public.mdx @@ -0,0 +1,39 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnContentManagementContentInsightsPublicPluginApi +slug: /kibana-dev-docs/api/kbn-content-management-content-insights-public +title: "@kbn/content-management-content-insights-public" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/content-management-content-insights-public plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-insights-public'] +--- +import kbnContentManagementContentInsightsPublicObj from './kbn_content_management_content_insights_public.devdocs.json'; + + + +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 32 | 0 | 28 | 0 | + +## Client + +### Functions + + +### Classes + + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/kbn_content_management_content_insights_server.devdocs.json b/api_docs/kbn_content_management_content_insights_server.devdocs.json new file mode 100644 index 0000000000000..1e282575547c7 --- /dev/null +++ b/api_docs/kbn_content_management_content_insights_server.devdocs.json @@ -0,0 +1,171 @@ +{ + "id": "@kbn/content-management-content-insights-server", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.registerContentInsights", + "type": "Function", + "tags": [], + "label": "registerContentInsights", + "description": [], + "signature": [ + "({ usageCollection, http, getStartServices }: ", + "ContentInsightsDependencies", + ", config: ", + "ContentInsightsConfig", + ") => void" + ], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.registerContentInsights.$1", + "type": "Object", + "tags": [], + "label": "{ usageCollection, http, getStartServices }", + "description": [], + "signature": [ + "ContentInsightsDependencies" + ], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.registerContentInsights.$2", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "ContentInsightsConfig" + ], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.ContentInsightsStats", + "type": "Interface", + "tags": [], + "label": "ContentInsightsStats", + "description": [], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.ContentInsightsStats.from", + "type": "string", + "tags": [], + "label": "from", + "description": [ + "\nThe date from which the data is counted" + ], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.ContentInsightsStats.count", + "type": "number", + "tags": [], + "label": "count", + "description": [ + "\nTotal count of events" + ], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.ContentInsightsStats.daily", + "type": "Array", + "tags": [], + "label": "daily", + "description": [ + "\nDaily counts of events" + ], + "signature": [ + "{ date: string; count: number; }[]" + ], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.ContentInsightsStatsResponse", + "type": "Interface", + "tags": [], + "label": "ContentInsightsStatsResponse", + "description": [], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-content-insights-server", + "id": "def-server.ContentInsightsStatsResponse.result", + "type": "Object", + "tags": [], + "label": "result", + "description": [], + "signature": [ + { + "pluginId": "@kbn/content-management-content-insights-server", + "scope": "server", + "docId": "kibKbnContentManagementContentInsightsServerPluginApi", + "section": "def-server.ContentInsightsStats", + "text": "ContentInsightsStats" + } + ], + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_content_management_content_insights_server.mdx b/api_docs/kbn_content_management_content_insights_server.mdx new file mode 100644 index 0000000000000..a91bfa36b7375 --- /dev/null +++ b/api_docs/kbn_content_management_content_insights_server.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnContentManagementContentInsightsServerPluginApi +slug: /kibana-dev-docs/api/kbn-content-management-content-insights-server +title: "@kbn/content-management-content-insights-server" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/content-management-content-insights-server plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-insights-server'] +--- +import kbnContentManagementContentInsightsServerObj from './kbn_content_management_content_insights_server.devdocs.json'; + + + +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 9 | 0 | 6 | 2 | + +## Server + +### Functions + + +### Interfaces + + diff --git a/api_docs/kbn_content_management_favorites_public.devdocs.json b/api_docs/kbn_content_management_favorites_public.devdocs.json new file mode 100644 index 0000000000000..9d7837ee1cfd2 --- /dev/null +++ b/api_docs/kbn_content_management_favorites_public.devdocs.json @@ -0,0 +1,702 @@ +{ + "id": "@kbn/content-management-favorites-public", + "client": { + "classes": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient", + "type": "Class", + "tags": [], + "label": "FavoritesClient", + "description": [], + "signature": [ + { + "pluginId": "@kbn/content-management-favorites-public", + "scope": "public", + "docId": "kibKbnContentManagementFavoritesPublicPluginApi", + "section": "def-public.FavoritesClient", + "text": "FavoritesClient" + }, + " implements ", + { + "pluginId": "@kbn/content-management-favorites-public", + "scope": "public", + "docId": "kibKbnContentManagementFavoritesPublicPluginApi", + "section": "def-public.FavoritesClientPublic", + "text": "FavoritesClientPublic" + } + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.Unnamed.$1", + "type": "string", + "tags": [], + "label": "favoriteObjectType", + "description": [], + "signature": [ + "string" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "deps", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.Unnamed.$2.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-browser", + "scope": "public", + "docId": "kibKbnCoreHttpBrowserPluginApi", + "section": "def-public.HttpSetup", + "text": "HttpSetup" + } + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.getFavorites", + "type": "Function", + "tags": [], + "label": "getFavorites", + "description": [], + "signature": [ + "() => Promise<", + { + "pluginId": "@kbn/content-management-favorites-server", + "scope": "server", + "docId": "kibKbnContentManagementFavoritesServerPluginApi", + "section": "def-server.GetFavoritesResponse", + "text": "GetFavoritesResponse" + }, + ">" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.addFavorite", + "type": "Function", + "tags": [], + "label": "addFavorite", + "description": [], + "signature": [ + "({ id }: { id: string; }) => Promise<", + { + "pluginId": "@kbn/content-management-favorites-server", + "scope": "server", + "docId": "kibKbnContentManagementFavoritesServerPluginApi", + "section": "def-server.GetFavoritesResponse", + "text": "GetFavoritesResponse" + }, + ">" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.addFavorite.$1", + "type": "Object", + "tags": [], + "label": "{ id }", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.addFavorite.$1.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.removeFavorite", + "type": "Function", + "tags": [], + "label": "removeFavorite", + "description": [], + "signature": [ + "({ id }: { id: string; }) => Promise<", + { + "pluginId": "@kbn/content-management-favorites-server", + "scope": "server", + "docId": "kibKbnContentManagementFavoritesServerPluginApi", + "section": "def-server.GetFavoritesResponse", + "text": "GetFavoritesResponse" + }, + ">" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.removeFavorite.$1", + "type": "Object", + "tags": [], + "label": "{ id }", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.removeFavorite.$1.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClient.getFavoriteType", + "type": "Function", + "tags": [], + "label": "getFavoriteType", + "description": [], + "signature": [ + "() => string" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.cssFavoriteHoverWithinEuiTableRow", + "type": "Function", + "tags": [], + "label": "cssFavoriteHoverWithinEuiTableRow", + "description": [ + "\nCSS to apply to euiTable to show the favorite button on hover or when active" + ], + "signature": [ + "(euiTheme: ", + "EuiThemeComputed", + "<{}>) => ", + "SerializedStyles" + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.cssFavoriteHoverWithinEuiTableRow.$1", + "type": "CompoundType", + "tags": [], + "label": "euiTheme", + "description": [], + "signature": [ + "EuiThemeComputed", + "<{}>" + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoriteButton", + "type": "Function", + "tags": [], + "label": "FavoriteButton", + "description": [], + "signature": [ + "({ id, className }: ", + { + "pluginId": "@kbn/content-management-favorites-public", + "scope": "public", + "docId": "kibKbnContentManagementFavoritesPublicPluginApi", + "section": "def-public.FavoriteButtonProps", + "text": "FavoriteButtonProps" + }, + ") => JSX.Element | null" + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoriteButton.$1", + "type": "Object", + "tags": [], + "label": "{ id, className }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/content-management-favorites-public", + "scope": "public", + "docId": "kibKbnContentManagementFavoritesPublicPluginApi", + "section": "def-public.FavoriteButtonProps", + "text": "FavoriteButtonProps" + } + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesContextProvider", + "type": "Function", + "tags": [], + "label": "FavoritesContextProvider", + "description": [], + "signature": [ + "({ favoritesClient, notifyError, children, }: React.PropsWithChildren) => JSX.Element" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_context.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesContextProvider.$1", + "type": "CompoundType", + "tags": [], + "label": "{\n favoritesClient,\n notifyError,\n children,\n}", + "description": [], + "signature": [ + "React.PropsWithChildren" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_context.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesEmptyState", + "type": "Function", + "tags": [], + "label": "FavoritesEmptyState", + "description": [], + "signature": [ + "({ emptyStateType, entityNamePlural, entityName, }: { emptyStateType: \"noItems\" | \"noMatchingItems\"; entityNamePlural?: string | undefined; entityName?: string | undefined; }) => JSX.Element" + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorites_empty_state.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesEmptyState.$1", + "type": "Object", + "tags": [], + "label": "{\n emptyStateType = 'noItems',\n entityNamePlural = i18n.translate('contentManagement.favorites.defaultEntityNamePlural', {\n defaultMessage: 'items',\n }),\n entityName = i18n.translate('contentManagement.favorites.defaultEntityName', {\n defaultMessage: 'item',\n }),\n}", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/components/favorites_empty_state.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesEmptyState.$1.emptyStateType", + "type": "CompoundType", + "tags": [], + "label": "emptyStateType", + "description": [], + "signature": [ + "\"noItems\" | \"noMatchingItems\"" + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorites_empty_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesEmptyState.$1.entityNamePlural", + "type": "string", + "tags": [], + "label": "entityNamePlural", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorites_empty_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesEmptyState.$1.entityName", + "type": "string", + "tags": [], + "label": "entityName", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorites_empty_state.tsx", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.useFavorites", + "type": "Function", + "tags": [], + "label": "useFavorites", + "description": [], + "signature": [ + "({ enabled }?: { enabled?: boolean | undefined; }) => ", + "UseQueryResult", + "<", + { + "pluginId": "@kbn/content-management-favorites-server", + "scope": "server", + "docId": "kibKbnContentManagementFavoritesServerPluginApi", + "section": "def-server.GetFavoritesResponse", + "text": "GetFavoritesResponse" + }, + ", unknown>" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_query.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.useFavorites.$1", + "type": "Object", + "tags": [], + "label": "{ enabled = true }", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_query.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.useFavorites.$1.enabled", + "type": "CompoundType", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_query.tsx", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoriteButtonProps", + "type": "Interface", + "tags": [], + "label": "FavoriteButtonProps", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoriteButtonProps.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoriteButtonProps.className", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic", + "type": "Interface", + "tags": [], + "label": "FavoritesClientPublic", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic.getFavorites", + "type": "Function", + "tags": [], + "label": "getFavorites", + "description": [], + "signature": [ + "() => Promise<", + { + "pluginId": "@kbn/content-management-favorites-server", + "scope": "server", + "docId": "kibKbnContentManagementFavoritesServerPluginApi", + "section": "def-server.GetFavoritesResponse", + "text": "GetFavoritesResponse" + }, + ">" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic.addFavorite", + "type": "Function", + "tags": [], + "label": "addFavorite", + "description": [], + "signature": [ + "({ id }: { id: string; }) => Promise<", + { + "pluginId": "@kbn/content-management-favorites-server", + "scope": "server", + "docId": "kibKbnContentManagementFavoritesServerPluginApi", + "section": "def-server.GetFavoritesResponse", + "text": "GetFavoritesResponse" + }, + ">" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic.addFavorite.$1", + "type": "Object", + "tags": [], + "label": "{ id }", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic.addFavorite.$1.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic.removeFavorite", + "type": "Function", + "tags": [], + "label": "removeFavorite", + "description": [], + "signature": [ + "({ id }: { id: string; }) => Promise<", + { + "pluginId": "@kbn/content-management-favorites-server", + "scope": "server", + "docId": "kibKbnContentManagementFavoritesServerPluginApi", + "section": "def-server.GetFavoritesResponse", + "text": "GetFavoritesResponse" + }, + ">" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic.removeFavorite.$1", + "type": "Object", + "tags": [], + "label": "{ id }", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic.removeFavorite.$1.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/content-management-favorites-public", + "id": "def-public.FavoritesClientPublic.getFavoriteType", + "type": "Function", + "tags": [], + "label": "getFavoriteType", + "description": [], + "signature": [ + "() => string" + ], + "path": "packages/content-management/favorites/favorites_public/src/favorites_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_content_management_favorites_public.mdx b/api_docs/kbn_content_management_favorites_public.mdx new file mode 100644 index 0000000000000..6c125110686fe --- /dev/null +++ b/api_docs/kbn_content_management_favorites_public.mdx @@ -0,0 +1,36 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnContentManagementFavoritesPublicPluginApi +slug: /kibana-dev-docs/api/kbn-content-management-favorites-public +title: "@kbn/content-management-favorites-public" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/content-management-favorites-public plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-public'] +--- +import kbnContentManagementFavoritesPublicObj from './kbn_content_management_favorites_public.devdocs.json'; + + + +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 39 | 0 | 38 | 0 | + +## Client + +### Functions + + +### Classes + + +### Interfaces + + diff --git a/api_docs/kbn_content_management_favorites_server.devdocs.json b/api_docs/kbn_content_management_favorites_server.devdocs.json new file mode 100644 index 0000000000000..2ddd581cc7caa --- /dev/null +++ b/api_docs/kbn_content_management_favorites_server.devdocs.json @@ -0,0 +1,145 @@ +{ + "id": "@kbn/content-management-favorites-server", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/content-management-favorites-server", + "id": "def-server.registerFavorites", + "type": "Function", + "tags": [], + "label": "registerFavorites", + "description": [], + "signature": [ + "({ logger, core }: { core: ", + { + "pluginId": "@kbn/core-lifecycle-server", + "scope": "server", + "docId": "kibKbnCoreLifecycleServerPluginApi", + "section": "def-server.CoreSetup", + "text": "CoreSetup" + }, + "; logger: ", + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + }, + "; }) => void" + ], + "path": "packages/content-management/favorites/favorites_server/src/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-server", + "id": "def-server.registerFavorites.$1", + "type": "Object", + "tags": [], + "label": "{ logger, core }", + "description": [], + "path": "packages/content-management/favorites/favorites_server/src/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-server", + "id": "def-server.registerFavorites.$1.core", + "type": "Object", + "tags": [], + "label": "core", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-lifecycle-server", + "scope": "server", + "docId": "kibKbnCoreLifecycleServerPluginApi", + "section": "def-server.CoreSetup", + "text": "CoreSetup" + }, + "" + ], + "path": "packages/content-management/favorites/favorites_server/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/content-management-favorites-server", + "id": "def-server.registerFavorites.$1.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + } + ], + "path": "packages/content-management/favorites/favorites_server/src/index.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/content-management-favorites-server", + "id": "def-server.GetFavoritesResponse", + "type": "Interface", + "tags": [], + "label": "GetFavoritesResponse", + "description": [], + "path": "packages/content-management/favorites/favorites_server/src/favorites_routes.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/content-management-favorites-server", + "id": "def-server.GetFavoritesResponse.favoriteIds", + "type": "Array", + "tags": [], + "label": "favoriteIds", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/content-management/favorites/favorites_server/src/favorites_routes.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_content_management_favorites_server.mdx b/api_docs/kbn_content_management_favorites_server.mdx new file mode 100644 index 0000000000000..c61ad339ebc0b --- /dev/null +++ b/api_docs/kbn_content_management_favorites_server.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnContentManagementFavoritesServerPluginApi +slug: /kibana-dev-docs/api/kbn-content-management-favorites-server +title: "@kbn/content-management-favorites-server" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/content-management-favorites-server plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-server'] +--- +import kbnContentManagementFavoritesServerObj from './kbn_content_management_favorites_server.devdocs.json'; + + + +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 6 | 0 | 6 | 0 | + +## Server + +### Functions + + +### Interfaces + + 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 e1c3bf569facc..6999daa312b6d 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-08-09 +date: 2024-08-27 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 ca81004357a49..76046ecedaef1 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-08-09 +date: 2024-08-27 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 8b9e12ab76b71..e37e79687ed42 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_content_management_table_list_view_table.devdocs.json index 62a0a06a9bdd3..958e9a551308d 100644 --- a/api_docs/kbn_content_management_table_list_view_table.devdocs.json +++ b/api_docs/kbn_content_management_table_list_view_table.devdocs.json @@ -325,6 +325,52 @@ "trackAdoption": false } ] + }, + { + "parentPluginId": "@kbn/content-management-table-list-view-table", + "id": "def-public.TableListViewKibanaDependencies.favorites", + "type": "Object", + "tags": [], + "label": "favorites", + "description": [ + "\nThe favorites client to enable the favorites feature." + ], + "signature": [ + { + "pluginId": "@kbn/content-management-favorites-public", + "scope": "public", + "docId": "kibKbnContentManagementFavoritesPublicPluginApi", + "section": "def-public.FavoritesClientPublic", + "text": "FavoritesClientPublic" + }, + " | undefined" + ], + "path": "packages/content-management/table_list_view_table/src/services.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/content-management-table-list-view-table", + "id": "def-public.TableListViewKibanaDependencies.contentInsightsClient", + "type": "Object", + "tags": [], + "label": "contentInsightsClient", + "description": [ + "\nContent insights client to enable content insights features." + ], + "signature": [ + { + "pluginId": "@kbn/content-management-content-insights-public", + "scope": "public", + "docId": "kibKbnContentManagementContentInsightsPublicPluginApi", + "section": "def-public.ContentInsightsClientPublic", + "text": "ContentInsightsClientPublic" + }, + " | undefined" + ], + "path": "packages/content-management/table_list_view_table/src/services.tsx", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false 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 1af17d5f3154c..3681ee8831136 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.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 | |-------------------|-----------|------------------------|-----------------| -| 49 | 0 | 33 | 3 | +| 51 | 0 | 33 | 3 | ## Client diff --git a/api_docs/kbn_content_management_user_profiles.mdx b/api_docs/kbn_content_management_user_profiles.mdx index 740064b6d3a3c..8da1564b81135 100644 --- a/api_docs/kbn_content_management_user_profiles.mdx +++ b/api_docs/kbn_content_management_user_profiles.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-user-profiles title: "@kbn/content-management-user-profiles" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-user-profiles plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-user-profiles'] --- import kbnContentManagementUserProfilesObj from './kbn_content_management_user_profiles.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index cb9a33bc508c2..4cb63afb92a40 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_analytics_browser.devdocs.json index 502a1f60df079..6071d4931ceb7 100644 --- a/api_docs/kbn_core_analytics_browser.devdocs.json +++ b/api_docs/kbn_core_analytics_browser.devdocs.json @@ -708,7 +708,7 @@ }, { "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/routes/attack_discovery/helpers.ts" + "path": "x-pack/plugins/elastic_assistant/server/routes/helpers.ts" }, { "plugin": "elasticAssistant", @@ -724,7 +724,7 @@ }, { "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/routes/helpers.ts" + "path": "x-pack/plugins/elastic_assistant/server/routes/attack_discovery/helpers.ts" }, { "plugin": "elasticAssistant", @@ -982,6 +982,10 @@ "plugin": "observabilityLogsExplorer", "path": "x-pack/plugins/observability_solution/observability_logs_explorer/public/state_machines/observability_logs_explorer/src/telemetry_events.ts" }, + { + "plugin": "observabilityOnboarding", + "path": "x-pack/plugins/observability_solution/observability_onboarding/public/application/quickstart_flows/shared/feedback_buttons.tsx" + }, { "plugin": "observabilityOnboarding", "path": "x-pack/plugins/observability_solution/observability_onboarding/public/hooks/use_flow_progress_telemetry.ts" diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index be77f4a5dc67e..78f7eb84efd71 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-08-09 +date: 2024-08-27 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 417924b10ef52..abbefe10b46a9 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-08-09 +date: 2024-08-27 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 edf5580284f34..9b231d77175e5 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_analytics_server.devdocs.json index 1194fae25d085..ade36dd60bde5 100644 --- a/api_docs/kbn_core_analytics_server.devdocs.json +++ b/api_docs/kbn_core_analytics_server.devdocs.json @@ -716,7 +716,7 @@ }, { "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/routes/attack_discovery/helpers.ts" + "path": "x-pack/plugins/elastic_assistant/server/routes/helpers.ts" }, { "plugin": "elasticAssistant", @@ -732,7 +732,7 @@ }, { "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/routes/helpers.ts" + "path": "x-pack/plugins/elastic_assistant/server/routes/attack_discovery/helpers.ts" }, { "plugin": "elasticAssistant", @@ -990,6 +990,10 @@ "plugin": "observabilityLogsExplorer", "path": "x-pack/plugins/observability_solution/observability_logs_explorer/public/state_machines/observability_logs_explorer/src/telemetry_events.ts" }, + { + "plugin": "observabilityOnboarding", + "path": "x-pack/plugins/observability_solution/observability_onboarding/public/application/quickstart_flows/shared/feedback_buttons.tsx" + }, { "plugin": "observabilityOnboarding", "path": "x-pack/plugins/observability_solution/observability_onboarding/public/hooks/use_flow_progress_telemetry.ts" diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 5b21a04dfed79..a45480f32cc93 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-08-09 +date: 2024-08-27 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 694d474e59d20..9ac1416eb37b8 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-08-09 +date: 2024-08-27 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 44eca42f3cec1..5bc9d9db9e7e8 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-08-09 +date: 2024-08-27 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 1806c49376abe..81748a4eaf9da 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-08-09 +date: 2024-08-27 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 f4d7dcda7a43b..99e6f7ed95a38 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-08-09 +date: 2024-08-27 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 deedcc6c0d1d0..4ff1b45d2732a 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-08-09 +date: 2024-08-27 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 ebf6b330ac5e8..90369a003db04 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-08-09 +date: 2024-08-27 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 f6cb98d24ce2f..8b18bdd944c3b 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-08-09 +date: 2024-08-27 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 2cb1339ec4852..b80bddb5b128c 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-08-09 +date: 2024-08-27 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 44906fd3b5426..0c2868074529e 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-08-09 +date: 2024-08-27 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 8fa197bdb21d6..b235d092cd2bd 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-08-09 +date: 2024-08-27 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 91fe59f472191..64dfef98a4f3e 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-08-09 +date: 2024-08-27 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 2f3ca370b7d34..86ec2b57b7b67 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-08-09 +date: 2024-08-27 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 1e402b4f7ca35..4f2e8d28523ff 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-08-09 +date: 2024-08-27 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 73c417a283f68..52767b383d9c8 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-08-09 +date: 2024-08-27 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 a7cce8af91e49..6b5767a496834 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-08-09 +date: 2024-08-27 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 35c000de8c6bb..6c0a063c27065 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-08-09 +date: 2024-08-27 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 5a6cd6201af6e..a1419417c6872 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_chrome_browser.devdocs.json index f8fadfa7b7a26..c1c3d5b8793a4 100644 --- a/api_docs/kbn_core_chrome_browser.devdocs.json +++ b/api_docs/kbn_core_chrome_browser.devdocs.json @@ -3700,7 +3700,7 @@ "label": "AppDeepLinkId", "description": [], "signature": [ - "\"fleet\" | \"graph\" | \"ml\" | \"monitoring\" | \"metrics\" | \"management\" | \"apm\" | \"synthetics\" | \"ux\" | \"logs\" | \"profiling\" | \"dashboards\" | \"slo\" | \"observabilityAIAssistant\" | \"home\" | \"canvas\" | \"integrations\" | \"discover\" | \"observability-overview\" | \"appSearch\" | \"dev_tools\" | \"maps\" | \"visualize\" | \"dev_tools:console\" | \"dev_tools:searchprofiler\" | \"dev_tools:painless_lab\" | \"dev_tools:grokdebugger\" | \"ml:notifications\" | \"ml:nodes\" | \"ml:overview\" | \"ml:memoryUsage\" | \"ml:settings\" | \"ml:dataVisualizer\" | \"ml:logPatternAnalysis\" | \"ml:logRateAnalysis\" | \"ml:singleMetricViewer\" | \"ml:anomalyDetection\" | \"ml:anomalyExplorer\" | \"ml:dataDrift\" | \"ml:dataFrameAnalytics\" | \"ml:resultExplorer\" | \"ml:analyticsMap\" | \"ml:aiOps\" | \"ml:changePointDetections\" | \"ml:modelManagement\" | \"ml:nodesOverview\" | \"ml:esqlDataVisualizer\" | \"ml:fileUpload\" | \"ml:indexDataVisualizer\" | \"ml:calendarSettings\" | \"ml:filterListsSettings\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:maintenanceWindows\" | \"management:cross_cluster_replication\" | \"management:dataViews\" | \"management:spaces\" | \"management:settings\" | \"management:users\" | \"management:migrate_data\" | \"management:search_sessions\" | \"management:data_quality\" | \"management:filesManagement\" | \"management:roles\" | \"management:reporting\" | \"management:aiAssistantManagementSelection\" | \"management:securityAiAssistantManagement\" | \"management:observabilityAiAssistantManagement\" | \"management:api_keys\" | \"management:license_management\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:role_mappings\" | \"management:rollup_jobs\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\" | \"management:upgrade_assistant\" | \"enterpriseSearch\" | \"enterpriseSearchContent\" | \"enterpriseSearchApplications\" | \"enterpriseSearchRelevance\" | \"enterpriseSearchAnalytics\" | \"workplaceSearch\" | \"serverlessElasticsearch\" | \"serverlessConnectors\" | \"searchPlayground\" | \"searchInferenceEndpoints\" | \"searchHomepage\" | \"enterpriseSearchContent:connectors\" | \"enterpriseSearchContent:searchIndices\" | \"enterpriseSearchContent:webCrawlers\" | \"enterpriseSearchApplications:searchApplications\" | \"enterpriseSearchApplications:playground\" | \"appSearch:engines\" | \"enterpriseSearchRelevance:inferenceEndpoints\" | \"observability-logs-explorer\" | \"observabilityOnboarding\" | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:alerts\" | \"observability-overview:rules\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\" | \"profiling:stacktraces\" | \"profiling:flamegraphs\" | \"profiling:functions\" | \"securitySolutionUI\" | \"securitySolutionUI:\" | \"securitySolutionUI:cases\" | \"securitySolutionUI:alerts\" | \"securitySolutionUI:rules\" | \"securitySolutionUI:policy\" | \"securitySolutionUI:overview\" | \"securitySolutionUI:dashboards\" | \"securitySolutionUI:cases_create\" | \"securitySolutionUI:cases_configure\" | \"securitySolutionUI:hosts\" | \"securitySolutionUI:users\" | \"securitySolutionUI:cloud_defend-policies\" | \"securitySolutionUI:cloud_security_posture-dashboard\" | \"securitySolutionUI:cloud_security_posture-findings\" | \"securitySolutionUI:cloud_security_posture-benchmarks\" | \"securitySolutionUI:kubernetes\" | \"securitySolutionUI:network\" | \"securitySolutionUI:data_quality\" | \"securitySolutionUI:explore\" | \"securitySolutionUI:assets\" | \"securitySolutionUI:cloud_defend\" | \"securitySolutionUI:administration\" | \"securitySolutionUI:attack_discovery\" | \"securitySolutionUI:blocklist\" | \"securitySolutionUI:cloud_security_posture-rules\" | \"securitySolutionUI:detections\" | \"securitySolutionUI:detection_response\" | \"securitySolutionUI:endpoints\" | \"securitySolutionUI:event_filters\" | \"securitySolutionUI:exceptions\" | \"securitySolutionUI:host_isolation_exceptions\" | \"securitySolutionUI:hosts-all\" | \"securitySolutionUI:hosts-anomalies\" | \"securitySolutionUI:hosts-risk\" | \"securitySolutionUI:hosts-events\" | \"securitySolutionUI:hosts-sessions\" | \"securitySolutionUI:hosts-uncommon_processes\" | \"securitySolutionUI:investigations\" | \"securitySolutionUI:get_started\" | \"securitySolutionUI:machine_learning-landing\" | \"securitySolutionUI:network-anomalies\" | \"securitySolutionUI:network-dns\" | \"securitySolutionUI:network-events\" | \"securitySolutionUI:network-flows\" | \"securitySolutionUI:network-http\" | \"securitySolutionUI:network-tls\" | \"securitySolutionUI:response_actions_history\" | \"securitySolutionUI:rules-add\" | \"securitySolutionUI:rules-create\" | \"securitySolutionUI:rules-landing\" | \"securitySolutionUI:threat_intelligence\" | \"securitySolutionUI:timelines\" | \"securitySolutionUI:timelines-templates\" | \"securitySolutionUI:trusted_apps\" | \"securitySolutionUI:users-all\" | \"securitySolutionUI:users-anomalies\" | \"securitySolutionUI:users-authentications\" | \"securitySolutionUI:users-events\" | \"securitySolutionUI:users-risk\" | \"securitySolutionUI:entity_analytics\" | \"securitySolutionUI:entity_analytics-management\" | \"securitySolutionUI:entity_analytics-asset-classification\" | \"securitySolutionUI:coverage-overview\" | \"securitySolutionUI:notes-management\" | \"fleet:settings\" | \"fleet:policies\" | \"fleet:data_streams\" | \"fleet:enrollment_tokens\" | \"fleet:uninstall_tokens\" | \"fleet:agents\"" + "\"fleet\" | \"graph\" | \"ml\" | \"monitoring\" | \"profiling\" | \"metrics\" | \"management\" | \"apm\" | \"synthetics\" | \"ux\" | \"logs\" | \"dashboards\" | \"slo\" | \"observabilityAIAssistant\" | \"home\" | \"canvas\" | \"integrations\" | \"discover\" | \"observability-overview\" | \"appSearch\" | \"dev_tools\" | \"maps\" | \"visualize\" | \"dev_tools:console\" | \"dev_tools:searchprofiler\" | \"dev_tools:painless_lab\" | \"dev_tools:grokdebugger\" | \"ml:notifications\" | \"ml:nodes\" | \"ml:overview\" | \"ml:memoryUsage\" | \"ml:settings\" | \"ml:dataVisualizer\" | \"ml:logPatternAnalysis\" | \"ml:logRateAnalysis\" | \"ml:singleMetricViewer\" | \"ml:anomalyDetection\" | \"ml:anomalyExplorer\" | \"ml:dataDrift\" | \"ml:dataFrameAnalytics\" | \"ml:resultExplorer\" | \"ml:analyticsMap\" | \"ml:aiOps\" | \"ml:changePointDetections\" | \"ml:modelManagement\" | \"ml:nodesOverview\" | \"ml:esqlDataVisualizer\" | \"ml:fileUpload\" | \"ml:indexDataVisualizer\" | \"ml:calendarSettings\" | \"ml:filterListsSettings\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:maintenanceWindows\" | \"management:cross_cluster_replication\" | \"management:dataViews\" | \"management:spaces\" | \"management:settings\" | \"management:users\" | \"management:migrate_data\" | \"management:search_sessions\" | \"management:data_quality\" | \"management:filesManagement\" | \"management:roles\" | \"management:reporting\" | \"management:aiAssistantManagementSelection\" | \"management:securityAiAssistantManagement\" | \"management:observabilityAiAssistantManagement\" | \"management:api_keys\" | \"management:license_management\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:role_mappings\" | \"management:rollup_jobs\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\" | \"management:upgrade_assistant\" | \"enterpriseSearch\" | \"enterpriseSearchContent\" | \"enterpriseSearchApplications\" | \"enterpriseSearchRelevance\" | \"enterpriseSearchAnalytics\" | \"workplaceSearch\" | \"serverlessElasticsearch\" | \"serverlessConnectors\" | \"searchPlayground\" | \"searchInferenceEndpoints\" | \"searchHomepage\" | \"enterpriseSearchContent:connectors\" | \"enterpriseSearchContent:searchIndices\" | \"enterpriseSearchContent:webCrawlers\" | \"enterpriseSearchApplications:searchApplications\" | \"enterpriseSearchApplications:playground\" | \"appSearch:engines\" | \"enterpriseSearchRelevance:inferenceEndpoints\" | \"observability-logs-explorer\" | \"observabilityOnboarding\" | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:alerts\" | \"observability-overview:rules\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\" | \"profiling:stacktraces\" | \"profiling:flamegraphs\" | \"profiling:functions\" | \"securitySolutionUI\" | \"securitySolutionUI:\" | \"securitySolutionUI:cases\" | \"securitySolutionUI:alerts\" | \"securitySolutionUI:rules\" | \"securitySolutionUI:policy\" | \"securitySolutionUI:overview\" | \"securitySolutionUI:dashboards\" | \"securitySolutionUI:cases_create\" | \"securitySolutionUI:cases_configure\" | \"securitySolutionUI:hosts\" | \"securitySolutionUI:users\" | \"securitySolutionUI:cloud_defend-policies\" | \"securitySolutionUI:cloud_security_posture-dashboard\" | \"securitySolutionUI:cloud_security_posture-findings\" | \"securitySolutionUI:cloud_security_posture-benchmarks\" | \"securitySolutionUI:kubernetes\" | \"securitySolutionUI:network\" | \"securitySolutionUI:data_quality\" | \"securitySolutionUI:explore\" | \"securitySolutionUI:assets\" | \"securitySolutionUI:cloud_defend\" | \"securitySolutionUI:administration\" | \"securitySolutionUI:attack_discovery\" | \"securitySolutionUI:blocklist\" | \"securitySolutionUI:cloud_security_posture-rules\" | \"securitySolutionUI:detections\" | \"securitySolutionUI:detection_response\" | \"securitySolutionUI:endpoints\" | \"securitySolutionUI:event_filters\" | \"securitySolutionUI:exceptions\" | \"securitySolutionUI:host_isolation_exceptions\" | \"securitySolutionUI:hosts-all\" | \"securitySolutionUI:hosts-anomalies\" | \"securitySolutionUI:hosts-risk\" | \"securitySolutionUI:hosts-events\" | \"securitySolutionUI:hosts-sessions\" | \"securitySolutionUI:hosts-uncommon_processes\" | \"securitySolutionUI:investigations\" | \"securitySolutionUI:get_started\" | \"securitySolutionUI:machine_learning-landing\" | \"securitySolutionUI:network-anomalies\" | \"securitySolutionUI:network-dns\" | \"securitySolutionUI:network-events\" | \"securitySolutionUI:network-flows\" | \"securitySolutionUI:network-http\" | \"securitySolutionUI:network-tls\" | \"securitySolutionUI:response_actions_history\" | \"securitySolutionUI:rules-add\" | \"securitySolutionUI:rules-create\" | \"securitySolutionUI:rules-landing\" | \"securitySolutionUI:threat_intelligence\" | \"securitySolutionUI:timelines\" | \"securitySolutionUI:timelines-templates\" | \"securitySolutionUI:trusted_apps\" | \"securitySolutionUI:users-all\" | \"securitySolutionUI:users-anomalies\" | \"securitySolutionUI:users-authentications\" | \"securitySolutionUI:users-events\" | \"securitySolutionUI:users-risk\" | \"securitySolutionUI:entity_analytics\" | \"securitySolutionUI:entity_analytics-management\" | \"securitySolutionUI:entity_analytics-asset-classification\" | \"securitySolutionUI:coverage-overview\" | \"securitySolutionUI:notes-management\" | \"fleet:settings\" | \"fleet:policies\" | \"fleet:data_streams\" | \"fleet:enrollment_tokens\" | \"fleet:uninstall_tokens\" | \"fleet:agents\"" ], "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", "deprecated": false, diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 0d1542869897b..54eac3381fa00 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-08-09 +date: 2024-08-27 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 9ed530dd87d31..caa80ce744939 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-08-09 +date: 2024-08-27 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 02fb5a6f0fd76..82991cfd78825 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-08-09 +date: 2024-08-27 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 eb937c07f7d1f..850127c0c6951 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-08-09 +date: 2024-08-27 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 67cbbaee132b0..4a7a8dd051701 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-08-09 +date: 2024-08-27 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 cde594d8473b3..b3271d594ffe6 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-08-09 +date: 2024-08-27 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 8e874bd2a7d2c..300f618e11429 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-08-09 +date: 2024-08-27 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 19242bdb3056f..343244e747a0b 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-08-09 +date: 2024-08-27 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 6a9e89d5f2ef4..4423046fa5028 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-08-09 +date: 2024-08-27 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 6685dbcf23743..4dd709e997aaf 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-08-09 +date: 2024-08-27 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 4a62a2199b5f3..af8c1e840fe65 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-08-09 +date: 2024-08-27 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 9a08814a9b235..f970fd5519df1 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-08-09 +date: 2024-08-27 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 70091ec03bcd9..5bc6fab00131a 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-08-09 +date: 2024-08-27 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 42b2c34a1f8b2..f34c100d033d2 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-08-09 +date: 2024-08-27 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 d84cb2989609e..8efa9cc15b783 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-08-09 +date: 2024-08-27 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 56442283192c1..bd58da2512681 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-08-09 +date: 2024-08-27 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 c0867ea7b8610..fd91a5d75ddcf 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-08-09 +date: 2024-08-27 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 e9cd41d0d5c40..b3952c730cbd7 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-08-09 +date: 2024-08-27 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 358275e28d45d..4dc289ee83060 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-08-09 +date: 2024-08-27 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 9dc87fad52004..a45de1f50f75c 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-08-09 +date: 2024-08-27 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 174e63c9b804d..25e1837f73ebe 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-08-09 +date: 2024-08-27 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 fb7388f5262bb..7dcb66bdfb339 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_elasticsearch_client_server_mocks.devdocs.json index def897d69232b..a567679020039 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.devdocs.json @@ -353,7 +353,7 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -411,6 +411,22 @@ "BulkRequest", ", options?: ", "TransportRequestOptions", + " | undefined]>; capabilities: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", " | undefined]>; cat: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -473,6 +489,16 @@ }, "<", "default", + ">; connector: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -987,7 +1013,17 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; putScript: ", + " | undefined]>; profiling: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -1003,7 +1039,7 @@ "PutScriptRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; queryRuleset: ", + " | undefined]>; queryRules: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -1205,6 +1241,16 @@ }, "<", "default", + ">; simulate: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; slm: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -1526,7 +1572,7 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -1584,6 +1630,22 @@ "BulkRequest", ", options?: ", "TransportRequestOptions", + " | undefined]>; capabilities: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", " | undefined]>; cat: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -1646,6 +1708,16 @@ }, "<", "default", + ">; connector: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -2160,7 +2232,17 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; putScript: ", + " | undefined]>; profiling: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -2176,7 +2258,7 @@ "PutScriptRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; queryRuleset: ", + " | undefined]>; queryRules: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -2378,6 +2460,16 @@ }, "<", "default", + ">; simulate: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; slm: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -2653,7 +2745,7 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -2711,6 +2803,22 @@ "BulkRequest", ", options?: ", "TransportRequestOptions", + " | undefined]>; capabilities: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", " | undefined]>; cat: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -2773,6 +2881,16 @@ }, "<", "default", + ">; connector: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -3287,7 +3405,17 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; putScript: ", + " | undefined]>; profiling: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -3303,7 +3431,7 @@ "PutScriptRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; queryRuleset: ", + " | undefined]>; queryRules: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -3505,6 +3633,16 @@ }, "<", "default", + ">; simulate: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; slm: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -3780,7 +3918,7 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -3838,6 +3976,22 @@ "BulkRequest", ", options?: ", "TransportRequestOptions", + " | undefined]>; capabilities: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", " | undefined]>; cat: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -3900,6 +4054,16 @@ }, "<", "default", + ">; connector: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -4414,7 +4578,17 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; putScript: ", + " | undefined]>; profiling: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -4430,7 +4604,7 @@ "PutScriptRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; queryRuleset: ", + " | undefined]>; queryRules: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -4632,6 +4806,16 @@ }, "<", "default", + ">; simulate: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; slm: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -4998,7 +5182,7 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + " | undefined]>; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -5056,6 +5240,22 @@ "BulkRequest", ", options?: ", "TransportRequestOptions", + " | undefined]>; capabilities: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", " | undefined]>; cat: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -5118,6 +5318,16 @@ }, "<", "default", + ">; connector: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -5632,7 +5842,17 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; putScript: ", + " | undefined]>; profiling: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -5648,7 +5868,7 @@ "PutScriptRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; queryRuleset: ", + " | undefined]>; queryRules: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "server", @@ -5850,6 +6070,16 @@ }, "<", "default", + ">; simulate: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "server", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-server.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", ">; slm: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index c02cbbf8bc750..f0873aeae9a46 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_elasticsearch_server.devdocs.json index 794765550dca2..be09c9b65cbd1 100644 --- a/api_docs/kbn_core_elasticsearch_server.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server.devdocs.json @@ -1233,7 +1233,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -1269,6 +1269,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -1327,6 +1353,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -1921,7 +1949,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1947,7 +1977,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -2193,6 +2223,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -2967,7 +2999,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -3003,6 +3035,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -3061,6 +3119,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -3655,7 +3715,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -3681,7 +3743,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -3927,6 +3989,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -4205,7 +4269,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -4241,6 +4305,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -4299,6 +4389,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -4893,7 +4985,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -4919,7 +5013,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -5165,6 +5259,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -5443,7 +5539,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -5479,6 +5575,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -5537,6 +5659,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -6131,7 +6255,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -6157,7 +6283,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -6403,6 +6529,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -6934,7 +7062,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -6970,6 +7098,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -7028,6 +7182,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -7622,7 +7778,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -7648,7 +7806,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -7894,6 +8052,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index 8056eb99e729b..5ffef6d967286 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json index ef42b4ea560c9..89c6626b9fd7d 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json @@ -190,7 +190,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -226,6 +226,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -284,6 +310,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -878,7 +906,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -904,7 +934,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1150,6 +1180,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -1935,7 +1967,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -1971,6 +2003,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -2029,6 +2087,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -2623,7 +2683,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -2649,7 +2711,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -2895,6 +2957,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index 38e91b749b11d..1210c31594e05 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-08-09 +date: 2024-08-27 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 55d01d5c2b356..47b6947eaa2c9 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-08-09 +date: 2024-08-27 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 b16ebc474e4d4..fc49467aa290c 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-08-09 +date: 2024-08-27 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 624aa6ff68159..1ea2637231f60 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-08-09 +date: 2024-08-27 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 ad785a27e9ceb..6615011e3671e 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-08-09 +date: 2024-08-27 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 3a4906e37b662..8e08648a5df1e 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-08-09 +date: 2024-08-27 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 d5e1f39451dc9..43f43eb6e7c92 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-08-09 +date: 2024-08-27 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 de2f5b89041ca..0756d85c34738 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-08-09 +date: 2024-08-27 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 087190766d81a..1af4fbadbb98b 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-08-09 +date: 2024-08-27 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 ec026df38c6c6..3537972f3b5b9 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-08-09 +date: 2024-08-27 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 d08c66510fff3..f6018a8997841 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-08-09 +date: 2024-08-27 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 7380da51b0c24..98c5b513b4ad7 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-08-09 +date: 2024-08-27 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 bf3c4c90ac97d..ebbe78fb88e75 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-08-09 +date: 2024-08-27 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 0cbdb9fb0b75c..12684496d21aa 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-08-09 +date: 2024-08-27 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 6cfd0aec342e7..b67b829b28626 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-08-09 +date: 2024-08-27 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 6d994379497b4..2856c722ac306 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-08-09 +date: 2024-08-27 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 f906eb3896b19..877056537d0e1 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-08-09 +date: 2024-08-27 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 56080c5e812bb..40305d4076732 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-08-09 +date: 2024-08-27 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 d0d08b34cc5a5..72f125b8ea29d 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-08-09 +date: 2024-08-27 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 b3c361e10c315..ed5ca78ddc8e8 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-08-09 +date: 2024-08-27 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 2e352e7395919..e5947d81fd6c6 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-08-09 +date: 2024-08-27 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 a0bbfc4eea42a..1f8db0d8a5648 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-08-09 +date: 2024-08-27 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 7dae0f3e92ae3..87de6afc3b871 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-08-09 +date: 2024-08-27 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 93485ff3b0444..0ff64e5fb2d77 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-08-09 +date: 2024-08-27 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 cc5185b0ceb81..8e5138f237f33 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -3698,6 +3698,10 @@ "plugin": "actions", "path": "x-pack/plugins/actions/server/routes/legacy/list_action_types.ts" }, + { + "plugin": "@kbn/content-management-favorites-server", + "path": "packages/content-management/favorites/favorites_server/src/favorites_routes.ts" + }, { "plugin": "share", "path": "src/plugins/share/server/url_service/http/short_urls/register_get_route.ts" @@ -3830,6 +3834,10 @@ "plugin": "ruleRegistry", "path": "x-pack/plugins/rule_registry/server/routes/get_aad_fields_by_rule_type.ts" }, + { + "plugin": "@kbn/content-management-content-insights-server", + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts" + }, { "plugin": "banners", "path": "x-pack/plugins/banners/server/routes/info.ts" @@ -4562,6 +4570,14 @@ "plugin": "rollup", "path": "x-pack/plugins/rollup/server/routes/api/jobs/register_get_route.ts" }, + { + "plugin": "searchIndices", + "path": "x-pack/plugins/search_indices/server/routes/status.ts" + }, + { + "plugin": "searchIndices", + "path": "x-pack/plugins/search_indices/server/routes/status.ts" + }, { "plugin": "searchInferenceEndpoints", "path": "x-pack/plugins/search_inference_endpoints/server/routes.ts" @@ -6360,6 +6376,14 @@ "plugin": "actions", "path": "x-pack/plugins/actions/server/routes/get_global_execution_kpi.ts" }, + { + "plugin": "@kbn/content-management-favorites-server", + "path": "packages/content-management/favorites/favorites_server/src/favorites_routes.ts" + }, + { + "plugin": "@kbn/content-management-favorites-server", + "path": "packages/content-management/favorites/favorites_server/src/favorites_routes.ts" + }, { "plugin": "contentManagement", "path": "src/plugins/content_management/server/rpc/routes/routes.ts" @@ -6536,6 +6560,10 @@ "plugin": "ruleRegistry", "path": "x-pack/plugins/rule_registry/server/routes/get_alert_summary.ts" }, + { + "plugin": "@kbn/content-management-content-insights-server", + "path": "packages/content-management/content_insights/content_insights_server/src/register.ts" + }, { "plugin": "savedObjectsTagging", "path": "x-pack/plugins/saved_objects_tagging/server/routes/tags/create_tag.ts" @@ -6664,10 +6692,6 @@ "plugin": "triggersActionsUi", "path": "x-pack/plugins/triggers_actions_ui/server/data/routes/indices.ts" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/server/routes/job_service.ts" - }, { "plugin": "globalSearch", "path": "x-pack/plugins/global_search/server/routes/find.ts" @@ -6680,6 +6704,10 @@ "plugin": "enterpriseSearch", "path": "x-pack/plugins/enterprise_search/server/routes/app_search/adaptive_relevance.ts" }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/routes/app_search/app_search_gated_form.ts" + }, { "plugin": "enterpriseSearch", "path": "x-pack/plugins/enterprise_search/server/routes/app_search/crawler.ts" @@ -7357,8 +7385,8 @@ "path": "src/plugins/console/server/routes/api/console/proxy/index.ts" }, { - "plugin": "contentManagement", - "path": "src/plugins/content_management/server/plugin.test.ts" + "plugin": "console", + "path": "src/plugins/console/server/routes/api/console/convert_request_to_language/index.ts" }, { "plugin": "contentManagement", @@ -8594,6 +8622,10 @@ "plugin": "observability", "path": "x-pack/plugins/observability_solution/observability/server/lib/annotations/register_annotation_apis.ts" }, + { + "plugin": "logsShared", + "path": "x-pack/plugins/observability_solution/logs_shared/server/routes/deprecations/migrate_log_view_settings.ts" + }, { "plugin": "enterpriseSearch", "path": "x-pack/plugins/enterprise_search/server/routes/enterprise_search/crawler/crawler_extraction_rules.ts" @@ -14370,6 +14402,10 @@ "plugin": "cloudSecurityPosture", "path": "x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/get_states/get_states.ts" }, + { + "plugin": "dataVisualizer", + "path": "x-pack/plugins/data_visualizer/server/routes.ts" + }, { "plugin": "ecsDataQualityDashboard", "path": "x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_mappings.ts" @@ -15940,6 +15976,10 @@ "plugin": "ml", "path": "x-pack/plugins/ml/server/routes/job_service.ts" }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/server/routes/job_service.ts" + }, { "plugin": "ml", "path": "x-pack/plugins/ml/server/routes/saved_objects.ts" @@ -16112,6 +16152,10 @@ "plugin": "fileUpload", "path": "x-pack/plugins/file_upload/server/routes.ts" }, + { + "plugin": "fileUpload", + "path": "x-pack/plugins/file_upload/server/routes.ts" + }, { "plugin": "integrationAssistant", "path": "x-pack/plugins/integration_assistant/server/routes/ecs_routes.ts" diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 5100b7f6afe7e..55da7f47659f9 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_http_server_internal.devdocs.json index 255b6d7785d10..836cd9c2eff11 100644 --- a/api_docs/kbn_core_http_server_internal.devdocs.json +++ b/api_docs/kbn_core_http_server_internal.devdocs.json @@ -1470,7 +1470,7 @@ "label": "HttpConfigType", "description": [], "signature": [ - "{ readonly uuid?: string | undefined; readonly basePath?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly name: string; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; readonly host: string; readonly http2: Readonly<{} & { allowUnsecure: boolean; }>; readonly protocol: \"http1\" | \"http2\"; readonly port: number; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly cdn: Readonly<{ url?: string | null | undefined; } & {}>; readonly oas: Readonly<{} & { enabled: boolean; }>; readonly securityResponseHeaders: Readonly<{ permissionsPolicyReportOnly?: string | null | undefined; } & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ", + "{ readonly uuid?: string | undefined; readonly basePath?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly name: string; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"required\" | \"optional\"; }>; readonly host: string; readonly http2: Readonly<{} & { allowUnsecure: boolean; }>; readonly protocol: \"http1\" | \"http2\"; readonly port: number; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly cdn: Readonly<{ url?: string | null | undefined; } & {}>; readonly oas: Readonly<{} & { enabled: boolean; }>; readonly securityResponseHeaders: Readonly<{ permissionsPolicyReportOnly?: string | null | undefined; } & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index e9f72b71cd4e9..c5bac179c2545 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_http_server_mocks.devdocs.json index 085616047e523..235e68eaeb05e 100644 --- a/api_docs/kbn_core_http_server_mocks.devdocs.json +++ b/api_docs/kbn_core_http_server_mocks.devdocs.json @@ -19,7 +19,7 @@ "label": "createConfigService", "description": [], "signature": [ - "({ server, externalUrl, csp, }?: Partial<{ server: Partial; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; http2: Readonly<{} & { allowUnsecure: boolean; }>; protocol: \"http1\" | \"http2\"; port: number; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | null | undefined; } & {}>; oas: Readonly<{} & { enabled: boolean; }>; securityResponseHeaders: Readonly<{ permissionsPolicyReportOnly?: string | null | undefined; } & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ", + "({ server, externalUrl, csp, }?: Partial<{ server: Partial; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"required\" | \"optional\"; }>; host: string; http2: Readonly<{} & { allowUnsecure: boolean; }>; protocol: \"http1\" | \"http2\"; port: number; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | null | undefined; } & {}>; oas: Readonly<{} & { enabled: boolean; }>; securityResponseHeaders: Readonly<{ permissionsPolicyReportOnly?: string | null | undefined; } & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -56,7 +56,7 @@ "label": "{\n server,\n externalUrl,\n csp,\n}", "description": [], "signature": [ - "Partial<{ server: Partial; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; http2: Readonly<{} & { allowUnsecure: boolean; }>; protocol: \"http1\" | \"http2\"; port: number; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | null | undefined; } & {}>; oas: Readonly<{} & { enabled: boolean; }>; securityResponseHeaders: Readonly<{ permissionsPolicyReportOnly?: string | null | undefined; } & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ", + "Partial<{ server: Partial; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"required\" | \"optional\"; }>; host: string; http2: Readonly<{} & { allowUnsecure: boolean; }>; protocol: \"http1\" | \"http2\"; port: number; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | null | undefined; } & {}>; oas: Readonly<{} & { enabled: boolean; }>; securityResponseHeaders: Readonly<{ permissionsPolicyReportOnly?: string | null | undefined; } & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index aec8780d5f567..334266aa40623 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-08-09 +date: 2024-08-27 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 3090ef4347a9c..219e972879623 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-08-09 +date: 2024-08-27 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 9f54f3c78437d..410e09d20f712 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-08-09 +date: 2024-08-27 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 f4011152fb41a..e842d03d48211 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-08-09 +date: 2024-08-27 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 bd59601807d38..1f1016f813882 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-08-09 +date: 2024-08-27 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 1c0f0e4a11757..b4f5d3f18ba56 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-08-09 +date: 2024-08-27 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 beec46f6d9db7..b331240f986c8 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-08-09 +date: 2024-08-27 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 34c750f82bac9..4abfafaac0fa8 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-08-09 +date: 2024-08-27 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 93b96e2a645ae..3d16fb52525e7 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-08-09 +date: 2024-08-27 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 12efcd4466520..2ac6ec6eec448 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-08-09 +date: 2024-08-27 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 a9d42cd47ce23..18faa4d7ee048 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-08-09 +date: 2024-08-27 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 68d6ac1ca7830..4c178de68c5eb 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-08-09 +date: 2024-08-27 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 143580bc6bb5e..d1274781df178 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-08-09 +date: 2024-08-27 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 d67322bf9169f..42ef59d4e8fe9 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-08-09 +date: 2024-08-27 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 bd258ff9948d1..77b4a8b95e19e 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-08-09 +date: 2024-08-27 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 d06dbb23e85f5..2cc392c023c13 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-08-09 +date: 2024-08-27 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 170e63282cd8d..8ab79b655f46a 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-08-09 +date: 2024-08-27 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 d15fd56fbe2ff..5a7b43608a23d 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-08-09 +date: 2024-08-27 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 117e13dca012c..256b5c47368e7 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-08-09 +date: 2024-08-27 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 a077383f13d9e..53b94f64191be 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-08-09 +date: 2024-08-27 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 a75af415bf139..aed7cfbfdc30e 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-08-09 +date: 2024-08-27 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 ac0676cd0b463..d6b34efb368a3 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-08-09 +date: 2024-08-27 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 9533acd8b0fe3..a14d996e88b08 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-08-09 +date: 2024-08-27 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 f2b414389fd7e..4424eec6d6d88 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-08-09 +date: 2024-08-27 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 f675db73a70f5..38e3dec36efdf 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-08-09 +date: 2024-08-27 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 676313414850f..7ba63fc4e4015 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-08-09 +date: 2024-08-27 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 f9437b5fd84ac..1d768b6e2654d 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-08-09 +date: 2024-08-27 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 bf7092c865e84..dd6fa5f7be57e 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-08-09 +date: 2024-08-27 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 ca453d071079f..d74667afb522d 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-08-09 +date: 2024-08-27 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 6e19b4f0d4b4f..64fd700def2a2 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-08-09 +date: 2024-08-27 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 8480719363f8d..4134abee4f1ef 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-08-09 +date: 2024-08-27 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 885f74784d328..ac0db52af91fa 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-08-09 +date: 2024-08-27 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 566d02babb61f..b890ce90ed3a0 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-08-09 +date: 2024-08-27 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 84d93e3eaed5a..8dd9ac49ed57c 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-08-09 +date: 2024-08-27 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 ca5a33cc85a46..3890cf2b4f21f 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-08-09 +date: 2024-08-27 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 14996c99c56c9..cecf2378392fb 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-08-09 +date: 2024-08-27 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 42e84d2b593cc..d26af5c3ff7fb 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-08-09 +date: 2024-08-27 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 a29446c980250..a4268ddcaf062 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-08-09 +date: 2024-08-27 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 f353b4316af76..f8c9730625e84 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-08-09 +date: 2024-08-27 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 2a491bc483b76..cd0e0b68a49dc 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-08-09 +date: 2024-08-27 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 8e0809bf9d4f8..26ebc2421a387 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-08-09 +date: 2024-08-27 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 fa30028828579..25a90fdc8d227 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-08-09 +date: 2024-08-27 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 c9ec6e24cfe05..4ff5c77ce916e 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-08-09 +date: 2024-08-27 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 91eaa30902f3e..ca449f755492b 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-08-09 +date: 2024-08-27 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 788888e4705a8..fc30ca847bfd4 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-08-09 +date: 2024-08-27 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 057e32e796580..ec1da87fb3620 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-08-09 +date: 2024-08-27 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.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 1b9f8f6ede201..e9b0377c3c715 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; 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 13eb6e4585eb3..ccc6a504fb80e 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-08-09 +date: 2024-08-27 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.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index b40d89c5805e9..d02f91af0efc3 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; 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 0f423bd78c27e..d6de68dec8b87 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-08-09 +date: 2024-08-27 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 d9ab12711b469..e925f5c58a09d 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-08-09 +date: 2024-08-27 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 9d7d773764ecf..bb5cdd9673a52 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-08-09 +date: 2024-08-27 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 7534fc5e42ff7..859044161ee5d 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-08-09 +date: 2024-08-27 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 b105b0ed59f7f..f11258261cb8d 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-08-09 +date: 2024-08-27 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 f483ffc5bc952..b18c1ef66575a 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-08-09 +date: 2024-08-27 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 4796a221ce2ca..a6287689c0aa9 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_saved_objects_migration_server_internal.devdocs.json index 258c7bf8d53f8..37ba415678d77 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.devdocs.json +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.devdocs.json @@ -2549,7 +2549,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -2585,6 +2585,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -2643,6 +2669,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -3237,7 +3265,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -3263,7 +3293,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -3509,6 +3539,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", 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 a2c400a196027..601ada984a49f 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-08-09 +date: 2024-08-27 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 7e9ac13a350e8..a84384a614463 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_saved_objects_server.devdocs.json index d0bc2ff65739e..e4e1ef0784aeb 100644 --- a/api_docs/kbn_core_saved_objects_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_server.devdocs.json @@ -13336,6 +13336,8 @@ ], "signature": [ "MappingProperty", + " & ", + "MappingPropertyBase", " & { dynamic?: false | \"strict\" | undefined; properties?: Record | undefined; }" diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 909861f3f3d53..623d97858eee7 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-08-09 +date: 2024-08-27 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 2de5ab39e507d..ecd587fa487bb 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-08-09 +date: 2024-08-27 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 03135f16191d5..6500015899b6c 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-08-09 +date: 2024-08-27 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 a8a41e7c727e7..7fb5702fe6d79 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-08-09 +date: 2024-08-27 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 cd5448cd6c19b..0c27a8397688a 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-08-09 +date: 2024-08-27 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 9624a4545c8c3..8bc3c7ed935e8 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-08-09 +date: 2024-08-27 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 0402917897e9d..0d58383363544 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-08-09 +date: 2024-08-27 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 f989c3653cf96..c70b857db551a 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-08-09 +date: 2024-08-27 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 1593dcc57cfef..45100b7f7459d 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-08-09 +date: 2024-08-27 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 15aff9bf7e908..4b74c9a28a5d9 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-08-09 +date: 2024-08-27 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 4720e05d9fb5b..fddd1940b8528 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-08-09 +date: 2024-08-27 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 7568bb887dfeb..1add8c563cd14 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-08-09 +date: 2024-08-27 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 da2502ed4f79d..977a119ee22dd 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-08-09 +date: 2024-08-27 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 8d14377960f06..f14a21281cd55 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-08-09 +date: 2024-08-27 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 0257be469caf1..7f933cef04d0f 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-08-09 +date: 2024-08-27 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 b499a1e42024d..0e1040e88f886 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-08-09 +date: 2024-08-27 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 2774961a3c812..3c230369dabc6 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-08-09 +date: 2024-08-27 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 f02dc28bfce2f..d548b5b3f6950 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-08-09 +date: 2024-08-27 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 1a958e1b88f6b..5864ba9c263ef 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-08-09 +date: 2024-08-27 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 cc3456ffeb069..310c13b531f52 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-08-09 +date: 2024-08-27 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 c6e0fdd0a122d..9ad53365f8f8f 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-08-09 +date: 2024-08-27 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 3a493a3bd91ba..480af28046991 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-08-09 +date: 2024-08-27 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 dc42e82de6fcf..89401bbaf4f88 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-08-09 +date: 2024-08-27 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 cdf5d6aa49334..c2dc85da0bc2a 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_ui_settings_browser.devdocs.json index c938dfe76cea1..4a500591da24b 100644 --- a/api_docs/kbn_core_ui_settings_browser.devdocs.json +++ b/api_docs/kbn_core_ui_settings_browser.devdocs.json @@ -597,7 +597,7 @@ "section": "def-common.GetUiSettingsContext", "text": "GetUiSettingsContext" }, - " | undefined) => Promise) | undefined; category?: string[] | undefined; metric?: { type: string; name: string; } | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; readonlyMode?: ", + " | undefined) => Promise) | undefined; category?: string[] | undefined; metric?: { type: string; name: string; } | undefined; readonly?: boolean | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonlyMode?: ", { "pluginId": "@kbn/core-ui-settings-common", "scope": "common", diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 2496f91642325..a4daf6a03b792 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-08-09 +date: 2024-08-27 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 00846f0ffbf0d..2fb4050563b21 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-08-09 +date: 2024-08-27 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 2f7d8e487e01b..8fe61a5fd852d 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_ui_settings_common.devdocs.json index 83a41545ecaf4..7e6ddbebbc0c5 100644 --- a/api_docs/kbn_core_ui_settings_common.devdocs.json +++ b/api_docs/kbn_core_ui_settings_common.devdocs.json @@ -657,7 +657,7 @@ "\nUI element type to represent the settings." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"image\" | \"select\" | \"json\" | \"array\" | \"markdown\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"array\" | \"image\" | \"select\" | \"json\" | \"markdown\"" ], "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", "deprecated": false, diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index f665161d18a7c..8ac665cc00b13 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-08-09 +date: 2024-08-27 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 fdca230ef07d7..b960f54080fa8 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-08-09 +date: 2024-08-27 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 351f975848df3..0909823486fd3 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-08-09 +date: 2024-08-27 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 f8917ecfe6ba7..d45fa251ca54a 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_core_usage_data_server.devdocs.json index 3071e12fefa09..4ba0e9204206d 100644 --- a/api_docs/kbn_core_usage_data_server.devdocs.json +++ b/api_docs/kbn_core_usage_data_server.devdocs.json @@ -47,7 +47,7 @@ "label": "http", "description": [], "signature": [ - "{ basePathConfigured: boolean; maxPayloadInBytes: number; rewriteBasePath: boolean; keepaliveTimeout: number; socketTimeout: number; compression: { enabled: boolean; referrerWhitelistConfigured: boolean; }; xsrf: { disableProtection: boolean; allowlistConfigured: boolean; }; requestId: { allowFromAnyIp: boolean; ipAllowlistConfigured: boolean; }; ssl: { certificateAuthoritiesConfigured: boolean; certificateConfigured: boolean; cipherSuites: string[]; keyConfigured: boolean; keystoreConfigured: boolean; truststoreConfigured: boolean; redirectHttpFromPortConfigured: boolean; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }; securityResponseHeaders: { strictTransportSecurity: string; xContentTypeOptions: string; referrerPolicy: string; permissionsPolicyConfigured: boolean; disableEmbedding: boolean; crossOriginOpenerPolicy: string; }; }" + "{ basePathConfigured: boolean; maxPayloadInBytes: number; rewriteBasePath: boolean; keepaliveTimeout: number; socketTimeout: number; compression: { enabled: boolean; referrerWhitelistConfigured: boolean; }; xsrf: { disableProtection: boolean; allowlistConfigured: boolean; }; requestId: { allowFromAnyIp: boolean; ipAllowlistConfigured: boolean; }; ssl: { certificateAuthoritiesConfigured: boolean; certificateConfigured: boolean; cipherSuites: string[]; keyConfigured: boolean; keystoreConfigured: boolean; truststoreConfigured: boolean; redirectHttpFromPortConfigured: boolean; supportedProtocols: string[]; clientAuthentication: \"none\" | \"required\" | \"optional\"; }; securityResponseHeaders: { strictTransportSecurity: string; xContentTypeOptions: string; referrerPolicy: string; permissionsPolicyConfigured: boolean; disableEmbedding: boolean; crossOriginOpenerPolicy: string; }; }" ], "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", "deprecated": false, diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 32480f65b4c63..abc774274415d 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-08-09 +date: 2024-08-27 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 4bcdc0a453e8e..bc200cc7e5a5a 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-08-09 +date: 2024-08-27 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 fca33731984ea..2eb282d66a231 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-08-09 +date: 2024-08-27 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 bd3d0381e7df4..f3b23040adfa2 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-08-09 +date: 2024-08-27 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 aedf107337bc2..3dbf7eadf3636 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-08-09 +date: 2024-08-27 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 53a7365df6238..19f9c984b80a0 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-08-09 +date: 2024-08-27 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 b7806d7b6ec4c..ff4289de5ba4c 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-08-09 +date: 2024-08-27 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 8094fe623e0cf..5e94d232e6e0a 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-08-09 +date: 2024-08-27 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 7300993993998..243cce4ec3906 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-08-09 +date: 2024-08-27 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 ba4ecb5a02dbc..2afc049d4af3a 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-08-09 +date: 2024-08-27 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 54d3eb0d54009..2a99a186eb1e2 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-08-09 +date: 2024-08-27 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 d93fd4fd7b53c..1e21317615285 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-08-09 +date: 2024-08-27 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 d1d732932864e..feca7186f57ab 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-08-09 +date: 2024-08-27 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 a9a7cae320917..2727940f5d96a 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-08-09 +date: 2024-08-27 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 b176dc921daeb..7effa5043c39e 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-08-09 +date: 2024-08-27 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 093955fc39a25..1d813af16a080 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-08-09 +date: 2024-08-27 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 af970848e6950..f5cf1e2c93a31 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-08-09 +date: 2024-08-27 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 06b4a832bf2b3..3a34ca782dbd0 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-08-09 +date: 2024-08-27 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 9270660671311..9b8a9c6d92707 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-08-09 +date: 2024-08-27 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 43426e12a901b..ea492b42c41c9 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-08-09 +date: 2024-08-27 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 34a836301ac67..eb5f327efbba4 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-08-09 +date: 2024-08-27 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 de5e5ad065480..b3dee69a77a3c 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-08-09 +date: 2024-08-27 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 bdd39e12deff4..b2cc0651c36fd 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-08-09 +date: 2024-08-27 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 cecde54dd1efd..8f87c878d9210 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-08-09 +date: 2024-08-27 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 f1117eaa22603..36a785292f177 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-08-09 +date: 2024-08-27 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 4218c00f11fd0..403e1f990da63 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-08-09 +date: 2024-08-27 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 ee4019966ca86..3daff33862051 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.devdocs.json b/api_docs/kbn_deeplinks_observability.devdocs.json index 8a0fac7dab160..7379ba1cbcfca 100644 --- a/api_docs/kbn_deeplinks_observability.devdocs.json +++ b/api_docs/kbn_deeplinks_observability.devdocs.json @@ -759,7 +759,7 @@ "label": "AppId", "description": [], "signature": [ - "\"metrics\" | \"apm\" | \"synthetics\" | \"ux\" | \"logs\" | \"profiling\" | \"slo\" | \"observabilityAIAssistant\" | \"observability-overview\" | \"observability-logs-explorer\" | \"observabilityOnboarding\"" + "\"profiling\" | \"metrics\" | \"apm\" | \"synthetics\" | \"ux\" | \"logs\" | \"slo\" | \"observabilityAIAssistant\" | \"observability-overview\" | \"observability-logs-explorer\" | \"observabilityOnboarding\"" ], "path": "packages/deeplinks/observability/deep_links.ts", "deprecated": false, diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index 5653d7c4d8895..8b1f3f5648581 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-08-09 +date: 2024-08-27 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 0fa2bef3adca7..be9ae071f666a 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-08-09 +date: 2024-08-27 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 c8a8d2f21feee..07313929d2152 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-08-09 +date: 2024-08-27 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 b8f82f64f24c4..98f500d49629e 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-08-09 +date: 2024-08-27 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 fff4d2a8a794f..0046e85e69576 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-08-09 +date: 2024-08-27 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 6158a308c9724..e163e5e835c3c 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-08-09 +date: 2024-08-27 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 05a338844517e..db8e105b37cf5 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-08-09 +date: 2024-08-27 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 813469ddf6a55..e129fa1a192da 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-08-09 +date: 2024-08-27 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 7c5deb366ed80..c832a66dda064 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_dev_cli_runner.devdocs.json index 2869fb3262724..0849bb298f7e4 100644 --- a/api_docs/kbn_dev_cli_runner.devdocs.json +++ b/api_docs/kbn_dev_cli_runner.devdocs.json @@ -1541,7 +1541,7 @@ "label": "log", "description": [], "signature": [ - "{ defaultLevel?: \"error\" | \"info\" | \"warning\" | \"success\" | \"debug\" | \"silent\" | \"verbose\" | undefined; } | undefined" + "{ defaultLevel?: \"error\" | \"info\" | \"warning\" | \"success\" | \"debug\" | \"silent\" | \"verbose\" | undefined; context?: string | undefined; } | undefined" ], "path": "packages/kbn-dev-cli-runner/src/run.ts", "deprecated": false, @@ -1600,7 +1600,7 @@ "label": "log", "description": [], "signature": [ - "{ defaultLevel?: \"error\" | \"info\" | \"warning\" | \"success\" | \"debug\" | \"silent\" | \"verbose\" | undefined; } | undefined" + "{ defaultLevel?: \"error\" | \"info\" | \"warning\" | \"success\" | \"debug\" | \"silent\" | \"verbose\" | undefined; context?: string | undefined; } | undefined" ], "path": "packages/kbn-dev-cli-runner/src/run_with_commands.ts", "deprecated": false, diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index b44c90bdc7519..9d17daf67d863 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-08-09 +date: 2024-08-27 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 81427e7c085ae..064fdc1dba74d 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-08-09 +date: 2024-08-27 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 07b97ab693338..5a25941f17f75 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.devdocs.json b/api_docs/kbn_discover_utils.devdocs.json index de9e46c1279bd..6fdce1d53b5e2 100644 --- a/api_docs/kbn_discover_utils.devdocs.json +++ b/api_docs/kbn_discover_utils.devdocs.json @@ -279,6 +279,56 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.calcFieldCounts", + "type": "Function", + "tags": [], + "label": "calcFieldCounts", + "description": [ + "\nThis function is calculating stats of the available fields, for usage in sidebar and sharing\nNote that this values aren't displayed, but used for internal calculations" + ], + "signature": [ + "(rows: ", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.DataTableRecord", + "text": "DataTableRecord" + }, + "[] | undefined) => Record" + ], + "path": "packages/kbn-discover-utils/src/utils/calc_field_counts.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.calcFieldCounts.$1", + "type": "Array", + "tags": [], + "label": "rows", + "description": [], + "signature": [ + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.DataTableRecord", + "text": "DataTableRecord" + }, + "[] | undefined" + ], + "path": "packages/kbn-discover-utils/src/utils/calc_field_counts.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/discover-utils", "id": "def-common.createLogsContextService", @@ -2516,6 +2566,21 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.TRUNCATE_MAX_HEIGHT_DEFAULT_VALUE", + "type": "number", + "tags": [], + "label": "TRUNCATE_MAX_HEIGHT_DEFAULT_VALUE", + "description": [], + "signature": [ + "115" + ], + "path": "packages/kbn-discover-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index 7b5e2b7481274..e9e7da44ba4f7 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.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 | |-------------------|-----------|------------------------|-----------------| -| 130 | 0 | 104 | 1 | +| 133 | 0 | 106 | 1 | ## Common diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index 98086a1171dda..5b28689a78f06 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -560,7 +560,7 @@ "label": "query", "description": [], "signature": [ - "{ readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuery: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; readonly queryESQL: string; }" + "{ readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuery: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; readonly queryESQL: string; readonly queryESQLExamples: string; }" ], "path": "packages/kbn-doc-links/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 115ea4a3be083..727523f24632e 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-08-09 +date: 2024-08-27 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 0d0dca3d62f85..af9b82a99ccca 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-08-09 +date: 2024-08-27 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 3d525619ff8a7..c37c010bc0f0b 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-08-09 +date: 2024-08-27 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.mdx b/api_docs/kbn_ebt_tools.mdx index 709e84ec7865d..78bb449ad9c28 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.devdocs.json b/api_docs/kbn_ecs_data_quality_dashboard.devdocs.json index 48c4823f73460..031d3c58d56f4 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.devdocs.json +++ b/api_docs/kbn_ecs_data_quality_dashboard.devdocs.json @@ -13,7 +13,7 @@ "signature": [ "(indexName: string) => string" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/translations.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -27,7 +27,7 @@ "signature": [ "string" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/translations.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -48,7 +48,7 @@ "signature": [ "React.NamedExoticComponent" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/index.tsx", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/index.tsx", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -82,7 +82,7 @@ "signature": [ "(phase: string) => string" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/helpers.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/utils/get_ilm_phase_description.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -96,7 +96,7 @@ "signature": [ "string" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/helpers.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/utils/get_ilm_phase_description.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -109,6 +109,18 @@ "interfaces": [], "enums": [], "misc": [ + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.DATA_QUALITY_DASHBOARD_CONVERSATION_ID", + "type": "string", + "tags": [], + "label": "DATA_QUALITY_DASHBOARD_CONVERSATION_ID", + "description": [], + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ecs-data-quality-dashboard", "id": "def-public.DATA_QUALITY_PROMPT_CONTEXT_PILL_TOOLTIP", @@ -116,7 +128,7 @@ "tags": [], "label": "DATA_QUALITY_PROMPT_CONTEXT_PILL_TOOLTIP", "description": [], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/translations.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -130,7 +142,7 @@ "description": [ "The subtitle displayed on the Data Quality dashboard" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/translations.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -142,7 +154,7 @@ "tags": [], "label": "DATA_QUALITY_SUGGESTED_USER_PROMPT", "description": [], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/translations.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -159,7 +171,7 @@ "signature": [ "\"https://www.elastic.co/guide/en/ecs/current/ecs-reference.html\"" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/index_properties/markdown/helpers.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/data_quality_details/indices_details/pattern/index_check_flyout/index_properties/markdown/helpers.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -173,7 +185,7 @@ "description": [ "The label displayed for the `ILM phase` combo box on the Data Quality dashboard" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/translations.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -187,7 +199,7 @@ "description": [ "The tooltip for the `ILM phase` combo box on the Data Quality Dashboard" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/translations.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -201,7 +213,7 @@ "description": [ "The placeholder for the `ILM phase` combo box on the Data Quality Dashboard" ], - "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/translations.ts", + "path": "x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality_panel/translations.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index f92317cf0f791..116ac314da649 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-threat-hunting-explore](https://github.com/orgs/elast | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 13 | 0 | 5 | 0 | +| 14 | 0 | 6 | 0 | ## Client diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx index d8c6b738cf088..ecb8be31b9bb9 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-08-09 +date: 2024-08-27 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 b4d11b8b1d160..7b70f3b376749 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_elastic_assistant_common.devdocs.json index 703a1f2b44cd4..22e41b3b3c6c7 100644 --- a/api_docs/kbn_elastic_assistant_common.devdocs.json +++ b/api_docs/kbn_elastic_assistant_common.devdocs.json @@ -1604,36 +1604,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.Dataset", - "type": "Type", - "tags": [], - "label": "Dataset", - "description": [], - "signature": [ - "{ input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }[]" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.DatasetItem", - "type": "Type", - "tags": [], - "label": "DatasetItem", - "description": [], - "signature": [ - "{ input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "@kbn/elastic-assistant-common", "id": "def-common.DeleteConversationRequestParams", @@ -1904,6 +1874,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/elastic-assistant-common", + "id": "def-common.ELASTIC_AI_ASSISTANT_EVALUATE_URL", + "type": "string", + "tags": [], + "label": "ELASTIC_AI_ASSISTANT_EVALUATE_URL", + "description": [], + "signature": [ + "\"/internal/elastic_assistant/evaluate\"" + ], + "path": "x-pack/packages/kbn-elastic-assistant-common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/elastic-assistant-common", "id": "def-common.ELASTIC_AI_ASSISTANT_INTERNAL_API_VERSION", @@ -2424,7 +2409,7 @@ "label": "GetEvaluateResponse", "description": [], "signature": [ - "{ agentExecutors: string[]; }" + "{ datasets: string[]; graphs: string[]; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/get_evaluate_route.gen.ts", "deprecated": false, @@ -2756,21 +2741,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.OutputIndex", - "type": "Type", - "tags": [], - "label": "OutputIndex", - "description": [], - "signature": [ - "string" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "@kbn/elastic-assistant-common", "id": "def-common.PerformBulkActionRequestBody", @@ -2869,7 +2839,7 @@ "label": "PostEvaluateBody", "description": [], "signature": [ - "{ dataset?: { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }[] | undefined; evalPrompt?: string | undefined; }" + "{ size: number; alertsIndexPattern: string; replacements: {} & { [k: string]: string; }; graphs: string[]; datasetName: string; connectorIds: string[]; langSmithApiKey?: string | undefined; runName?: string | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", "deprecated": false, @@ -2884,7 +2854,7 @@ "label": "PostEvaluateRequestBody", "description": [], "signature": [ - "{ dataset?: { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }[] | undefined; evalPrompt?: string | undefined; }" + "{ size: number; alertsIndexPattern: string; replacements: {} & { [k: string]: string; }; graphs: string[]; datasetName: string; connectorIds: string[]; langSmithApiKey?: string | undefined; runName?: string | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", "deprecated": false, @@ -2899,37 +2869,7 @@ "label": "PostEvaluateRequestBodyInput", "description": [], "signature": [ - "{ dataset?: { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }[] | undefined; evalPrompt?: string | undefined; }" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.PostEvaluateRequestQuery", - "type": "Type", - "tags": [], - "label": "PostEvaluateRequestQuery", - "description": [], - "signature": [ - "{ agents: string; models: string; outputIndex: string; projectName?: string | undefined; datasetName?: string | undefined; evaluationType?: string | undefined; evalModel?: string | undefined; runName?: string | undefined; }" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.PostEvaluateRequestQueryInput", - "type": "Type", - "tags": [], - "label": "PostEvaluateRequestQueryInput", - "description": [], - "signature": [ - "{ agents: string; models: string; outputIndex: string; projectName?: string | undefined; datasetName?: string | undefined; evaluationType?: string | undefined; evalModel?: string | undefined; runName?: string | undefined; }" + "{ graphs: string[]; datasetName: string; connectorIds: string[]; size?: number | undefined; alertsIndexPattern?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithApiKey?: string | undefined; runName?: string | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", "deprecated": false, @@ -4165,36 +4105,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.Dataset", - "type": "Object", - "tags": [], - "label": "Dataset", - "description": [], - "signature": [ - "Zod.ZodDefault; input: Zod.ZodString; prediction: Zod.ZodOptional; reference: Zod.ZodString; tags: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }, { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }>, \"many\">>" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.DatasetItem", - "type": "Object", - "tags": [], - "label": "DatasetItem", - "description": [], - "signature": [ - "Zod.ZodObject<{ id: Zod.ZodOptional; input: Zod.ZodString; prediction: Zod.ZodOptional; reference: Zod.ZodString; tags: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }, { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }>" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "@kbn/elastic-assistant-common", "id": "def-common.defaultAssistantFeatures", @@ -4580,7 +4490,7 @@ "label": "GetEvaluateResponse", "description": [], "signature": [ - "Zod.ZodObject<{ agentExecutors: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { agentExecutors: string[]; }, { agentExecutors: string[]; }>" + "Zod.ZodObject<{ datasets: Zod.ZodArray; graphs: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { datasets: string[]; graphs: string[]; }, { datasets: string[]; graphs: string[]; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/get_evaluate_route.gen.ts", "deprecated": false, @@ -4887,21 +4797,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.OutputIndex", - "type": "Object", - "tags": [], - "label": "OutputIndex", - "description": [], - "signature": [ - "Zod.ZodString" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "@kbn/elastic-assistant-common", "id": "def-common.PerformBulkActionRequestBody", @@ -4970,7 +4865,7 @@ "label": "PostEvaluateBody", "description": [], "signature": [ - "Zod.ZodObject<{ dataset: Zod.ZodOptional; input: Zod.ZodString; prediction: Zod.ZodOptional; reference: Zod.ZodString; tags: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }, { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }>, \"many\">>>; evalPrompt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { dataset?: { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }[] | undefined; evalPrompt?: string | undefined; }, { dataset?: { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }[] | undefined; evalPrompt?: string | undefined; }>" + "Zod.ZodObject<{ graphs: Zod.ZodArray; datasetName: Zod.ZodString; connectorIds: Zod.ZodArray; runName: Zod.ZodOptional; alertsIndexPattern: Zod.ZodDefault>; langSmithApiKey: Zod.ZodOptional; replacements: Zod.ZodDefault, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>>; size: Zod.ZodDefault>; }, \"strip\", Zod.ZodTypeAny, { size: number; alertsIndexPattern: string; replacements: {} & { [k: string]: string; }; graphs: string[]; datasetName: string; connectorIds: string[]; langSmithApiKey?: string | undefined; runName?: string | undefined; }, { graphs: string[]; datasetName: string; connectorIds: string[]; size?: number | undefined; alertsIndexPattern?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithApiKey?: string | undefined; runName?: string | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", "deprecated": false, @@ -4985,22 +4880,7 @@ "label": "PostEvaluateRequestBody", "description": [], "signature": [ - "Zod.ZodObject<{ dataset: Zod.ZodOptional; input: Zod.ZodString; prediction: Zod.ZodOptional; reference: Zod.ZodString; tags: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }, { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }>, \"many\">>>; evalPrompt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { dataset?: { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }[] | undefined; evalPrompt?: string | undefined; }, { dataset?: { input: string; reference: string; id?: string | undefined; tags?: string[] | undefined; prediction?: string | undefined; }[] | undefined; evalPrompt?: string | undefined; }>" - ], - "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/elastic-assistant-common", - "id": "def-common.PostEvaluateRequestQuery", - "type": "Object", - "tags": [], - "label": "PostEvaluateRequestQuery", - "description": [], - "signature": [ - "Zod.ZodObject<{ agents: Zod.ZodString; datasetName: Zod.ZodOptional; evaluationType: Zod.ZodOptional; evalModel: Zod.ZodOptional; models: Zod.ZodString; outputIndex: Zod.ZodString; projectName: Zod.ZodOptional; runName: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { agents: string; models: string; outputIndex: string; projectName?: string | undefined; datasetName?: string | undefined; evaluationType?: string | undefined; evalModel?: string | undefined; runName?: string | undefined; }, { agents: string; models: string; outputIndex: string; projectName?: string | undefined; datasetName?: string | undefined; evaluationType?: string | undefined; evalModel?: string | undefined; runName?: string | undefined; }>" + "Zod.ZodObject<{ graphs: Zod.ZodArray; datasetName: Zod.ZodString; connectorIds: Zod.ZodArray; runName: Zod.ZodOptional; alertsIndexPattern: Zod.ZodDefault>; langSmithApiKey: Zod.ZodOptional; replacements: Zod.ZodDefault, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>>; size: Zod.ZodDefault>; }, \"strip\", Zod.ZodTypeAny, { size: number; alertsIndexPattern: string; replacements: {} & { [k: string]: string; }; graphs: string[]; datasetName: string; connectorIds: string[]; langSmithApiKey?: string | undefined; runName?: string | undefined; }, { graphs: string[]; datasetName: string; connectorIds: string[]; size?: number | undefined; alertsIndexPattern?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithApiKey?: string | undefined; runName?: string | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/evaluation/post_evaluate_route.gen.ts", "deprecated": false, diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx index 7c1e63fb179d5..7af819c876f97 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common'] --- import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.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 | |-------------------|-----------|------------------------|-----------------| -| 354 | 0 | 328 | 0 | +| 346 | 0 | 320 | 0 | ## Common diff --git a/api_docs/kbn_entities_schema.devdocs.json b/api_docs/kbn_entities_schema.devdocs.json index 5a095101476e4..f27af1ce315d9 100644 --- a/api_docs/kbn_entities_schema.devdocs.json +++ b/api_docs/kbn_entities_schema.devdocs.json @@ -51,9 +51,111 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.entitiesAliasPattern", + "type": "Function", + "tags": [], + "label": "entitiesAliasPattern", + "description": [], + "signature": [ + "({\n type,\n dataset,\n}: AliasPatternOptions) => `entities-${string}-${TDataset}`" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/patterns.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.entitiesAliasPattern.$1", + "type": "Object", + "tags": [], + "label": "{\n type,\n dataset,\n}", + "description": [], + "signature": [ + "AliasPatternOptions" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/patterns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.entitiesIndexPattern", + "type": "Function", + "tags": [], + "label": "entitiesIndexPattern", + "description": [], + "signature": [ + "({\n schemaVersion,\n dataset,\n definitionId,\n}: IndexPatternOptions) => `.entities.v${number}.${TDataset}.${string}`" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/patterns.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.entitiesIndexPattern.$1", + "type": "Object", + "tags": [], + "label": "{\n schemaVersion,\n dataset,\n definitionId,\n}", + "description": [], + "signature": [ + "IndexPatternOptions" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/patterns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.MetadataRecord", + "type": "Interface", + "tags": [], + "label": "MetadataRecord", + "description": [], + "path": "x-pack/packages/kbn-entities-schema/src/schema/entity.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.MetadataRecord.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[key: string]: string | string[] | MetadataRecord", + "description": [], + "signature": [ + "[key: string]: string | string[] | ", + { + "pluginId": "@kbn/entities-schema", + "scope": "common", + "docId": "kibKbnEntitiesSchemaPluginApi", + "section": "def-common.MetadataRecord", + "text": "MetadataRecord" + } + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/entity.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], - "interfaces": [], "enums": [ { "parentPluginId": "@kbn/entities-schema", @@ -69,6 +171,96 @@ } ], "misc": [ + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.CreateEntityDefinitionQuery", + "type": "Type", + "tags": [], + "label": "CreateEntityDefinitionQuery", + "description": [], + "signature": [ + "{ installOnly: boolean; }" + ], + "path": "x-pack/packages/kbn-entities-schema/src/rest_spec/create.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.DeleteEntityDefinitionQuery", + "type": "Type", + "tags": [], + "label": "DeleteEntityDefinitionQuery", + "description": [], + "signature": [ + "{ deleteData?: boolean | undefined; }" + ], + "path": "x-pack/packages/kbn-entities-schema/src/rest_spec/delete.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.ENTITY_BASE_PREFIX", + "type": "string", + "tags": [], + "label": "ENTITY_BASE_PREFIX", + "description": [], + "signature": [ + "\"entities\"" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/patterns.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.ENTITY_HISTORY", + "type": "string", + "tags": [], + "label": "ENTITY_HISTORY", + "description": [], + "signature": [ + "\"history\"" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/patterns.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.ENTITY_LATEST", + "type": "string", + "tags": [], + "label": "ENTITY_LATEST", + "description": [], + "signature": [ + "\"latest\"" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/patterns.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.ENTITY_SCHEMA_VERSION_V1", + "type": "string", + "tags": [], + "label": "ENTITY_SCHEMA_VERSION_V1", + "description": [], + "signature": [ + "\"v1\"" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/patterns.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/entities-schema", "id": "def-common.EntityDefinition", @@ -85,7 +277,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; latest?: { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; } | undefined; staticFields?: Record | undefined; }" + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; latest?: { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; } | undefined; staticFields?: Record | undefined; installStatus?: \"failed\" | \"installed\" | \"installing\" | \"upgrading\" | undefined; installStartedAt?: string | undefined; }" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/entity_definition.ts", "deprecated": false, @@ -217,6 +409,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.createEntityDefinitionQuerySchema", + "type": "Object", + "tags": [], + "label": "createEntityDefinitionQuerySchema", + "description": [], + "signature": [ + "Zod.ZodObject<{ installOnly: Zod.ZodDefault>; }, \"strip\", Zod.ZodTypeAny, { installOnly: boolean; }, { installOnly?: boolean | undefined; }>" + ], + "path": "x-pack/packages/kbn-entities-schema/src/rest_spec/create.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/entities-schema", "id": "def-common.deleteEntityDefinitionParamsSchema", @@ -277,6 +484,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.entityBaseSchema", + "type": "Object", + "tags": [], + "label": "entityBaseSchema", + "description": [], + "signature": [ + "Zod.ZodObject<{ id: Zod.ZodString; type: Zod.ZodString; identityFields: Zod.ZodArray; displayName: Zod.ZodString; metrics: Zod.ZodRecord; definitionVersion: Zod.ZodString; schemaVersion: Zod.ZodString; definitionId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; }, { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; }>" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/entity.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/entities-schema", "id": "def-common.entityDefinitionSchema", @@ -325,7 +547,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }>, \"many\">>; staticFields: Zod.ZodOptional>; managed: Zod.ZodDefault>; history: Zod.ZodObject<{ timestampField: Zod.ZodString; interval: Zod.ZodEffects; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; }, { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }>, \"many\">>; staticFields: Zod.ZodOptional>; managed: Zod.ZodDefault>; history: Zod.ZodObject<{ timestampField: Zod.ZodString; interval: Zod.ZodEffects; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; }, { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; }>>; installStatus: Zod.ZodOptional, Zod.ZodLiteral<\"upgrading\">, Zod.ZodLiteral<\"installed\">, Zod.ZodLiteral<\"failed\">]>>; installStartedAt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -333,7 +555,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; latest?: { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; } | undefined; staticFields?: Record | undefined; }, { id: string; type: string; version: string; name: string; history: { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }; indexPatterns: string[]; identityFields: (string | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; latest?: { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; } | undefined; staticFields?: Record | undefined; installStatus?: \"failed\" | \"installed\" | \"installing\" | \"upgrading\" | undefined; installStartedAt?: string | undefined; }, { id: string; type: string; version: string; name: string; history: { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }; indexPatterns: string[]; identityFields: (string | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -341,7 +563,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; managed?: boolean | undefined; metadata?: (string | { source: string; limit?: number | undefined; destination?: string | undefined; })[] | undefined; latest?: { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; } | undefined; staticFields?: Record | undefined; }>" + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; managed?: boolean | undefined; metadata?: (string | { source: string; limit?: number | undefined; destination?: string | undefined; })[] | undefined; latest?: { settings?: { frequency?: string | undefined; syncDelay?: string | undefined; syncField?: string | undefined; } | undefined; } | undefined; staticFields?: Record | undefined; installStatus?: \"failed\" | \"installed\" | \"installing\" | \"upgrading\" | undefined; installStartedAt?: string | undefined; }>" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/entity_definition.ts", "deprecated": false, @@ -356,7 +578,22 @@ "label": "entityHistorySchema", "description": [], "signature": [ - "Zod.ZodIntersection; displayName: Zod.ZodString; metrics: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { id: string; metrics: Record; displayName: string; identityFields: string[]; }, { id: string; metrics: Record; displayName: string; identityFields: string[]; }>; }, { \"@timestamp\": Zod.ZodString; }>, \"strip\", Zod.ZodTypeAny, { \"@timestamp\": string; entity: { id: string; metrics: Record; displayName: string; identityFields: string[]; }; }, { \"@timestamp\": string; entity: { id: string; metrics: Record; displayName: string; identityFields: string[]; }; }>, Zod.ZodRecord>>" + "Zod.ZodIntersection; displayName: Zod.ZodString; metrics: Zod.ZodRecord; definitionVersion: Zod.ZodString; schemaVersion: Zod.ZodString; definitionId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; }, { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; }>; }, \"strip\", Zod.ZodTypeAny, { '@timestamp': string; entity: { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; }; }, { '@timestamp': string; entity: { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; }; }>, Zod.ZodType>" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/entity.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.entityLatestSchema", + "type": "Object", + "tags": [], + "label": "entityLatestSchema", + "description": [], + "signature": [ + "Zod.ZodIntersection; displayName: Zod.ZodString; metrics: Zod.ZodRecord; definitionVersion: Zod.ZodString; schemaVersion: Zod.ZodString; definitionId: Zod.ZodString; }, { lastSeenTimestamp: Zod.ZodString; firstSeenTimestamp: Zod.ZodString; }>, \"strip\", Zod.ZodTypeAny, { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; lastSeenTimestamp: string; firstSeenTimestamp: string; }, { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; lastSeenTimestamp: string; firstSeenTimestamp: string; }>; }, \"strip\", Zod.ZodTypeAny, { entity: { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; lastSeenTimestamp: string; firstSeenTimestamp: string; }; }, { entity: { id: string; type: string; metrics: Record; displayName: string; identityFields: string[]; definitionVersion: string; schemaVersion: string; definitionId: string; lastSeenTimestamp: string; firstSeenTimestamp: string; }; }>, Zod.ZodType>" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/entity.ts", "deprecated": false, @@ -365,13 +602,13 @@ }, { "parentPluginId": "@kbn/entities-schema", - "id": "def-common.entitySummarySchema", + "id": "def-common.entityMetadataSchema", "type": "Object", "tags": [], - "label": "entitySummarySchema", + "label": "entityMetadataSchema", "description": [], "signature": [ - "Zod.ZodIntersection; displayName: Zod.ZodString; metrics: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { id: string; metrics: Record; displayName: string; identityFields: string[]; }, { id: string; metrics: Record; displayName: string; identityFields: string[]; }>; }, { lastSeenTimestamp: Zod.ZodString; firstSeenTimestamp: Zod.ZodString; }>, \"strip\", Zod.ZodTypeAny, { entity: { id: string; metrics: Record; displayName: string; identityFields: string[]; }; lastSeenTimestamp: string; firstSeenTimestamp: string; }, { entity: { id: string; metrics: Record; displayName: string; identityFields: string[]; }; lastSeenTimestamp: string; firstSeenTimestamp: string; }>, Zod.ZodRecord>>" + "Zod.ZodType" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/entity.ts", "deprecated": false, diff --git a/api_docs/kbn_entities_schema.mdx b/api_docs/kbn_entities_schema.mdx index c956702fbde14..92dc7af7432dc 100644 --- a/api_docs/kbn_entities_schema.mdx +++ b/api_docs/kbn_entities_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-entities-schema title: "@kbn/entities-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/entities-schema plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/entities-schema'] --- import kbnEntitiesSchemaObj from './kbn_entities_schema.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entiti | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 26 | 0 | 26 | 0 | +| 41 | 0 | 41 | 0 | ## Common @@ -31,6 +31,9 @@ Contact [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entiti ### Functions +### Interfaces + + ### Enums diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index f82ac454c0687..f59d42a818657 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-08-09 +date: 2024-08-27 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 bea5acd36cb5b..a85cb56faac7e 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-08-09 +date: 2024-08-27 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 dbddfce2bc2c8..66b96f0831e53 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.devdocs.json b/api_docs/kbn_es_query.devdocs.json index d4e035d56caa0..1acb94440bf54 100644 --- a/api_docs/kbn_es_query.devdocs.json +++ b/api_docs/kbn_es_query.devdocs.json @@ -6539,7 +6539,7 @@ " & { meta: ", "PhraseFilterMeta", "; query: { script: { script: ", - "InlineScript", + "Script", "; }; }; }" ], "path": "packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts", @@ -6571,7 +6571,7 @@ "text": "RangeFilterMeta" }, "; query: { script: { script: ", - "InlineScript", + "Script", "; }; }; }" ], "path": "packages/kbn-es-query/src/filters/build_filters/range_filter.ts", diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 2598a5aa8ea82..39290298bbf43 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-08-09 +date: 2024-08-27 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 84215f9aa5dc6..7defc402c73ae 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-08-09 +date: 2024-08-27 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 c91cffff4aa89..4682902de18c0 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_esql_ast.devdocs.json index b4dd177a110e4..45b4f757885a6 100644 --- a/api_docs/kbn_esql_ast.devdocs.json +++ b/api_docs/kbn_esql_ast.devdocs.json @@ -1697,16 +1697,44 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/esql-ast", + "id": "def-common.ESQLColumn.parts", + "type": "Array", + "tags": [], + "label": "parts", + "description": [ + "\nAn identifier can be composed of multiple parts, e.g: part1.part2.`part``3️⃣`.\nThis property contains the parsed unquoted parts of the identifier.\nFor example: `['part1', 'part2', 'part`3️⃣']`." + ], + "signature": [ + "string[]" + ], + "path": "packages/kbn-esql-ast/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/esql-ast", "id": "def-common.ESQLColumn.quoted", "type": "boolean", - "tags": [], + "tags": [ + "deprecated" + ], "label": "quoted", "description": [], "path": "packages/kbn-esql-ast/src/types.ts", - "deprecated": false, - "trackAdoption": false + "deprecated": true, + "trackAdoption": false, + "references": [ + { + "plugin": "@kbn/esql-validation-autocomplete", + "path": "packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts" + }, + { + "plugin": "@kbn/esql-validation-autocomplete", + "path": "packages/kbn-esql-validation-autocomplete/src/shared/variables.ts" + } + ] } ], "initialIsOpen": false @@ -2188,6 +2216,38 @@ "path": "packages/kbn-esql-ast/src/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/esql-ast", + "id": "def-common.ESQLSource.cluster", + "type": "string", + "tags": [], + "label": "cluster", + "description": [ + "\nRepresents the cluster part of the source identifier. Empty string if not\npresent.\n\n```\nFROM [:]\n```" + ], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-esql-ast/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/esql-ast", + "id": "def-common.ESQLSource.index", + "type": "string", + "tags": [], + "label": "index", + "description": [ + "\nRepresents the index part of the source identifier. Unescaped and unquoted.\n\n```\nFROM [:]\n```" + ], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-esql-ast/src/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx index 201fa9f458ed0..37f59971731b8 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast'] --- import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 149 | 1 | 120 | 15 | +| 152 | 1 | 120 | 15 | ## Common diff --git a/api_docs/kbn_esql_utils.devdocs.json b/api_docs/kbn_esql_utils.devdocs.json index d8d67ceb112ba..1dbf86dc50e2f 100644 --- a/api_docs/kbn_esql_utils.devdocs.json +++ b/api_docs/kbn_esql_utils.devdocs.json @@ -1173,7 +1173,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined) => ({ start: string; end?: undefined; } | { end: string; start?: undefined; })[]" + " | undefined) => ({ t_start: string; t_end?: undefined; } | { t_end: string; t_start?: undefined; })[]" ], "path": "packages/kbn-esql-utils/src/utils/run_query.ts", "deprecated": false, @@ -1227,7 +1227,7 @@ "tags": [], "label": "getTimeFieldFromESQLQuery", "description": [ - "\nWhen the ?start and ?end params are used, we want to retrieve the timefield from the query." + "\nWhen the ?t_start and ?t_end params are used, we want to retrieve the timefield from the query." ], "signature": [ "(esql: string) => string | undefined" diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx index 80bfa62b3bad8..ceff3fc8ccc09 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_esql_validation_autocomplete.devdocs.json index 9c4af05a18969..64858bc5fa7f7 100644 --- a/api_docs/kbn_esql_validation_autocomplete.devdocs.json +++ b/api_docs/kbn_esql_validation_autocomplete.devdocs.json @@ -1100,6 +1100,90 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/esql-validation-autocomplete", + "id": "def-common.getColumnForASTNode", + "type": "Function", + "tags": [], + "label": "getColumnForASTNode", + "description": [ + "\nThis function returns the variable or field matching a column" + ], + "signature": [ + "(column: ", + { + "pluginId": "@kbn/esql-ast", + "scope": "common", + "docId": "kibKbnEsqlAstPluginApi", + "section": "def-common.ESQLColumn", + "text": "ESQLColumn" + }, + ", { fields, variables }: Pick<", + "ReferenceMaps", + ", \"fields\" | \"variables\">) => ", + { + "pluginId": "@kbn/esql-validation-autocomplete", + "scope": "common", + "docId": "kibKbnEsqlValidationAutocompletePluginApi", + "section": "def-common.ESQLRealField", + "text": "ESQLRealField" + }, + " | ", + { + "pluginId": "@kbn/esql-validation-autocomplete", + "scope": "common", + "docId": "kibKbnEsqlValidationAutocompletePluginApi", + "section": "def-common.ESQLVariable", + "text": "ESQLVariable" + }, + " | undefined" + ], + "path": "packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/esql-validation-autocomplete", + "id": "def-common.getColumnForASTNode.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "@kbn/esql-ast", + "scope": "common", + "docId": "kibKbnEsqlAstPluginApi", + "section": "def-common.ESQLColumn", + "text": "ESQLColumn" + } + ], + "path": "packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/esql-validation-autocomplete", + "id": "def-common.getColumnForASTNode.$2", + "type": "Object", + "tags": [], + "label": "{ fields, variables }", + "description": [], + "signature": [ + "Pick<", + "ReferenceMaps", + ", \"fields\" | \"variables\">" + ], + "path": "packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/esql-validation-autocomplete", "id": "def-common.getCommandDefinition", @@ -1452,7 +1536,7 @@ "section": "def-common.ESQLCallbacks", "text": "ESQLCallbacks" }, - " | undefined) => () => Promise<{ name: string; hidden: boolean; title?: string | undefined; dataStreams?: { name: string; title?: string | undefined; }[] | undefined; }[]>" + " | undefined) => () => Promise<{ name: string; hidden: boolean; title?: string | undefined; dataStreams?: { name: string; title?: string | undefined; }[] | undefined; type?: string | undefined; }[]>" ], "path": "packages/kbn-esql-validation-autocomplete/src/shared/resources_helpers.ts", "deprecated": false, @@ -2071,90 +2155,6 @@ "returnComment": [], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/esql-validation-autocomplete", - "id": "def-common.lookupColumn", - "type": "Function", - "tags": [], - "label": "lookupColumn", - "description": [ - "\nThis function returns the variable or field matching a column" - ], - "signature": [ - "(column: ", - { - "pluginId": "@kbn/esql-ast", - "scope": "common", - "docId": "kibKbnEsqlAstPluginApi", - "section": "def-common.ESQLColumn", - "text": "ESQLColumn" - }, - ", { fields, variables }: Pick<", - "ReferenceMaps", - ", \"fields\" | \"variables\">) => ", - { - "pluginId": "@kbn/esql-validation-autocomplete", - "scope": "common", - "docId": "kibKbnEsqlValidationAutocompletePluginApi", - "section": "def-common.ESQLRealField", - "text": "ESQLRealField" - }, - " | ", - { - "pluginId": "@kbn/esql-validation-autocomplete", - "scope": "common", - "docId": "kibKbnEsqlValidationAutocompletePluginApi", - "section": "def-common.ESQLVariable", - "text": "ESQLVariable" - }, - " | undefined" - ], - "path": "packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/esql-validation-autocomplete", - "id": "def-common.lookupColumn.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "@kbn/esql-ast", - "scope": "common", - "docId": "kibKbnEsqlAstPluginApi", - "section": "def-common.ESQLColumn", - "text": "ESQLColumn" - } - ], - "path": "packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "@kbn/esql-validation-autocomplete", - "id": "def-common.lookupColumn.$2", - "type": "Object", - "tags": [], - "label": "{ fields, variables }", - "description": [], - "signature": [ - "Pick<", - "ReferenceMaps", - ", \"fields\" | \"variables\">" - ], - "path": "packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/esql-validation-autocomplete", "id": "def-common.printFunctionSignature", @@ -3054,7 +3054,7 @@ "label": "getSources", "description": [], "signature": [ - "CallbackFn<{}, { name: string; hidden: boolean; title?: string | undefined; dataStreams?: { name: string; title?: string | undefined; }[] | undefined; }> | undefined" + "CallbackFn<{}, { name: string; hidden: boolean; title?: string | undefined; dataStreams?: { name: string; title?: string | undefined; }[] | undefined; type?: string | undefined; }> | undefined" ], "path": "packages/kbn-esql-validation-autocomplete/src/shared/types.ts", "deprecated": false, @@ -3193,7 +3193,7 @@ "label": "type", "description": [], "signature": [ - "\"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"keyword\" | \"text\" | \"date\" | \"version\" | \"integer\" | \"long\" | \"double\" | \"unsigned_long\" | \"cartesian_point\" | \"cartesian_shape\" | \"counter_integer\" | \"counter_long\" | \"counter_double\" | \"unsupported\"" + "\"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"version\" | \"integer\" | \"long\" | \"double\" | \"unsigned_long\" | \"cartesian_point\" | \"cartesian_shape\" | \"counter_integer\" | \"counter_long\" | \"counter_double\" | \"unsupported\"" ], "path": "packages/kbn-esql-validation-autocomplete/src/validation/types.ts", "deprecated": false, @@ -3538,6 +3538,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/esql-validation-autocomplete", + "id": "def-common.SuggestionRawDefinition.filterText", + "type": "string", + "tags": [], + "label": "filterText", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-esql-validation-autocomplete/src/autocomplete/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/esql-validation-autocomplete", "id": "def-common.SuggestionRawDefinition.asSnippet", @@ -3630,6 +3644,22 @@ "path": "packages/kbn-esql-validation-autocomplete/src/autocomplete/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/esql-validation-autocomplete", + "id": "def-common.SuggestionRawDefinition.rangeToReplace", + "type": "Object", + "tags": [], + "label": "rangeToReplace", + "description": [ + "\nThe range that should be replaced when the suggestion is applied" + ], + "signature": [ + "{ start: number; end: number; } | undefined" + ], + "path": "packages/kbn-esql-validation-autocomplete/src/autocomplete/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx index 4f283efcc130b..2ac95c4c555f1 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete'] --- import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 194 | 0 | 183 | 10 | +| 196 | 0 | 184 | 10 | ## Common diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index 1b5f813e453db..efac234b0c359 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-08-09 +date: 2024-08-27 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 c0765b814e931..c6d229e10c886 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-08-09 +date: 2024-08-27 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 ed44a5ff7102e..3b3bc618408ac 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-08-09 +date: 2024-08-27 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 d59599b42e91e..6f95154559c0f 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-08-09 +date: 2024-08-27 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 d157494cb0126..840b94c6099f2 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-08-09 +date: 2024-08-27 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 b1054e0196c11..c6792527501e6 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-08-09 +date: 2024-08-27 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 b75017126c961..975f0d8b3d26c 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters'] --- import kbnFormattersObj from './kbn_formatters.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.devdocs.json b/api_docs/kbn_ftr_common_functional_services.devdocs.json index 9c00accd18000..d6aa7eb8fe944 100644 --- a/api_docs/kbn_ftr_common_functional_services.devdocs.json +++ b/api_docs/kbn_ftr_common_functional_services.devdocs.json @@ -606,7 +606,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -640,7 +640,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", + "; DEFAULT_ROLE: string; }; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -710,7 +710,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -744,7 +744,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }>, ProvidedTypeMap<{}>>" + "; DEFAULT_ROLE: string; }; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-services/services/ftr_provider_context.ts", "deprecated": false, @@ -787,6 +787,55 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/ftr-common-functional-services", + "id": "def-common.SamlAuthProviderType", + "type": "Type", + "tags": [], + "label": "SamlAuthProviderType", + "description": [], + "signature": [ + "{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + "UserProfile", + ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RoleCredentials", + "text": "RoleCredentials" + }, + ">; createM2mApiKeyWithRoleScope(role: string): Promise<", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RoleCredentials", + "text": "RoleCredentials" + }, + ">; invalidateM2mApiKeyWithRoleScope(roleCredentials: ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RoleCredentials", + "text": "RoleCredentials" + }, + "): Promise; getCommonRequestHeader(): { 'kbn-xsrf': string; }; getInternalRequestHeader(): ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.InternalRequestHeader", + "text": "InternalRequestHeader" + }, + "; DEFAULT_ROLE: string; }" + ], + "path": "packages/kbn-ftr-common-functional-services/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ftr-common-functional-services", "id": "def-common.SupertestWithoutAuthProviderType", @@ -927,7 +976,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -961,7 +1010,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", + "; DEFAULT_ROLE: string; }; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -1031,7 +1080,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -1065,7 +1114,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }>, ProvidedTypeMap<{}>>" + "; DEFAULT_ROLE: string; }; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-services/services/es.ts", "deprecated": false, @@ -1188,7 +1237,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -1222,7 +1271,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", + "; DEFAULT_ROLE: string; }; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -1292,7 +1341,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -1326,7 +1375,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }>, ProvidedTypeMap<{}>>" + "; DEFAULT_ROLE: string; }; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-services/services/kibana_server/kibana_server.ts", "deprecated": false, @@ -1449,7 +1498,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -1483,7 +1532,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", + "; DEFAULT_ROLE: string; }; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -1553,7 +1602,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -1587,7 +1636,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }>, ProvidedTypeMap<{}>>" + "; DEFAULT_ROLE: string; }; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-services/services/es_archiver.ts", "deprecated": false, @@ -1728,7 +1777,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -1762,7 +1811,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", + "; DEFAULT_ROLE: string; }; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -1832,7 +1881,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -1866,7 +1915,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }>, ProvidedTypeMap<{}>>" + "; DEFAULT_ROLE: string; }; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-services/services/supertest_without_auth.ts", "deprecated": false, @@ -1890,7 +1939,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -1924,7 +1973,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>" + "; DEFAULT_ROLE: string; }" ], "path": "packages/kbn-ftr-common-functional-services/services/all.ts", "deprecated": false, @@ -2016,7 +2065,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -2050,7 +2099,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", + "; DEFAULT_ROLE: string; }; }, {}, ProvidedTypeMap<{ es: ({ getService }: ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -2120,7 +2169,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => Promise<{ getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", + ") => { getInteractiveUserSessionCookieWithRoleScope(role: string): Promise; getM2MApiCredentialsWithRoleScope(role: string): Promise<{ Cookie: string; }>; getEmail(role: string): Promise; getUserData(role: string): Promise<", "UserProfile", ">; createM2mApiKeyWithDefaultRoleScope(): Promise<", { @@ -2154,7 +2203,7 @@ "section": "def-common.InternalRequestHeader", "text": "InternalRequestHeader" }, - "; DEFAULT_ROLE: string; }>; }>, ProvidedTypeMap<{}>>" + "; DEFAULT_ROLE: string; }; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-services/services/saml_auth/saml_auth_provider.ts", "deprecated": false, diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index f359cb56062f5..9c4ce7cd1354f 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kiban | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 46 | 0 | 31 | 1 | +| 47 | 0 | 32 | 1 | ## Common diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx index 287394ae5d9f7..cfebddd016b50 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-08-09 +date: 2024-08-27 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 0d2a6676daa23..b2e6edad7e89d 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-08-09 +date: 2024-08-27 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 f6affb2cc3901..c6d1d68f7a327 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-08-09 +date: 2024-08-27 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 e62ae05eb88e3..1464998937fe7 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_grid_layout.devdocs.json b/api_docs/kbn_grid_layout.devdocs.json new file mode 100644 index 0000000000000..db3bfcc3e8db1 --- /dev/null +++ b/api_docs/kbn_grid_layout.devdocs.json @@ -0,0 +1,304 @@ +{ + "id": "@kbn/grid-layout", + "client": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridLayout", + "type": "Function", + "tags": [], + "label": "GridLayout", + "description": [], + "signature": [ + "({ getCreationOptions, renderPanelContents, }: { getCreationOptions: () => { initialLayout: ", + { + "pluginId": "@kbn/grid-layout", + "scope": "public", + "docId": "kibKbnGridLayoutPluginApi", + "section": "def-public.GridLayoutData", + "text": "GridLayoutData" + }, + "; gridSettings: ", + { + "pluginId": "@kbn/grid-layout", + "scope": "public", + "docId": "kibKbnGridLayoutPluginApi", + "section": "def-public.GridSettings", + "text": "GridSettings" + }, + "; }; renderPanelContents: (panelId: string) => React.ReactNode; }) => JSX.Element" + ], + "path": "packages/kbn-grid-layout/grid/grid_layout.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridLayout.$1", + "type": "Object", + "tags": [], + "label": "{\n getCreationOptions,\n renderPanelContents,\n}", + "description": [], + "path": "packages/kbn-grid-layout/grid/grid_layout.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridLayout.$1.getCreationOptions", + "type": "Function", + "tags": [], + "label": "getCreationOptions", + "description": [], + "signature": [ + "() => { initialLayout: ", + { + "pluginId": "@kbn/grid-layout", + "scope": "public", + "docId": "kibKbnGridLayoutPluginApi", + "section": "def-public.GridLayoutData", + "text": "GridLayoutData" + }, + "; gridSettings: ", + { + "pluginId": "@kbn/grid-layout", + "scope": "public", + "docId": "kibKbnGridLayoutPluginApi", + "section": "def-public.GridSettings", + "text": "GridSettings" + }, + "; }" + ], + "path": "packages/kbn-grid-layout/grid/grid_layout.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridLayout.$1.renderPanelContents", + "type": "Function", + "tags": [], + "label": "renderPanelContents", + "description": [], + "signature": [ + "(panelId: string) => React.ReactNode" + ], + "path": "packages/kbn-grid-layout/grid/grid_layout.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridLayout.$1.renderPanelContents.$1", + "type": "string", + "tags": [], + "label": "panelId", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-grid-layout/grid/grid_layout.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridPanelData", + "type": "Interface", + "tags": [], + "label": "GridPanelData", + "description": [], + "signature": [ + { + "pluginId": "@kbn/grid-layout", + "scope": "public", + "docId": "kibKbnGridLayoutPluginApi", + "section": "def-public.GridPanelData", + "text": "GridPanelData" + }, + " extends ", + "GridRect" + ], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridPanelData.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridRowData", + "type": "Interface", + "tags": [], + "label": "GridRowData", + "description": [], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridRowData.title", + "type": "string", + "tags": [], + "label": "title", + "description": [], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridRowData.isCollapsed", + "type": "boolean", + "tags": [], + "label": "isCollapsed", + "description": [], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridRowData.panels", + "type": "Object", + "tags": [], + "label": "panels", + "description": [], + "signature": [ + "{ [key: string]: ", + { + "pluginId": "@kbn/grid-layout", + "scope": "public", + "docId": "kibKbnGridLayoutPluginApi", + "section": "def-public.GridPanelData", + "text": "GridPanelData" + }, + "; }" + ], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridSettings", + "type": "Interface", + "tags": [], + "label": "GridSettings", + "description": [], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridSettings.gutterSize", + "type": "number", + "tags": [], + "label": "gutterSize", + "description": [], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridSettings.rowHeight", + "type": "number", + "tags": [], + "label": "rowHeight", + "description": [], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridSettings.columnCount", + "type": "number", + "tags": [], + "label": "columnCount", + "description": [], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/grid-layout", + "id": "def-public.GridLayoutData", + "type": "Type", + "tags": [], + "label": "GridLayoutData", + "description": [], + "signature": [ + { + "pluginId": "@kbn/grid-layout", + "scope": "public", + "docId": "kibKbnGridLayoutPluginApi", + "section": "def-public.GridRowData", + "text": "GridRowData" + }, + "[]" + ], + "path": "packages/kbn-grid-layout/grid/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_grid_layout.mdx b/api_docs/kbn_grid_layout.mdx new file mode 100644 index 0000000000000..d0c7b1be21c63 --- /dev/null +++ b/api_docs/kbn_grid_layout.mdx @@ -0,0 +1,36 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnGridLayoutPluginApi +slug: /kibana-dev-docs/api/kbn-grid-layout +title: "@kbn/grid-layout" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/grid-layout plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grid-layout'] +--- +import kbnGridLayoutObj from './kbn_grid_layout.devdocs.json'; + + + +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 16 | 0 | 16 | 1 | + +## Client + +### Functions + + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/kbn_grouping.mdx b/api_docs/kbn_grouping.mdx index f5e67e9e0056c..e7e86425d091f 100644 --- a/api_docs/kbn_grouping.mdx +++ b/api_docs/kbn_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-grouping title: "@kbn/grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/grouping plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grouping'] --- import kbnGroupingObj from './kbn_grouping.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 56214b9a0a957..84fda653e2328 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-08-09 +date: 2024-08-27 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 f4278b57dd23c..f94a968bc8644 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-08-09 +date: 2024-08-27 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 3f325c3286ebf..43784a2c1d056 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-08-09 +date: 2024-08-27 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 4f31cadb45514..79395e0977fd1 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-08-09 +date: 2024-08-27 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 0210717eca361..0ee681a28e023 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-08-09 +date: 2024-08-27 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 5537e3d5d8d35..42732c51a4ffb 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-08-09 +date: 2024-08-27 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 9fa7d2e5a5615..28004f413df58 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-08-09 +date: 2024-08-27 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 954c8e0027282..a48990ffc2fa5 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-08-09 +date: 2024-08-27 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 af6d88c50c3eb..d139435df3ccf 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-08-09 +date: 2024-08-27 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 fd627fe773e53..b09f55a9e5f97 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-08-09 +date: 2024-08-27 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 4e8ce719ee1fa..f8aca0a66b844 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-08-09 +date: 2024-08-27 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 e4cbca9d3634b..7163a7ed32568 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-08-09 +date: 2024-08-27 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 6534f38d91464..1fc1c9353910c 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_investigation_shared.devdocs.json b/api_docs/kbn_investigation_shared.devdocs.json new file mode 100644 index 0000000000000..cf946715b36b0 --- /dev/null +++ b/api_docs/kbn_investigation_shared.devdocs.json @@ -0,0 +1,1167 @@ +{ + "id": "@kbn/investigation-shared", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.CreateInvestigationItemParams", + "type": "Type", + "tags": [], + "label": "CreateInvestigationItemParams", + "description": [], + "signature": [ + "{ title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.CreateInvestigationItemResponse", + "type": "Type", + "tags": [], + "label": "CreateInvestigationItemResponse", + "description": [], + "signature": [ + "{ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.CreateInvestigationNoteParams", + "type": "Type", + "tags": [], + "label": "CreateInvestigationNoteParams", + "description": [], + "signature": [ + "{ content: string; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.CreateInvestigationNoteResponse", + "type": "Type", + "tags": [], + "label": "CreateInvestigationNoteResponse", + "description": [], + "signature": [ + "{ id: string; content: string; createdAt: number; createdBy: string; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.CreateInvestigationParams", + "type": "Type", + "tags": [], + "label": "CreateInvestigationParams", + "description": [], + "signature": [ + "{ id: string; title: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.CreateInvestigationResponse", + "type": "Type", + "tags": [], + "label": "CreateInvestigationResponse", + "description": [], + "signature": [ + "{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.DeleteInvestigationItemParams", + "type": "Type", + "tags": [], + "label": "DeleteInvestigationItemParams", + "description": [], + "signature": [ + "{ investigationId: string; itemId: string; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/delete_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.DeleteInvestigationNoteParams", + "type": "Type", + "tags": [], + "label": "DeleteInvestigationNoteParams", + "description": [], + "signature": [ + "{ investigationId: string; noteId: string; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/delete_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.DeleteInvestigationParams", + "type": "Type", + "tags": [], + "label": "DeleteInvestigationParams", + "description": [], + "signature": [ + "{ investigationId: string; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/delete.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.FindInvestigationsParams", + "type": "Type", + "tags": [], + "label": "FindInvestigationsParams", + "description": [], + "signature": [ + "{ alertId?: string | undefined; page?: string | undefined; perPage?: string | undefined; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/find.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.FindInvestigationsResponse", + "type": "Type", + "tags": [], + "label": "FindInvestigationsResponse", + "description": [], + "signature": [ + "{ page: number; perPage: number; total: number; results: { id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]; }[]; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/find.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.GetInvestigationItemsResponse", + "type": "Type", + "tags": [], + "label": "GetInvestigationItemsResponse", + "description": [], + "signature": [ + "({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get_items.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.GetInvestigationNotesResponse", + "type": "Type", + "tags": [], + "label": "GetInvestigationNotesResponse", + "description": [], + "signature": [ + "{ id: string; content: string; createdAt: number; createdBy: string; }[]" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get_notes.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.GetInvestigationParams", + "type": "Type", + "tags": [], + "label": "GetInvestigationParams", + "description": [], + "signature": [ + "{ investigationId: string; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.GetInvestigationResponse", + "type": "Type", + "tags": [], + "label": "GetInvestigationResponse", + "description": [], + "signature": [ + "{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: \"esql\"; params: { esql: string; suggestion: any; }; })[]; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.InvestigationNoteResponse", + "type": "Type", + "tags": [], + "label": "InvestigationNoteResponse", + "description": [], + "signature": [ + "{ id: string; content: string; createdAt: number; createdBy: string; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.alertOriginSchema", + "type": "Object", + "tags": [], + "label": "alertOriginSchema", + "description": [], + "signature": [ + "TypeC", + "<{ type: ", + "LiteralC", + "<\"alert\">; id: ", + "StringC", + "; }>" + ], + "path": "packages/kbn-investigation-shared/src/schema/origin.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.blankOriginSchema", + "type": "Object", + "tags": [], + "label": "blankOriginSchema", + "description": [], + "signature": [ + "TypeC", + "<{ type: ", + "LiteralC", + "<\"blank\">; }>" + ], + "path": "packages/kbn-investigation-shared/src/schema/origin.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.createInvestigationItemParamsSchema", + "type": "Object", + "tags": [], + "label": "createInvestigationItemParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; body: ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.createInvestigationItemResponseSchema", + "type": "Object", + "tags": [], + "label": "createInvestigationItemResponseSchema", + "description": [], + "signature": [ + "IntersectionC", + "<[", + "TypeC", + "<{ id: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>, ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>]>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.createInvestigationNoteParamsSchema", + "type": "Object", + "tags": [], + "label": "createInvestigationNoteParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; body: ", + "TypeC", + "<{ content: ", + "StringC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.createInvestigationNoteResponseSchema", + "type": "Object", + "tags": [], + "label": "createInvestigationNoteResponseSchema", + "description": [], + "signature": [ + "TypeC", + "<{ id: ", + "StringC", + "; content: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.createInvestigationParamsSchema", + "type": "Object", + "tags": [], + "label": "createInvestigationParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ body: ", + "TypeC", + "<{ id: ", + "StringC", + "; title: ", + "StringC", + "; params: ", + "TypeC", + "<{ timeRange: ", + "TypeC", + "<{ from: ", + "NumberC", + "; to: ", + "NumberC", + "; }>; }>; origin: ", + "UnionC", + "<[", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"alert\">; id: ", + "StringC", + "; }>, ", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"blank\">; }>]>; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.createInvestigationResponseSchema", + "type": "Object", + "tags": [], + "label": "createInvestigationResponseSchema", + "description": [], + "signature": [ + "TypeC", + "<{ id: ", + "StringC", + "; title: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; params: ", + "TypeC", + "<{ timeRange: ", + "TypeC", + "<{ from: ", + "NumberC", + "; to: ", + "NumberC", + "; }>; }>; origin: ", + "UnionC", + "<[", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"alert\">; id: ", + "StringC", + "; }>, ", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"blank\">; }>]>; status: ", + "UnionC", + "<[", + "LiteralC", + "<\"ongoing\">, ", + "LiteralC", + "<\"closed\">]>; notes: ", + "ArrayC", + "<", + "TypeC", + "<{ id: ", + "StringC", + "; content: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>>; items: ", + "ArrayC", + "<", + "IntersectionC", + "<[", + "TypeC", + "<{ id: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>, ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>]>>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/create.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.deleteInvestigationItemParamsSchema", + "type": "Object", + "tags": [], + "label": "deleteInvestigationItemParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; itemId: ", + "StringC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/delete_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.deleteInvestigationNoteParamsSchema", + "type": "Object", + "tags": [], + "label": "deleteInvestigationNoteParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; noteId: ", + "StringC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/delete_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.deleteInvestigationParamsSchema", + "type": "Object", + "tags": [], + "label": "deleteInvestigationParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/delete.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.esqlItemSchema", + "type": "Object", + "tags": [], + "label": "esqlItemSchema", + "description": [], + "signature": [ + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/schema/investigation_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.findInvestigationsParamsSchema", + "type": "Object", + "tags": [], + "label": "findInvestigationsParamsSchema", + "description": [], + "signature": [ + "PartialC", + "<{ query: ", + "PartialC", + "<{ alertId: ", + "StringC", + "; page: ", + "StringC", + "; perPage: ", + "StringC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/find.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.findInvestigationsResponseSchema", + "type": "Object", + "tags": [], + "label": "findInvestigationsResponseSchema", + "description": [], + "signature": [ + "TypeC", + "<{ page: ", + "NumberC", + "; perPage: ", + "NumberC", + "; total: ", + "NumberC", + "; results: ", + "ArrayC", + "<", + "TypeC", + "<{ id: ", + "StringC", + "; title: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; params: ", + "TypeC", + "<{ timeRange: ", + "TypeC", + "<{ from: ", + "NumberC", + "; to: ", + "NumberC", + "; }>; }>; origin: ", + "UnionC", + "<[", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"alert\">; id: ", + "StringC", + "; }>, ", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"blank\">; }>]>; status: ", + "UnionC", + "<[", + "LiteralC", + "<\"ongoing\">, ", + "LiteralC", + "<\"closed\">]>; notes: ", + "ArrayC", + "<", + "TypeC", + "<{ id: ", + "StringC", + "; content: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>>; items: ", + "ArrayC", + "<", + "IntersectionC", + "<[", + "TypeC", + "<{ id: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>, ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>]>>; }>>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/find.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.getInvestigationItemsParamsSchema", + "type": "Object", + "tags": [], + "label": "getInvestigationItemsParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get_items.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.getInvestigationItemsResponseSchema", + "type": "Object", + "tags": [], + "label": "getInvestigationItemsResponseSchema", + "description": [], + "signature": [ + "ArrayC", + "<", + "IntersectionC", + "<[", + "TypeC", + "<{ id: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>, ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>]>>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get_items.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.getInvestigationNotesParamsSchema", + "type": "Object", + "tags": [], + "label": "getInvestigationNotesParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get_notes.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.getInvestigationNotesResponseSchema", + "type": "Object", + "tags": [], + "label": "getInvestigationNotesResponseSchema", + "description": [], + "signature": [ + "ArrayC", + "<", + "TypeC", + "<{ id: ", + "StringC", + "; content: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get_notes.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.getInvestigationParamsSchema", + "type": "Object", + "tags": [], + "label": "getInvestigationParamsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ path: ", + "TypeC", + "<{ investigationId: ", + "StringC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.getInvestigationResponseSchema", + "type": "Object", + "tags": [], + "label": "getInvestigationResponseSchema", + "description": [], + "signature": [ + "TypeC", + "<{ id: ", + "StringC", + "; title: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; params: ", + "TypeC", + "<{ timeRange: ", + "TypeC", + "<{ from: ", + "NumberC", + "; to: ", + "NumberC", + "; }>; }>; origin: ", + "UnionC", + "<[", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"alert\">; id: ", + "StringC", + "; }>, ", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"blank\">; }>]>; status: ", + "UnionC", + "<[", + "LiteralC", + "<\"ongoing\">, ", + "LiteralC", + "<\"closed\">]>; notes: ", + "ArrayC", + "<", + "TypeC", + "<{ id: ", + "StringC", + "; content: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>>; items: ", + "ArrayC", + "<", + "IntersectionC", + "<[", + "TypeC", + "<{ id: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>, ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>]>>; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/get.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.investigationItemSchema", + "type": "Object", + "tags": [], + "label": "investigationItemSchema", + "description": [], + "signature": [ + "IntersectionC", + "<[", + "TypeC", + "<{ id: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>, ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>]>" + ], + "path": "packages/kbn-investigation-shared/src/schema/investigation_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.investigationItemsSchema", + "type": "Object", + "tags": [], + "label": "investigationItemsSchema", + "description": [], + "signature": [ + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>" + ], + "path": "packages/kbn-investigation-shared/src/schema/investigation_item.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.investigationNoteResponseSchema", + "type": "Object", + "tags": [], + "label": "investigationNoteResponseSchema", + "description": [], + "signature": [ + "TypeC", + "<{ id: ", + "StringC", + "; content: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.investigationNoteSchema", + "type": "Object", + "tags": [], + "label": "investigationNoteSchema", + "description": [], + "signature": [ + "TypeC", + "<{ id: ", + "StringC", + "; content: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>" + ], + "path": "packages/kbn-investigation-shared/src/schema/investigation_note.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.investigationSchema", + "type": "Object", + "tags": [], + "label": "investigationSchema", + "description": [], + "signature": [ + "TypeC", + "<{ id: ", + "StringC", + "; title: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; params: ", + "TypeC", + "<{ timeRange: ", + "TypeC", + "<{ from: ", + "NumberC", + "; to: ", + "NumberC", + "; }>; }>; origin: ", + "UnionC", + "<[", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"alert\">; id: ", + "StringC", + "; }>, ", + "TypeC", + "<{ type: ", + "LiteralC", + "<\"blank\">; }>]>; status: ", + "UnionC", + "<[", + "LiteralC", + "<\"ongoing\">, ", + "LiteralC", + "<\"closed\">]>; notes: ", + "ArrayC", + "<", + "TypeC", + "<{ id: ", + "StringC", + "; content: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>>; items: ", + "ArrayC", + "<", + "IntersectionC", + "<[", + "TypeC", + "<{ id: ", + "StringC", + "; createdAt: ", + "NumberC", + "; createdBy: ", + "StringC", + "; }>, ", + "TypeC", + "<{ title: ", + "StringC", + "; type: ", + "LiteralC", + "<\"esql\">; params: ", + "TypeC", + "<{ esql: ", + "StringC", + "; suggestion: ", + "AnyC", + "; }>; }>]>>; }>" + ], + "path": "packages/kbn-investigation-shared/src/schema/investigation.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/kbn_investigation_shared.mdx b/api_docs/kbn_investigation_shared.mdx new file mode 100644 index 0000000000000..ac1933bb3dd1b --- /dev/null +++ b/api_docs/kbn_investigation_shared.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnInvestigationSharedPluginApi +slug: /kibana-dev-docs/api/kbn-investigation-shared +title: "@kbn/investigation-shared" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/investigation-shared plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/investigation-shared'] +--- +import kbnInvestigationSharedObj from './kbn_investigation_shared.devdocs.json'; + + + +Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 41 | 0 | 41 | 0 | + +## Common + +### Objects + + +### Consts, variables and types + + diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 5627d4ada06d0..d0f6f93a36eac 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-08-09 +date: 2024-08-27 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 0f09a71e32498..8cec6e84ef1ba 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-08-09 +date: 2024-08-27 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 813674a4abc18..df2e9c7a23301 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-08-09 +date: 2024-08-27 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 bb6bb9e13ae39..1d5b84f2a194e 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-08-09 +date: 2024-08-27 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 6cc8901f07644..7d3fafdc2db73 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_json_schemas.mdx b/api_docs/kbn_json_schemas.mdx index 56f0c0274e5ea..79935fd0d6a0f 100644 --- a/api_docs/kbn_json_schemas.mdx +++ b/api_docs/kbn_json_schemas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-schemas title: "@kbn/json-schemas" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-schemas plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-schemas'] --- import kbnJsonSchemasObj from './kbn_json_schemas.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index f856ccd79cf0d..fe033bedeb821 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-08-09 +date: 2024-08-27 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 79fd39cb3b444..d0946f8d0e8ac 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-08-09 +date: 2024-08-27 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 2eabd18413b80..d8aef714d9841 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-08-09 +date: 2024-08-27 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 f20b453af5f0f..7a747c70900fa 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-08-09 +date: 2024-08-27 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 d0b28f46bb67f..e486986a1d1b1 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-08-09 +date: 2024-08-27 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 2bae0c016ebfb..6df141252cea5 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_managed_content_badge.devdocs.json index 9eee12d881aff..c9b58c13a3b94 100644 --- a/api_docs/kbn_managed_content_badge.devdocs.json +++ b/api_docs/kbn_managed_content_badge.devdocs.json @@ -11,9 +11,9 @@ "label": "getManagedContentBadge", "description": [], "signature": [ - "(tooltipText: string) => { 'data-test-subj': string; badgeText: string; title: string; color: string; iconType: string; toolTipProps: ", + "(tooltipText: string, enableTooltipProps?: boolean | undefined) => { 'data-test-subj': string; badgeText: string; title: string; color: string; iconType: string; toolTipProps: ", "EuiToolTipProps", - "; }" + " | undefined; }" ], "path": "packages/kbn-managed-content-badge/index.ts", "deprecated": false, @@ -33,6 +33,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "@kbn/managed-content-badge", + "id": "def-public.getManagedContentBadge.$2", + "type": "CompoundType", + "tags": [], + "label": "enableTooltipProps", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-managed-content-badge/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [], diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx index a0ef2c4d6316a..1068a46bdf200 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge'] --- import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2 | 0 | 2 | 0 | +| 3 | 0 | 3 | 0 | ## Client diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 3bfea5fc1db1e..a86b9da564a60 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-08-09 +date: 2024-08-27 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 a6a934fbec596..482a1affe0697 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-08-09 +date: 2024-08-27 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 035dbfe2654df..b8b07cc1545ad 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-08-09 +date: 2024-08-27 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 1a1389ce7b568..8c96d2c16a813 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-08-09 +date: 2024-08-27 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 4961ffd1147d7..154e4bc028289 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-08-09 +date: 2024-08-27 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 0acaa705ce0e4..32813dd411a99 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-08-09 +date: 2024-08-27 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 fb62c685dabdc..33e21f4205d2f 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-08-09 +date: 2024-08-27 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 672a325bccfbb..ad0c52760082f 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-08-09 +date: 2024-08-27 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.mdx b/api_docs/kbn_management_settings_ids.mdx index d0115078e8869..980f56f1f6bb2 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index 23b153a08a3bc..e4bd5c7f40094 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_management_settings_types.devdocs.json index 4ae9026a187f5..590f1a7c44d3f 100644 --- a/api_docs/kbn_management_settings_types.devdocs.json +++ b/api_docs/kbn_management_settings_types.devdocs.json @@ -1613,7 +1613,7 @@ "\nThis is a local type equivalent to {@link UiSettingsType} for flexibility." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"image\" | \"select\" | \"json\" | \"array\" | \"markdown\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"array\" | \"image\" | \"select\" | \"json\" | \"markdown\"" ], "path": "packages/kbn-management/settings/types/setting_type.ts", "deprecated": false, diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index c7f57749ad627..89444186dd490 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-08-09 +date: 2024-08-27 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 4d309d29a5eca..6fa1f251b0fc7 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-08-09 +date: 2024-08-27 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 b77b2d65316a3..7f6fab807b5f6 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-08-09 +date: 2024-08-27 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 d9956bfcba7c4..5baf3af31bdb0 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-08-09 +date: 2024-08-27 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 73b006dbaaf0a..caf901e9b2adf 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_ml_agg_utils.devdocs.json index 3e2c306db4d73..5994abdf8b656 100644 --- a/api_docs/kbn_ml_agg_utils.devdocs.json +++ b/api_docs/kbn_ml_agg_utils.devdocs.json @@ -698,7 +698,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -734,6 +734,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -792,6 +818,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -1386,7 +1414,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1412,7 +1442,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1658,6 +1688,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 9d5d73a033509..0788af076a72c 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-08-09 +date: 2024-08-27 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 dd84ae65b9b61..37b3106e80804 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-08-09 +date: 2024-08-27 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 0a07c49755b54..84d5d09e14d3b 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-08-09 +date: 2024-08-27 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 2197d32529433..21643d9c482c1 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-08-09 +date: 2024-08-27 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 87db95be070b7..8e5cbb35a5dbc 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-08-09 +date: 2024-08-27 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 b8cd7147e4989..55b4bc658e837 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-08-09 +date: 2024-08-27 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 596a091e86cfd..bbaf79051310f 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_ml_date_picker.devdocs.json index 092772ed4e32d..a2401c59a14ba 100644 --- a/api_docs/kbn_ml_date_picker.devdocs.json +++ b/api_docs/kbn_ml_date_picker.devdocs.json @@ -728,7 +728,7 @@ "section": "def-common.RefreshInterval", "text": "RefreshInterval" }, - "; setRefreshInterval: (refreshInterval: Partial<", + "; getMinRefreshInterval: () => number; setRefreshInterval: (refreshInterval: Partial<", { "pluginId": "data", "scope": "common", diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index 880f4c21d3b43..d199168f0da7d 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-08-09 +date: 2024-08-27 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 208cc3e39e4bc..e48ca364a2e2d 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-08-09 +date: 2024-08-27 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 a7305f8a4c592..91f4f290961ad 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-08-09 +date: 2024-08-27 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 1a12e22154970..a28085aa353b4 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-08-09 +date: 2024-08-27 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 fc6ed63a6822a..af6d69d9c079c 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-08-09 +date: 2024-08-27 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 d02563e7e27d8..b62cc5822b671 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-08-09 +date: 2024-08-27 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 704057c951f3c..422e5c60201a6 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-08-09 +date: 2024-08-27 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 b87112e26c0d3..cc204d9d961ec 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-08-09 +date: 2024-08-27 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 a301295da765c..85197b205df74 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-08-09 +date: 2024-08-27 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 235dfb0d31f79..a431ba883a067 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-08-09 +date: 2024-08-27 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 551ea1dc6caed..6e1b48a2118d9 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-08-09 +date: 2024-08-27 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 e5565078c25a4..def110412a8da 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-08-09 +date: 2024-08-27 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 6d77cf685cdcf..52b74aed2dcf2 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-08-09 +date: 2024-08-27 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 a9960cfc51f99..ef36e23dff982 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-08-09 +date: 2024-08-27 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 3f469db713a08..cb20c7911f56e 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-08-09 +date: 2024-08-27 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 dfec863c7b045..a442b83f178de 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_ml_trained_models_utils.devdocs.json index 29e317f3d5c28..da7f83967f765 100644 --- a/api_docs/kbn_ml_trained_models_utils.devdocs.json +++ b/api_docs/kbn_ml_trained_models_utils.devdocs.json @@ -472,7 +472,7 @@ "label": "InferenceAPIConfigResponse", "description": [], "signature": [ - "{ model_id: string; task_type: \"sparse_embedding\" | \"text_embedding\"; task_settings: { model?: string | undefined; }; } & ", + "{ inference_id: string; task_type: \"sparse_embedding\" | \"text_embedding\"; task_settings: { model?: string | undefined; }; } & ", "InferenceServiceSettings" ], "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index 8ca410ad45524..58bf4daeca916 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-08-09 +date: 2024-08-27 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 e3a889ecac84f..411ec82b9b901 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_ml_url_state.devdocs.json index b95b497f7b691..23d6834de272a 100644 --- a/api_docs/kbn_ml_url_state.devdocs.json +++ b/api_docs/kbn_ml_url_state.devdocs.json @@ -350,7 +350,15 @@ "\nHook for managing the URL state of the page." ], "signature": [ - "(pageKey: T[\"pageKey\"], defaultState?: T[\"pageUrlState\"] | undefined) => [T[\"pageUrlState\"], (update: Partial, replaceState?: boolean | undefined) => void, ", + "(pageKey: T[\"pageKey\"], defaultState?: T[\"pageUrlState\"] | undefined) => [T[\"pageUrlState\"], (update: Partial, replaceState?: boolean | undefined) => void, ", { "pluginId": "@kbn/ml-url-state", "scope": "common", @@ -492,6 +500,145 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.ListingPageUrlState", + "type": "Interface", + "tags": [], + "label": "ListingPageUrlState", + "description": [], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.ListingPageUrlState.pageSize", + "type": "number", + "tags": [], + "label": "pageSize", + "description": [], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.ListingPageUrlState.pageIndex", + "type": "number", + "tags": [], + "label": "pageIndex", + "description": [], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.ListingPageUrlState.sortField", + "type": "string", + "tags": [], + "label": "sortField", + "description": [], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.ListingPageUrlState.sortDirection", + "type": "string", + "tags": [], + "label": "sortDirection", + "description": [], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.ListingPageUrlState.queryText", + "type": "string", + "tags": [], + "label": "queryText", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.ListingPageUrlState.showPerPageOptions", + "type": "CompoundType", + "tags": [], + "label": "showPerPageOptions", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.ListingPageUrlState.showAll", + "type": "CompoundType", + "tags": [], + "label": "showAll", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.PageUrlState", + "type": "Interface", + "tags": [], + "label": "PageUrlState", + "description": [], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.PageUrlState.pageKey", + "type": "string", + "tags": [], + "label": "pageKey", + "description": [], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ml-url-state", + "id": "def-common.PageUrlState.pageUrlState", + "type": "Uncategorized", + "tags": [], + "label": "pageUrlState", + "description": [], + "signature": [ + "object" + ], + "path": "x-pack/packages/ml/url_state/src/url_state.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 18e180b9a4d9a..ea636c6b29a2a 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questi | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 31 | 1 | 24 | 1 | +| 42 | 1 | 35 | 1 | ## Common diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx index f642a52cec5f7..71c861ce26287 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_monaco.devdocs.json index 0b994bcbe89f2..6034d3f573795 100644 --- a/api_docs/kbn_monaco.devdocs.json +++ b/api_docs/kbn_monaco.devdocs.json @@ -482,7 +482,7 @@ "label": "getSources", "description": [], "signature": [ - "CallbackFn<{}, { name: string; hidden: boolean; title?: string | undefined; dataStreams?: { name: string; title?: string | undefined; }[] | undefined; }> | undefined" + "CallbackFn<{}, { name: string; hidden: boolean; title?: string | undefined; dataStreams?: { name: string; title?: string | undefined; }[] | undefined; type?: string | undefined; }> | undefined" ], "path": "packages/kbn-esql-validation-autocomplete/src/shared/types.ts", "deprecated": false, @@ -579,6 +579,21 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangModuleType.foldingRangeProvider", + "type": "Object", + "tags": [], + "label": "foldingRangeProvider", + "description": [], + "signature": [ + "languages", + ".FoldingRangeProvider | undefined" + ], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/monaco", "id": "def-common.LangModuleType.getSuggestionProvider", @@ -1171,45 +1186,6 @@ "path": "packages/kbn-monaco/src/console/types.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "@kbn/monaco", - "id": "def-common.ParsedRequest.method", - "type": "string", - "tags": [], - "label": "method", - "description": [], - "path": "packages/kbn-monaco/src/console/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/monaco", - "id": "def-common.ParsedRequest.url", - "type": "string", - "tags": [], - "label": "url", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-monaco/src/console/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/monaco", - "id": "def-common.ParsedRequest.data", - "type": "Array", - "tags": [], - "label": "data", - "description": [], - "signature": [ - "Record[] | undefined" - ], - "path": "packages/kbn-monaco/src/console/types.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 3bf1a19614a44..952cea5ca675a 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.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 | |-------------------|-----------|------------------------|-----------------| -| 122 | 0 | 122 | 3 | +| 120 | 0 | 120 | 3 | ## Common diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index b30a3e4e8277e..5a9b39313757f 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-08-09 +date: 2024-08-27 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 f2723603a38cd..22424f19ffeec 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-08-09 +date: 2024-08-27 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_rule_utils.mdx b/api_docs/kbn_observability_alerting_rule_utils.mdx index 5b40d0a795928..a7f3bfdfc78de 100644 --- a/api_docs/kbn_observability_alerting_rule_utils.mdx +++ b/api_docs/kbn_observability_alerting_rule_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-rule-utils title: "@kbn/observability-alerting-rule-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alerting-rule-utils plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-rule-utils'] --- import kbnObservabilityAlertingRuleUtilsObj from './kbn_observability_alerting_rule_utils.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx index 5b24aba396313..45b4e9439fab2 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-08-09 +date: 2024-08-27 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 494ee2cd786d3..8765cfb145649 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-08-09 +date: 2024-08-27 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 adfbc760f9616..49b07d4e68f06 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-08-09 +date: 2024-08-27 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 062b0f833553d..310ce0e970f3e 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-08-09 +date: 2024-08-27 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 1d98c03234012..ca28901736540 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-08-09 +date: 2024-08-27 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 637e067a45759..8374769babe61 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-08-09 +date: 2024-08-27 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 6a1c68996bf35..c623a747d1f92 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-08-09 +date: 2024-08-27 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 bf1ee7759d94d..561225ef84ba3 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-08-09 +date: 2024-08-27 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 889a9523193d0..d5f9db4ad3c1f 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-08-09 +date: 2024-08-27 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 35306a7857640..01125bfede9ef 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-08-09 +date: 2024-08-27 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 db1c6f856552e..8452e5b00c94b 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-08-09 +date: 2024-08-27 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 a33156ba9da50..fb46a0911997f 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-08-09 +date: 2024-08-27 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 2b340ad57b80a..09aca35c8c683 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers'] --- import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json'; diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx index 5be8284b5e1b1..6cdbb1935fb7f 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-08-09 +date: 2024-08-27 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 | |-------------------|-----------|------------------------|-----------------| -| 216 | 0 | 181 | 5 | +| 216 | 0 | 181 | 6 | ## Client diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index a0640d0df6ddc..437c50eb2858e 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-08-09 +date: 2024-08-27 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 8a53692389400..5d9f7f858bf04 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-08-09 +date: 2024-08-27 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 e310e28e31994..c5f428f42e982 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-08-09 +date: 2024-08-27 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 0fcfd3f18eb11..b86335808cbff 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-08-09 +date: 2024-08-27 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 5819ec07359f1..99051444ed653 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-08-09 +date: 2024-08-27 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 6a59a646850ca..a85b1ebcff194 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-08-09 +date: 2024-08-27 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 9d956d3f8b7cb..445f551fc2abd 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-08-09 +date: 2024-08-27 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 eb7f6ad6b7a0e..0ae9eb3256543 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-08-09 +date: 2024-08-27 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 cc5d88ceaeabc..115d877788967 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-08-09 +date: 2024-08-27 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 ab68c418d0127..9efcf620e87fc 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_recently_accessed.mdx b/api_docs/kbn_recently_accessed.mdx index 31b028cf26375..acc96f83709d1 100644 --- a/api_docs/kbn_recently_accessed.mdx +++ b/api_docs/kbn_recently_accessed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-recently-accessed title: "@kbn/recently-accessed" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/recently-accessed plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/recently-accessed'] --- import kbnRecentlyAccessedObj from './kbn_recently_accessed.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 50709a04232fe..8844145592be1 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-08-09 +date: 2024-08-27 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 c5ff895887cb1..7b82fde6b2d1a 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-08-09 +date: 2024-08-27 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 762f0c2346e0b..31c062c852f83 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-08-09 +date: 2024-08-27 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 38e84e9a5b618..87aba75095c4d 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-08-09 +date: 2024-08-27 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 1a1457b4e9810..007843217d3cc 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-08-09 +date: 2024-08-27 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 172e86fdd7e21..e9a64666f306e 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-08-09 +date: 2024-08-27 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 c913fba84c84b..ef16397fb63c5 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-08-09 +date: 2024-08-27 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 56b80eef5264b..84bf57f43d8f9 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-08-09 +date: 2024-08-27 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 0e35216eed852..7ffb4afa20566 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-08-09 +date: 2024-08-27 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 cdf4cbb333701..13c7b558aecc9 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-08-09 +date: 2024-08-27 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 e8b47eeea570d..c7df4f2a35bda 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-08-09 +date: 2024-08-27 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 74e18a82a6360..439f54983a057 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-08-09 +date: 2024-08-27 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 9c7941d91bb30..527ef257e206f 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-08-09 +date: 2024-08-27 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.mdx b/api_docs/kbn_reporting_public.mdx index f4f8d5d69ffc9..b0740c1f0780f 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public'] --- import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json'; diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx index 142b5872b89a9..04ab2e2a811e6 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-08-09 +date: 2024-08-27 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 6f89adb019a4e..6f0c3bb8d8142 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_response_ops_feature_flag_service.mdx b/api_docs/kbn_response_ops_feature_flag_service.mdx index 3eb25f6920210..a52fa8da91fcc 100644 --- a/api_docs/kbn_response_ops_feature_flag_service.mdx +++ b/api_docs/kbn_response_ops_feature_flag_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-response-ops-feature-flag-service title: "@kbn/response-ops-feature-flag-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/response-ops-feature-flag-service plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/response-ops-feature-flag-service'] --- import kbnResponseOpsFeatureFlagServiceObj from './kbn_response_ops_feature_flag_service.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 8fa39beb05e1d..e46de85c77888 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rollup.mdx b/api_docs/kbn_rollup.mdx index b0dff4db3696d..60b97a50a443a 100644 --- a/api_docs/kbn_rollup.mdx +++ b/api_docs/kbn_rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rollup title: "@kbn/rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rollup plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rollup'] --- import kbnRollupObj from './kbn_rollup.devdocs.json'; diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx index 3e9240b8580ef..d3f48e8d7d757 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-08-09 +date: 2024-08-27 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 230a004a69bd3..4ecb903b21904 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-08-09 +date: 2024-08-27 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 08be4922ad817..e5b9399563b7b 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-08-09 +date: 2024-08-27 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 a05072af3ca45..49957d43bb9f5 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-08-09 +date: 2024-08-27 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 29ec4ff50e200..7bfc27355d592 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_screenshotting_server.devdocs.json b/api_docs/kbn_screenshotting_server.devdocs.json new file mode 100644 index 0000000000000..f320f3ca33d1e --- /dev/null +++ b/api_docs/kbn_screenshotting_server.devdocs.json @@ -0,0 +1,806 @@ +{ + "id": "@kbn/screenshotting-server", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths", + "type": "Class", + "tags": [], + "label": "ChromiumArchivePaths", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.packages", + "type": "Array", + "tags": [], + "label": "packages", + "description": [], + "signature": [ + "(CustomPackageInfo | CommonPackageInfo)[]" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.archivesPath", + "type": "string", + "tags": [], + "label": "archivesPath", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.find", + "type": "Function", + "tags": [], + "label": "find", + "description": [], + "signature": [ + "(platform: string, architecture: string, packages?: ", + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + }, + "[]) => ", + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + }, + " | undefined" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.find.$1", + "type": "string", + "tags": [], + "label": "platform", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.find.$2", + "type": "string", + "tags": [], + "label": "architecture", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.find.$3", + "type": "Array", + "tags": [], + "label": "packages", + "description": [], + "signature": [ + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + }, + "[]" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.resolvePath", + "type": "Function", + "tags": [], + "label": "resolvePath", + "description": [], + "signature": [ + "(p: ", + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + }, + ") => string" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.resolvePath.$1", + "type": "Object", + "tags": [], + "label": "p", + "description": [], + "signature": [ + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + } + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.getAllArchiveFilenames", + "type": "Function", + "tags": [], + "label": "getAllArchiveFilenames", + "description": [], + "signature": [ + "() => string[]" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.getDownloadUrl", + "type": "Function", + "tags": [], + "label": "getDownloadUrl", + "description": [], + "signature": [ + "(p: ", + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + }, + ") => string" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.getDownloadUrl.$1", + "type": "Object", + "tags": [], + "label": "p", + "description": [], + "signature": [ + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + } + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.getBinaryPath", + "type": "Function", + "tags": [], + "label": "getBinaryPath", + "description": [], + "signature": [ + "(p: ", + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + }, + ", chromiumPath: string) => string" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.getBinaryPath.$1", + "type": "Object", + "tags": [], + "label": "p", + "description": [], + "signature": [ + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + } + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ChromiumArchivePaths.getBinaryPath.$2", + "type": "string", + "tags": [], + "label": "chromiumPath", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.args", + "type": "Function", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "({ userDataDir, disableSandbox, windowSize, proxy: proxyConfig, }: LaunchArgs) => string[]" + ], + "path": "packages/kbn-screenshotting-server/src/args.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.args.$1", + "type": "Object", + "tags": [], + "label": "{\n userDataDir,\n disableSandbox,\n windowSize,\n proxy: proxyConfig,\n}", + "description": [], + "signature": [ + "LaunchArgs" + ], + "path": "packages/kbn-screenshotting-server/src/args.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.createConfig", + "type": "Function", + "tags": [], + "label": "createConfig", + "description": [], + "signature": [ + "(parentLogger: ", + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + }, + ", config: Readonly<{} & { enabled: boolean; capture: Readonly<{ loadDelay?: number | moment.Duration | undefined; } & { zoom: number; timeouts: Readonly<{} & { renderComplete: number | moment.Duration; openUrl: number | moment.Duration; waitForElements: number | moment.Duration; }>; }>; browser: Readonly<{} & { autoDownload: boolean; chromium: Readonly<{ inspect?: boolean | undefined; disableSandbox?: boolean | undefined; } & { proxy: Readonly<{ server?: string | undefined; bypass?: string[] | undefined; } & { enabled: boolean; }>; }>; }>; networkPolicy: Readonly<{} & { enabled: boolean; rules: Readonly<{ host?: string | undefined; protocol?: string | undefined; } & { allow: boolean; }>[]; }>; poolSize: number; }>) => Promise; }>; browser: Readonly<{} & { autoDownload: boolean; chromium: Readonly<{ inspect?: boolean | undefined; disableSandbox?: boolean | undefined; } & { proxy: Readonly<{ server?: string | undefined; bypass?: string[] | undefined; } & { enabled: boolean; }>; }>; }>; networkPolicy: Readonly<{} & { enabled: boolean; rules: Readonly<{ host?: string | undefined; protocol?: string | undefined; } & { allow: boolean; }>[]; }>; poolSize: number; }>>" + ], + "path": "packages/kbn-screenshotting-server/src/config/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.createConfig.$1", + "type": "Object", + "tags": [], + "label": "parentLogger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + } + ], + "path": "packages/kbn-screenshotting-server/src/config/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.createConfig.$2", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "Readonly<{} & { enabled: boolean; capture: Readonly<{ loadDelay?: number | moment.Duration | undefined; } & { zoom: number; timeouts: Readonly<{} & { renderComplete: number | moment.Duration; openUrl: number | moment.Duration; waitForElements: number | moment.Duration; }>; }>; browser: Readonly<{} & { autoDownload: boolean; chromium: Readonly<{ inspect?: boolean | undefined; disableSandbox?: boolean | undefined; } & { proxy: Readonly<{ server?: string | undefined; bypass?: string[] | undefined; } & { enabled: boolean; }>; }>; }>; networkPolicy: Readonly<{} & { enabled: boolean; rules: Readonly<{ host?: string | undefined; protocol?: string | undefined; } & { allow: boolean; }>[]; }>; poolSize: number; }>" + ], + "path": "packages/kbn-screenshotting-server/src/config/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.durationToNumber", + "type": "Function", + "tags": [], + "label": "durationToNumber", + "description": [ + "\nHelper function" + ], + "signature": [ + "(value: number | moment.Duration) => number" + ], + "path": "packages/kbn-screenshotting-server/src/config/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.durationToNumber.$1", + "type": "CompoundType", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "number | moment.Duration" + ], + "path": "packages/kbn-screenshotting-server/src/config/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.getChromiumPackage", + "type": "Function", + "tags": [], + "label": "getChromiumPackage", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/screenshotting-server", + "scope": "server", + "docId": "kibKbnScreenshottingServerPluginApi", + "section": "def-server.PackageInfo", + "text": "PackageInfo" + } + ], + "path": "packages/kbn-screenshotting-server/src/get_chromium_package.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo", + "type": "Interface", + "tags": [], + "label": "PackageInfo", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.platform", + "type": "CompoundType", + "tags": [], + "label": "platform", + "description": [], + "signature": [ + "\"linux\" | \"darwin\" | \"win32\"" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.architecture", + "type": "CompoundType", + "tags": [], + "label": "architecture", + "description": [], + "signature": [ + "\"x64\" | \"arm64\"" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.archiveFilename", + "type": "string", + "tags": [], + "label": "archiveFilename", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.archiveChecksum", + "type": "string", + "tags": [], + "label": "archiveChecksum", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.binaryChecksum", + "type": "string", + "tags": [], + "label": "binaryChecksum", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.binaryRelativePath", + "type": "string", + "tags": [], + "label": "binaryRelativePath", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.isPreInstalled", + "type": "boolean", + "tags": [], + "label": "isPreInstalled", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.location", + "type": "CompoundType", + "tags": [], + "label": "location", + "description": [], + "signature": [ + "\"custom\" | \"common\"" + ], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.PackageInfo.revision", + "type": "number", + "tags": [], + "label": "revision", + "description": [], + "path": "packages/kbn-screenshotting-server/src/paths.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ConfigType", + "type": "Type", + "tags": [], + "label": "ConfigType", + "description": [], + "signature": [ + "{ readonly enabled: boolean; readonly capture: Readonly<{ loadDelay?: number | moment.Duration | undefined; } & { zoom: number; timeouts: Readonly<{} & { renderComplete: number | moment.Duration; openUrl: number | moment.Duration; waitForElements: number | moment.Duration; }>; }>; readonly browser: Readonly<{} & { autoDownload: boolean; chromium: Readonly<{ inspect?: boolean | undefined; disableSandbox?: boolean | undefined; } & { proxy: Readonly<{ server?: string | undefined; bypass?: string[] | undefined; } & { enabled: boolean; }>; }>; }>; readonly networkPolicy: Readonly<{} & { enabled: boolean; rules: Readonly<{ host?: string | undefined; protocol?: string | undefined; } & { allow: boolean; }>[]; }>; readonly poolSize: number; }" + ], + "path": "packages/kbn-screenshotting-server/src/config/schema.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "@kbn/screenshotting-server", + "id": "def-server.ConfigSchema", + "type": "Object", + "tags": [], + "label": "ConfigSchema", + "description": [], + "signature": [ + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ObjectType", + "text": "ObjectType" + }, + "<{ enabled: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ConditionalType", + "text": "ConditionalType" + }, + "; networkPolicy: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ObjectType", + "text": "ObjectType" + }, + "<{ enabled: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; rules: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "[]>; }>; browser: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ObjectType", + "text": "ObjectType" + }, + "<{ autoDownload: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ConditionalType", + "text": "ConditionalType" + }, + "; chromium: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ObjectType", + "text": "ObjectType" + }, + "<{ inspect: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ConditionalType", + "text": "ConditionalType" + }, + "; disableSandbox: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; proxy: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ObjectType", + "text": "ObjectType" + }, + "<{ enabled: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; server: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ConditionalType", + "text": "ConditionalType" + }, + "; bypass: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ConditionalType", + "text": "ConditionalType" + }, + "; }>; }>; }>; capture: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ObjectType", + "text": "ObjectType" + }, + "<{ timeouts: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ObjectType", + "text": "ObjectType" + }, + "<{ openUrl: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; waitForElements: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; renderComplete: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; }>; zoom: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; loadDelay: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; }>; poolSize: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "; }>" + ], + "path": "packages/kbn-screenshotting-server/src/config/schema.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_screenshotting_server.mdx b/api_docs/kbn_screenshotting_server.mdx new file mode 100644 index 0000000000000..a01abd70ab52a --- /dev/null +++ b/api_docs/kbn_screenshotting_server.mdx @@ -0,0 +1,42 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnScreenshottingServerPluginApi +slug: /kibana-dev-docs/api/kbn-screenshotting-server +title: "@kbn/screenshotting-server" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/screenshotting-server plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/screenshotting-server'] +--- +import kbnScreenshottingServerObj from './kbn_screenshotting_server.devdocs.json'; + + + +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 35 | 0 | 34 | 0 | + +## Server + +### Objects + + +### Functions + + +### Classes + + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index 8c25bb9ec32fc..652436cc2dc9d 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index ec6ee3bed6a2e..22640dd1b1273 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx index 0952e04990691..573a1a2d7198c 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-08-09 +date: 2024-08-27 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 ba4f70ac49695..2c623dd2691c8 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-08-09 +date: 2024-08-27 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 63325c095d147..f33aed11984d7 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-08-09 +date: 2024-08-27 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 b1d7183b31cb8..4ac282e8ebca1 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-types'] --- import kbnSearchTypesObj from './kbn_search_types.devdocs.json'; diff --git a/api_docs/kbn_security_api_key_management.mdx b/api_docs/kbn_security_api_key_management.mdx index 3fd70e6f78d70..f6189b9954646 100644 --- a/api_docs/kbn_security_api_key_management.mdx +++ b/api_docs/kbn_security_api_key_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-api-key-management title: "@kbn/security-api-key-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-api-key-management plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-api-key-management'] --- import kbnSecurityApiKeyManagementObj from './kbn_security_api_key_management.devdocs.json'; diff --git a/api_docs/kbn_security_authorization_core.devdocs.json b/api_docs/kbn_security_authorization_core.devdocs.json new file mode 100644 index 0000000000000..75a43d937d9f0 --- /dev/null +++ b/api_docs/kbn_security_authorization_core.devdocs.json @@ -0,0 +1,468 @@ +{ + "id": "@kbn/security-authorization-core", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions", + "type": "Class", + "tags": [], + "label": "Actions", + "description": [ + "Actions are used to create the \"actions\" that are associated with Elasticsearch's\napplication privileges, and are used to perform the authorization checks implemented\nby the various `checkPrivilegesWithRequest` derivatives." + ], + "signature": [ + { + "pluginId": "@kbn/security-authorization-core", + "scope": "server", + "docId": "kibKbnSecurityAuthorizationCorePluginApi", + "section": "def-server.Actions", + "text": "Actions" + }, + " implements ", + { + "pluginId": "@kbn/security-plugin-types-server", + "scope": "server", + "docId": "kibKbnSecurityPluginTypesServerPluginApi", + "section": "def-server.Actions", + "text": "Actions" + } + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.api", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "ApiActions" + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.app", + "type": "Object", + "tags": [], + "label": "app", + "description": [], + "signature": [ + "AppActions" + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.cases", + "type": "Object", + "tags": [], + "label": "cases", + "description": [], + "signature": [ + "CasesActions" + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.login", + "type": "string", + "tags": [], + "label": "login", + "description": [], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.savedObject", + "type": "Object", + "tags": [], + "label": "savedObject", + "description": [], + "signature": [ + "SavedObjectActions" + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.alerting", + "type": "Object", + "tags": [], + "label": "alerting", + "description": [], + "signature": [ + "AlertingActions" + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.space", + "type": "Object", + "tags": [], + "label": "space", + "description": [], + "signature": [ + "SpaceActions" + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.ui", + "type": "Object", + "tags": [], + "label": "ui", + "description": [], + "signature": [ + "UIActions" + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.Actions.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/authorization_core/src/actions/actions.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.privilegesFactory", + "type": "Function", + "tags": [], + "label": "privilegesFactory", + "description": [], + "signature": [ + "(actions: ", + { + "pluginId": "@kbn/security-authorization-core", + "scope": "server", + "docId": "kibKbnSecurityAuthorizationCorePluginApi", + "section": "def-server.Actions", + "text": "Actions" + }, + ", featuresService: ", + { + "pluginId": "features", + "scope": "server", + "docId": "kibFeaturesPluginApi", + "section": "def-server.FeaturesPluginSetup", + "text": "FeaturesPluginSetup" + }, + ", licenseService: Pick<", + { + "pluginId": "@kbn/security-plugin-types-common", + "scope": "common", + "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "section": "def-common.SecurityLicense", + "text": "SecurityLicense" + }, + ", \"getFeatures\" | \"hasAtLeast\">) => { get(respectLicenseLevel?: boolean): { features: Record>; global: { all: string[]; read: string[]; }; space: { all: string[]; read: string[]; }; reserved: Record; }; }" + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.privilegesFactory.$1", + "type": "Object", + "tags": [], + "label": "actions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-authorization-core", + "scope": "server", + "docId": "kibKbnSecurityAuthorizationCorePluginApi", + "section": "def-server.Actions", + "text": "Actions" + } + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.privilegesFactory.$2", + "type": "Object", + "tags": [], + "label": "featuresService", + "description": [], + "signature": [ + { + "pluginId": "features", + "scope": "server", + "docId": "kibFeaturesPluginApi", + "section": "def-server.FeaturesPluginSetup", + "text": "FeaturesPluginSetup" + } + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.privilegesFactory.$3", + "type": "Object", + "tags": [], + "label": "licenseService", + "description": [], + "signature": [ + "Pick<", + { + "pluginId": "@kbn/security-plugin-types-common", + "scope": "common", + "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "section": "def-common.SecurityLicense", + "text": "SecurityLicense" + }, + ", \"getFeatures\" | \"hasAtLeast\">" + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.PrivilegesService", + "type": "Interface", + "tags": [], + "label": "PrivilegesService", + "description": [], + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.PrivilegesService.get", + "type": "Function", + "tags": [], + "label": "get", + "description": [], + "signature": [ + "(respectLicenseLevel?: boolean | undefined) => ", + { + "pluginId": "@kbn/security-authorization-core", + "scope": "server", + "docId": "kibKbnSecurityAuthorizationCorePluginApi", + "section": "def-server.RawKibanaPrivileges", + "text": "RawKibanaPrivileges" + } + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.PrivilegesService.get.$1", + "type": "CompoundType", + "tags": [], + "label": "respectLicenseLevel", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.RawKibanaFeaturePrivileges", + "type": "Interface", + "tags": [], + "label": "RawKibanaFeaturePrivileges", + "description": [], + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.RawKibanaFeaturePrivileges.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[featureId: string]: { [privilegeId: string]: string[]; }", + "description": [], + "signature": [ + "[featureId: string]: { [privilegeId: string]: string[]; }" + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.RawKibanaPrivileges", + "type": "Interface", + "tags": [], + "label": "RawKibanaPrivileges", + "description": [], + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.RawKibanaPrivileges.global", + "type": "Object", + "tags": [], + "label": "global", + "description": [], + "signature": [ + "{ [x: string]: string[]; }" + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.RawKibanaPrivileges.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-authorization-core", + "scope": "server", + "docId": "kibKbnSecurityAuthorizationCorePluginApi", + "section": "def-server.RawKibanaFeaturePrivileges", + "text": "RawKibanaFeaturePrivileges" + } + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.RawKibanaPrivileges.space", + "type": "Object", + "tags": [], + "label": "space", + "description": [], + "signature": [ + "{ [x: string]: string[]; }" + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.RawKibanaPrivileges.reserved", + "type": "Object", + "tags": [], + "label": "reserved", + "description": [], + "signature": [ + "{ [x: string]: string[]; }" + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/security-authorization-core", + "id": "def-server.CasesSupportedOperations", + "type": "Type", + "tags": [], + "label": "CasesSupportedOperations", + "description": [], + "signature": [ + "\"getTags\" | \"pushCase\" | \"createCase\" | \"createComment\" | \"getCase\" | \"getComment\" | \"getReporters\" | \"getUserActions\" | \"findConfigurations\" | \"updateCase\" | \"updateComment\" | \"deleteCase\" | \"deleteComment\" | \"createConfiguration\" | \"updateConfiguration\"" + ], + "path": "x-pack/packages/security/authorization_core/src/privileges/feature_privilege_builder/cases.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_security_authorization_core.mdx b/api_docs/kbn_security_authorization_core.mdx new file mode 100644 index 0000000000000..593238d47cb2c --- /dev/null +++ b/api_docs/kbn_security_authorization_core.mdx @@ -0,0 +1,39 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnSecurityAuthorizationCorePluginApi +slug: /kibana-dev-docs/api/kbn-security-authorization-core +title: "@kbn/security-authorization-core" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/security-authorization-core plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-authorization-core'] +--- +import kbnSecurityAuthorizationCoreObj from './kbn_security_authorization_core.devdocs.json'; + + + +Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 25 | 0 | 24 | 7 | + +## Server + +### Functions + + +### Classes + + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/kbn_security_form_components.mdx b/api_docs/kbn_security_form_components.mdx index b37f088ed2295..d8387aec6dcb2 100644 --- a/api_docs/kbn_security_form_components.mdx +++ b/api_docs/kbn_security_form_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-form-components title: "@kbn/security-form-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-form-components plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-form-components'] --- import kbnSecurityFormComponentsObj from './kbn_security_form_components.devdocs.json'; diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx index 577bd0e92d33d..02b95af23522a 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-08-09 +date: 2024-08-27 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 31223a90a9992..998678024f3fd 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_security_plugin_types_public.devdocs.json index 5cf42e58fba57..03955b2029ad2 100644 --- a/api_docs/kbn_security_plugin_types_public.devdocs.json +++ b/api_docs/kbn_security_plugin_types_public.devdocs.json @@ -639,10 +639,6 @@ "plugin": "cloudLinks", "path": "x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/maybe_add_cloud_links.ts" }, - { - "plugin": "observabilityAIAssistantApp", - "path": "x-pack/plugins/observability_solution/observability_ai_assistant_app/public/hooks/use_current_user.ts" - }, { "plugin": "cases", "path": "x-pack/plugins/cases/public/common/lib/kibana/hooks.ts" diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx index 462a7906a761c..07ec6782f80ed 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-08-09 +date: 2024-08-27 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 88b9f59719293..a06bff9ce2b9e 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-08-09 +date: 2024-08-27 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_role_management_model.devdocs.json b/api_docs/kbn_security_role_management_model.devdocs.json new file mode 100644 index 0000000000000..7182dd6e7bd9c --- /dev/null +++ b/api_docs/kbn_security_role_management_model.devdocs.json @@ -0,0 +1,1489 @@ +{ + "id": "@kbn/security-role-management-model", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivilege", + "type": "Class", + "tags": [], + "label": "KibanaPrivilege", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/kibana_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivilege.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivilege.Unnamed.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivilege.Unnamed.$2", + "type": "Array", + "tags": [], + "label": "actions", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivilege.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/kibana_privilege.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivilege.grantsPrivilege", + "type": "Function", + "tags": [], + "label": "grantsPrivilege", + "description": [], + "signature": [ + "(candidatePrivilege: ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.KibanaPrivilege", + "text": "KibanaPrivilege" + }, + ") => boolean" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivilege.grantsPrivilege.$1", + "type": "Object", + "tags": [], + "label": "candidatePrivilege", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.KibanaPrivilege", + "text": "KibanaPrivilege" + } + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges", + "type": "Class", + "tags": [], + "label": "KibanaPrivileges", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "rawKibanaPrivileges", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-authorization-core", + "scope": "server", + "docId": "kibKbnSecurityAuthorizationCorePluginApi", + "section": "def-server.RawKibanaPrivileges", + "text": "RawKibanaPrivileges" + } + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.Unnamed.$2", + "type": "Array", + "tags": [], + "label": "features", + "description": [], + "signature": [ + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeature", + "text": "KibanaFeature" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.getBasePrivileges", + "type": "Function", + "tags": [], + "label": "getBasePrivileges", + "description": [], + "signature": [ + "(entry: ", + { + "pluginId": "@kbn/security-plugin-types-common", + "scope": "common", + "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "section": "def-common.RoleKibanaPrivilege", + "text": "RoleKibanaPrivilege" + }, + ") => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.KibanaPrivilege", + "text": "KibanaPrivilege" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.getBasePrivileges.$1", + "type": "Object", + "tags": [], + "label": "entry", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-plugin-types-common", + "scope": "common", + "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "section": "def-common.RoleKibanaPrivilege", + "text": "RoleKibanaPrivilege" + } + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.getSecuredFeature", + "type": "Function", + "tags": [], + "label": "getSecuredFeature", + "description": [], + "signature": [ + "(featureId: string) => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SecuredFeature", + "text": "SecuredFeature" + } + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.getSecuredFeature.$1", + "type": "string", + "tags": [], + "label": "featureId", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.getSecuredFeatures", + "type": "Function", + "tags": [], + "label": "getSecuredFeatures", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SecuredFeature", + "text": "SecuredFeature" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.createCollectionFromRoleKibanaPrivileges", + "type": "Function", + "tags": [], + "label": "createCollectionFromRoleKibanaPrivileges", + "description": [], + "signature": [ + "(roleKibanaPrivileges: ", + { + "pluginId": "@kbn/security-plugin-types-common", + "scope": "common", + "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "section": "def-common.RoleKibanaPrivilege", + "text": "RoleKibanaPrivilege" + }, + "[]) => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.PrivilegeCollection", + "text": "PrivilegeCollection" + } + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.KibanaPrivileges.createCollectionFromRoleKibanaPrivileges.$1", + "type": "Array", + "tags": [], + "label": "roleKibanaPrivileges", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-plugin-types-common", + "scope": "common", + "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "section": "def-common.RoleKibanaPrivilege", + "text": "RoleKibanaPrivilege" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege", + "type": "Class", + "tags": [], + "label": "PrimaryFeaturePrivilege", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.PrimaryFeaturePrivilege", + "text": "PrimaryFeaturePrivilege" + }, + " extends ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.KibanaPrivilege", + "text": "KibanaPrivilege" + } + ], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege.Unnamed.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.FeatureKibanaPrivileges", + "text": "FeatureKibanaPrivileges" + } + ], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege.Unnamed.$3", + "type": "Array", + "tags": [], + "label": "actions", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege.isMinimalFeaturePrivilege", + "type": "Function", + "tags": [], + "label": "isMinimalFeaturePrivilege", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege.getMinimalPrivilegeId", + "type": "Function", + "tags": [], + "label": "getMinimalPrivilegeId", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege.requireAllSpaces", + "type": "boolean", + "tags": [], + "label": "requireAllSpaces", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrimaryFeaturePrivilege.disabled", + "type": "boolean", + "tags": [], + "label": "disabled", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/primary_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrivilegeCollection", + "type": "Class", + "tags": [], + "label": "PrivilegeCollection", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/privilege_collection.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrivilegeCollection.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/role_management_model/src/privilege_collection.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrivilegeCollection.Unnamed.$1", + "type": "Array", + "tags": [], + "label": "privileges", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.KibanaPrivilege", + "text": "KibanaPrivilege" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/privilege_collection.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrivilegeCollection.grantsPrivilege", + "type": "Function", + "tags": [], + "label": "grantsPrivilege", + "description": [], + "signature": [ + "(privilege: ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.KibanaPrivilege", + "text": "KibanaPrivilege" + }, + ") => boolean" + ], + "path": "x-pack/packages/security/role_management_model/src/privilege_collection.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.PrivilegeCollection.grantsPrivilege.$1", + "type": "Object", + "tags": [], + "label": "privilege", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.KibanaPrivilege", + "text": "KibanaPrivilege" + } + ], + "path": "x-pack/packages/security/role_management_model/src/privilege_collection.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature", + "type": "Class", + "tags": [], + "label": "SecuredFeature", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SecuredFeature", + "text": "SecuredFeature" + }, + " extends ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeature", + "text": "KibanaFeature" + } + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureConfig", + "text": "KibanaFeatureConfig" + } + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "actionMapping", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.Unnamed.$2.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[privilegeId: string]: string[]", + "description": [], + "signature": [ + "[privilegeId: string]: string[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.getPrivilegesTooltip", + "type": "Function", + "tags": [], + "label": "getPrivilegesTooltip", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.getAllPrivileges", + "type": "Function", + "tags": [], + "label": "getAllPrivileges", + "description": [], + "signature": [ + "() => (", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.PrimaryFeaturePrivilege", + "text": "PrimaryFeaturePrivilege" + }, + " | ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + }, + ")[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.getPrimaryFeaturePrivileges", + "type": "Function", + "tags": [], + "label": "getPrimaryFeaturePrivileges", + "description": [], + "signature": [ + "({ includeMinimalFeaturePrivileges }?: { includeMinimalFeaturePrivileges: boolean; }) => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.PrimaryFeaturePrivilege", + "text": "PrimaryFeaturePrivilege" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.getPrimaryFeaturePrivileges.$1", + "type": "Object", + "tags": [], + "label": "{ includeMinimalFeaturePrivileges }", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.getPrimaryFeaturePrivileges.$1.includeMinimalFeaturePrivileges", + "type": "boolean", + "tags": [], + "label": "includeMinimalFeaturePrivileges", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.getMinimalFeaturePrivileges", + "type": "Function", + "tags": [], + "label": "getMinimalFeaturePrivileges", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.PrimaryFeaturePrivilege", + "text": "PrimaryFeaturePrivilege" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.getSubFeaturePrivileges", + "type": "Function", + "tags": [], + "label": "getSubFeaturePrivileges", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredFeature.getSubFeatures", + "type": "Function", + "tags": [], + "label": "getSubFeatures", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SecuredSubFeature", + "text": "SecuredSubFeature" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature", + "type": "Class", + "tags": [], + "label": "SecuredSubFeature", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SecuredSubFeature", + "text": "SecuredSubFeature" + }, + " extends ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.SubFeature", + "text": "SubFeature" + } + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.privileges", + "type": "Array", + "tags": [], + "label": "privileges", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.privilegesTooltip", + "type": "string", + "tags": [], + "label": "privilegesTooltip", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.SubFeatureConfig", + "text": "SubFeatureConfig" + } + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "actionMapping", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.Unnamed.$2.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[privilegeId: string]: string[]", + "description": [], + "signature": [ + "[privilegeId: string]: string[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.getPrivilegeGroups", + "type": "Function", + "tags": [], + "label": "getPrivilegeGroups", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilegeGroup", + "text": "SubFeaturePrivilegeGroup" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.privilegeIterator", + "type": "Function", + "tags": [], + "label": "privilegeIterator", + "description": [], + "signature": [ + "({ predicate, }?: { predicate?: ((privilege: ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + }, + ", feature: ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SecuredSubFeature", + "text": "SecuredSubFeature" + }, + ") => boolean) | undefined; }) => IterableIterator<", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + }, + ">" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.privilegeIterator.$1", + "type": "Object", + "tags": [], + "label": "{\n predicate = () => true,\n }", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.privilegeIterator.$1.predicate", + "type": "Function", + "tags": [], + "label": "predicate", + "description": [], + "signature": [ + "((privilege: ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + }, + ", feature: ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SecuredSubFeature", + "text": "SecuredSubFeature" + }, + ") => boolean) | undefined" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.privilegeIterator.$1.predicate.$1", + "type": "Object", + "tags": [], + "label": "privilege", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + } + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.privilegeIterator.$1.predicate.$2", + "type": "Object", + "tags": [], + "label": "feature", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SecuredSubFeature", + "text": "SecuredSubFeature" + } + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SecuredSubFeature.getDescription", + "type": "Function", + "tags": [], + "label": "getDescription", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/packages/security/role_management_model/src/secured_sub_feature.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilege", + "type": "Class", + "tags": [], + "label": "SubFeaturePrivilege", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + }, + " extends ", + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.KibanaPrivilege", + "text": "KibanaPrivilege" + } + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilege.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilege.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "subPrivilegeConfig", + "description": [], + "signature": [ + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.SubFeaturePrivilegeConfig", + "text": "SubFeaturePrivilegeConfig" + } + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilege.Unnamed.$2", + "type": "Array", + "tags": [], + "label": "actions", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilege.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilege.disabled", + "type": "CompoundType", + "tags": [], + "label": "disabled", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilege.requireAllSpaces", + "type": "boolean", + "tags": [], + "label": "requireAllSpaces", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilegeGroup", + "type": "Class", + "tags": [], + "label": "SubFeaturePrivilegeGroup", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege_group.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilegeGroup.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege_group.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilegeGroup.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.SubFeaturePrivilegeGroupConfig", + "text": "SubFeaturePrivilegeGroupConfig" + } + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege_group.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilegeGroup.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "actionMapping", + "description": [], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege_group.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilegeGroup.Unnamed.$2.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[privilegeId: string]: string[]", + "description": [], + "signature": [ + "[privilegeId: string]: string[]" + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege_group.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilegeGroup.groupType", + "type": "CompoundType", + "tags": [], + "label": "groupType", + "description": [], + "signature": [ + "\"mutually_exclusive\" | \"independent\"" + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege_group.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.SubFeaturePrivilegeGroup.privileges", + "type": "Array", + "tags": [], + "label": "privileges", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-role-management-model", + "scope": "common", + "docId": "kibKbnSecurityRoleManagementModelPluginApi", + "section": "def-common.SubFeaturePrivilege", + "text": "SubFeaturePrivilege" + }, + "[]" + ], + "path": "x-pack/packages/security/role_management_model/src/sub_feature_privilege_group.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.isGlobalPrivilegeDefinition", + "type": "Function", + "tags": [], + "label": "isGlobalPrivilegeDefinition", + "description": [ + "\nDetermines if the passed privilege spec defines global privileges." + ], + "signature": [ + "(privilegeSpec: ", + { + "pluginId": "@kbn/security-plugin-types-common", + "scope": "common", + "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "section": "def-common.RoleKibanaPrivilege", + "text": "RoleKibanaPrivilege" + }, + ") => boolean" + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/security-role-management-model", + "id": "def-common.isGlobalPrivilegeDefinition.$1", + "type": "Object", + "tags": [], + "label": "privilegeSpec", + "description": [], + "signature": [ + { + "pluginId": "@kbn/security-plugin-types-common", + "scope": "common", + "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "section": "def-common.RoleKibanaPrivilege", + "text": "RoleKibanaPrivilege" + } + ], + "path": "x-pack/packages/security/role_management_model/src/kibana_privileges.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_security_role_management_model.mdx b/api_docs/kbn_security_role_management_model.mdx new file mode 100644 index 0000000000000..f71acbae2bc64 --- /dev/null +++ b/api_docs/kbn_security_role_management_model.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnSecurityRoleManagementModelPluginApi +slug: /kibana-dev-docs/api/kbn-security-role-management-model +title: "@kbn/security-role-management-model" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/security-role-management-model plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-role-management-model'] +--- +import kbnSecurityRoleManagementModelObj from './kbn_security_role_management_model.devdocs.json'; + + + +Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 75 | 0 | 74 | 0 | + +## Common + +### Functions + + +### Classes + + diff --git a/api_docs/kbn_security_solution_distribution_bar.mdx b/api_docs/kbn_security_solution_distribution_bar.mdx index 9f1343fe17f2a..5bf0cd8b907ae 100644 --- a/api_docs/kbn_security_solution_distribution_bar.mdx +++ b/api_docs/kbn_security_solution_distribution_bar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-distribution-bar title: "@kbn/security-solution-distribution-bar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-distribution-bar plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-distribution-bar'] --- import kbnSecuritySolutionDistributionBarObj from './kbn_security_solution_distribution_bar.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.devdocs.json b/api_docs/kbn_security_solution_features.devdocs.json index 2d455423f1ffd..e0e229df45a39 100644 --- a/api_docs/kbn_security_solution_features.devdocs.json +++ b/api_docs/kbn_security_solution_features.devdocs.json @@ -221,7 +221,9 @@ " | ", "ProductFeatureCasesKey", " | ", - "ProductFeatureAssistantKey" + "ProductFeatureAssistantKey", + " | ", + "ProductFeatureAttackDiscoveryKey" ], "path": "x-pack/packages/security-solution/features/src/product_features_keys.ts", "deprecated": false, @@ -301,6 +303,31 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/security-solution-features", + "id": "def-common.ProductFeaturesAttackDiscoveryConfig", + "type": "Type", + "tags": [], + "label": "ProductFeaturesAttackDiscoveryConfig", + "description": [], + "signature": [ + "Map<", + "ProductFeatureAttackDiscoveryKey", + ", ", + { + "pluginId": "@kbn/security-solution-features", + "scope": "common", + "docId": "kibKbnSecuritySolutionFeaturesPluginApi", + "section": "def-common.ProductFeatureKibanaConfig", + "text": "ProductFeatureKibanaConfig" + }, + ">" + ], + "path": "x-pack/packages/security-solution/features/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/security-solution-features", "id": "def-common.ProductFeaturesCasesConfig", diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index 264eec3c04698..88581262f9d03 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-threat-hunting-explore](https://github.com/orgs/elast | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 14 | 0 | 14 | 6 | +| 15 | 0 | 15 | 7 | ## Common diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index b0b80a300cafd..d73e565c2d382 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-08-09 +date: 2024-08-27 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 cc03821702323..d55725ff48879 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-08-09 +date: 2024-08-27 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 14972b29c38fb..7511ee792f431 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-08-09 +date: 2024-08-27 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 dd1feccd52ab7..973abe9ee9af1 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-08-09 +date: 2024-08-27 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 f9e9d3315803b..8bafe23e3c1d5 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-08-09 +date: 2024-08-27 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 7aac9d824e159..f927981e3c76f 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_securitysolution_es_utils.devdocs.json index 11713763f55f1..e7dcb1d4de62f 100644 --- a/api_docs/kbn_securitysolution_es_utils.devdocs.json +++ b/api_docs/kbn_securitysolution_es_utils.devdocs.json @@ -778,7 +778,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; asyncSearch: ", "default", @@ -810,6 +810,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -868,6 +894,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -1462,7 +1490,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1488,7 +1518,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1734,6 +1764,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -2058,7 +2090,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; asyncSearch: ", "default", @@ -2090,6 +2122,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -2148,6 +2206,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -2742,7 +2802,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -2768,7 +2830,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -3014,6 +3076,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index cd0d6ead49d09..7144772c9980e 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_securitysolution_exception_list_components.devdocs.json index fa61ae7f0558f..c74cbf9537ed0 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.devdocs.json +++ b/api_docs/kbn_securitysolution_exception_list_components.devdocs.json @@ -851,7 +851,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"path\" | \"code\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"form\" | \"line\" | \"rect\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | \"line\" | \"rect\" | \"code\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -865,7 +865,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"path\" | \"code\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"form\" | \"line\" | \"rect\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | \"line\" | \"rect\" | \"code\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -1004,7 +1004,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"path\" | \"code\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"form\" | \"line\" | \"rect\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | \"line\" | \"rect\" | \"code\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1018,7 +1018,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"path\" | \"code\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"form\" | \"line\" | \"rect\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | \"line\" | \"rect\" | \"code\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1144,7 +1144,7 @@ "label": "showValueListModal", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"path\" | \"code\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"form\" | \"line\" | \"rect\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | \"line\" | \"rect\" | \"code\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | React.ComponentType | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index 661a2252abca6..7c6f79c3c27f9 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-08-09 +date: 2024-08-27 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_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 6b65540844883..534121d95f21b 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-08-09 +date: 2024-08-27 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 1c0d6a6d7bc8a..a358d827360c1 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-08-09 +date: 2024-08-27 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 28bbb1cb50c70..b8398b5a0ded0 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-08-09 +date: 2024-08-27 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 78871781a9ee2..425198e68fa64 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-08-09 +date: 2024-08-27 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 2759da152787e..318da48ddaa26 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-08-09 +date: 2024-08-27 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 9b564765be866..65e5148a9331d 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-08-09 +date: 2024-08-27 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 8a36f10caa10c..6d573f6f5cc89 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-08-09 +date: 2024-08-27 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 b96366d3d0209..1eab2bc0ed216 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-08-09 +date: 2024-08-27 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 8bfdb68f00eba..3468d526df5e8 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-08-09 +date: 2024-08-27 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 e45dce53c9560..05a4daffe5c6a 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-08-09 +date: 2024-08-27 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 3754426f39521..b1ed44e073df3 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-08-09 +date: 2024-08-27 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 5a0a585cc9326..b51cc183606cf 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_server_http_tools.devdocs.json index c5fb8122cb494..241ce4eaf16b7 100644 --- a/api_docs/kbn_server_http_tools.devdocs.json +++ b/api_docs/kbn_server_http_tools.devdocs.json @@ -1268,7 +1268,7 @@ "section": "def-common.Type", "text": "Type" }, - "<\"none\" | \"optional\" | \"required\">; }>" + "<\"none\" | \"required\" | \"optional\">; }>" ], "path": "packages/kbn-server-http-tools/src/ssl/ssl_config.ts", "deprecated": false, diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 80394e07bce98..5100bf9f97a93 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_server_route_repository.devdocs.json index 8d5fb3cd5dfdc..68fa7221f6e1c 100644 --- a/api_docs/kbn_server_route_repository.devdocs.json +++ b/api_docs/kbn_server_route_repository.devdocs.json @@ -21,26 +21,26 @@ "signature": [ "() => (route: ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ServerRoute", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, ") => Record>" @@ -60,7 +60,7 @@ "label": "decodeRequestParams", "description": [], "signature": [ - "(params: KibanaRequestParams, paramsRt: T) => ", + "(params: Partial<{ path: any; query: any; body: any; }>, paramsRt: T) => ", "OutputOf", "" ], @@ -76,7 +76,7 @@ "label": "params", "description": [], "signature": [ - "KibanaRequestParams" + "Partial<{ path: any; query: any; body: any; }>" ], "path": "packages/kbn-server-route-repository/src/decode_request_params.ts", "deprecated": false, @@ -200,7 +200,13 @@ "text": "CoreSetup" }, "; repository: Record Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, ">; logger: ", { "pluginId": "@kbn/logging", @@ -209,7 +215,7 @@ "section": "def-common.Logger", "text": "Logger" }, - "; dependencies: Record; }) => void" + "; dependencies: TDependencies; }) => void" ], "path": "packages/kbn-server-route-repository/src/register_routes.ts", "deprecated": false, @@ -256,7 +262,13 @@ "description": [], "signature": [ "{ [x: string]: { endpoint: string; params?: any; handler: ({}: any) => Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, "; }" ], "path": "packages/kbn-server-route-repository/src/register_routes.ts", @@ -286,12 +298,12 @@ { "parentPluginId": "@kbn/server-route-repository", "id": "def-server.registerRoutes.$1.dependencies", - "type": "Object", + "type": "Uncategorized", "tags": [], "label": "dependencies", "description": [], "signature": [ - "{ [x: string]: any; }" + "TDependencies" ], "path": "packages/kbn-server-route-repository/src/register_routes.ts", "deprecated": false, @@ -302,9 +314,129 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.stripNullishRequestParameters", + "type": "Function", + "tags": [], + "label": "stripNullishRequestParameters", + "description": [], + "signature": [ + "(params: KibanaRequestParams) => Partial<{ path: any; body: any; query: any; }>" + ], + "path": "packages/kbn-server-route-repository/src/strip_nullish_request_parameters.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.stripNullishRequestParameters.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + "KibanaRequestParams" + ], + "path": "packages/kbn-server-route-repository/src/strip_nullish_request_parameters.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false } ], "interfaces": [ + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.DefaultRouteCreateOptions", + "type": "Interface", + "tags": [], + "label": "DefaultRouteCreateOptions", + "description": [], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.DefaultRouteCreateOptions.options", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.RouteConfigOptions", + "text": "RouteConfigOptions" + }, + "<", + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.RouteMethod", + "text": "RouteMethod" + }, + "> | undefined" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.DefaultRouteHandlerResources", + "type": "Interface", + "tags": [], + "label": "DefaultRouteHandlerResources", + "description": [], + "signature": [ + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.DefaultRouteHandlerResources", + "text": "DefaultRouteHandlerResources" + }, + " extends CoreRouteHandlerResources" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.DefaultRouteHandlerResources.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + } + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/server-route-repository", "id": "def-server.RouteState", @@ -312,7 +444,7 @@ "tags": [], "label": "RouteState", "description": [], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -326,7 +458,7 @@ "signature": [ "[endpoint: string]: any" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false } @@ -346,25 +478,31 @@ "signature": [ "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " | undefined | undefined; handler: ({}: any) => Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, " ? TRouteParamsRT extends ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " ? ClientRequestParamsOfType : {} : never" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -379,25 +517,31 @@ "signature": [ "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " | undefined | undefined; handler: ({}: any) => Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, " ? TRouteParamsRT extends ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " ? DecodedRequestParamsOfType : {} : never" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -412,7 +556,28 @@ "signature": [ "keyof TServerRouteRepository" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.IoTsParamsObject", + "type": "Type", + "tags": [], + "label": "IoTsParamsObject", + "description": [], + "signature": [ + "Omit<", + "Type", + "<{ path?: any; query?: any; body?: any; }, { path?: any; query?: any; body?: any; }, unknown>, \"encode\" | \"asEncoder\"> & { encode: ", + "Encode", + "; asEncoder: () => ", + "Encoder", + "; }" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -426,7 +591,13 @@ "description": [], "signature": [ "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", @@ -447,7 +618,7 @@ }, " | undefined; } | undefined> ? TWrappedResponseType : TReturnType : never" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -460,15 +631,23 @@ "label": "RouteParamsRT", "description": [], "signature": [ - "Omit<", - "Type", - "<{ path?: any; query?: any; body?: any; }, { path?: any; query?: any; body?: any; }, unknown>, \"encode\" | \"asEncoder\"> & { encode: ", - "Encode", - "; asEncoder: () => ", - "Encoder", - "; }" + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.IoTsParamsObject", + "text": "IoTsParamsObject" + }, + " | ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ZodParamsObject", + "text": "ZodParamsObject" + } ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -481,25 +660,25 @@ "label": "RouteRepositoryClient", "description": [], "signature": [ - "(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", + ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ClientRequestParamsOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions>) => Promise<", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ReturnOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ReturnOf", "text": "ReturnOf" }, ">" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -514,7 +693,7 @@ "signature": [ "TEndpoint" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false }, @@ -529,31 +708,31 @@ "RequiredKeys", "<", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ClientRequestParamsOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions> extends never ? [] | [", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ClientRequestParamsOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions] : [", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ClientRequestParamsOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions]" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false } @@ -570,15 +749,15 @@ "signature": [ "ValidateEndpoint extends true ? { endpoint: TEndpoint; params?: TRouteParamsRT | undefined; handler: ({}: TRouteHandlerResources & (TRouteParamsRT extends ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " ? DecodedRequestParamsOfType : {})) => Promise; } & TRouteCreateOptions : never" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -593,15 +772,15 @@ "signature": [ "{ [x: string]: { endpoint: string; params?: ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " | undefined; handler: ({}: any) => Promise; } & Record; }" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -610,77 +789,54 @@ "objects": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-server.routeValidationObject", + "id": "def-server.passThroughValidationObject", "type": "Object", "tags": [], - "label": "routeValidationObject", + "label": "passThroughValidationObject", "description": [], - "path": "packages/kbn-server-route-repository/src/route_validation_object.ts", + "path": "packages/kbn-server-route-repository/src/validation_objects.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-server.routeValidationObject.body", + "id": "def-server.passThroughValidationObject.body", "type": "Object", "tags": [], "label": "body", - "description": [ - "// `body` can be null, but `validate` expects non-nullable types\n// if any validation is defined. Not having validation currently\n// means we don't get the payload. See\n// https://github.com/elastic/kibana/issues/50179" - ], + "description": [], "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.Type", - "text": "Type" - }, - " | null>" + "Zod.ZodAny" ], - "path": "packages/kbn-server-route-repository/src/route_validation_object.ts", + "path": "packages/kbn-server-route-repository/src/validation_objects.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-server.routeValidationObject.params", + "id": "def-server.passThroughValidationObject.params", "type": "Object", "tags": [], "label": "params", "description": [], "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ObjectType", - "text": "ObjectType" - }, - "<{}>" + "Zod.ZodAny" ], - "path": "packages/kbn-server-route-repository/src/route_validation_object.ts", + "path": "packages/kbn-server-route-repository/src/validation_objects.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-server.routeValidationObject.query", + "id": "def-server.passThroughValidationObject.query", "type": "Object", "tags": [], "label": "query", "description": [], "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ObjectType", - "text": "ObjectType" - }, - "<{}>" + "Zod.ZodAny" ], - "path": "packages/kbn-server-route-repository/src/route_validation_object.ts", + "path": "packages/kbn-server-route-repository/src/validation_objects.ts", "deprecated": false, "trackAdoption": false } diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index dcbc0bbe2c3dd..0d11189a3ef25 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 31 | 0 | 30 | 1 | +| 38 | 0 | 38 | 0 | ## Server diff --git a/api_docs/kbn_server_route_repository_client.devdocs.json b/api_docs/kbn_server_route_repository_client.devdocs.json new file mode 100644 index 0000000000000..c4368889eea9e --- /dev/null +++ b/api_docs/kbn_server_route_repository_client.devdocs.json @@ -0,0 +1,122 @@ +{ + "id": "@kbn/server-route-repository-client", + "client": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.createRepositoryClient", + "type": "Function", + "tags": [], + "label": "createRepositoryClient", + "description": [], + "signature": [ + "(core: ", + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "public", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-public.CoreStart", + "text": "CoreStart" + }, + " | ", + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "public", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-public.CoreSetup", + "text": "CoreSetup" + }, + ") => { fetch: ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteRepositoryClient", + "text": "RouteRepositoryClient" + }, + "; }" + ], + "path": "packages/kbn-server-route-repository-client/src/create_repository_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.createRepositoryClient.$1", + "type": "CompoundType", + "tags": [], + "label": "core", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "public", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-public.CoreStart", + "text": "CoreStart" + }, + " | ", + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "public", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-public.CoreSetup", + "text": "CoreSetup" + }, + "" + ], + "path": "packages/kbn-server-route-repository-client/src/create_repository_client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.DefaultClientOptions", + "type": "Type", + "tags": [], + "label": "DefaultClientOptions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-browser", + "scope": "public", + "docId": "kibKbnCoreHttpBrowserPluginApi", + "section": "def-public.HttpFetchOptions", + "text": "HttpFetchOptions" + } + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_server_route_repository_client.mdx b/api_docs/kbn_server_route_repository_client.mdx new file mode 100644 index 0000000000000..1d83cb20af3b9 --- /dev/null +++ b/api_docs/kbn_server_route_repository_client.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnServerRouteRepositoryClientPluginApi +slug: /kibana-dev-docs/api/kbn-server-route-repository-client +title: "@kbn/server-route-repository-client" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/server-route-repository-client plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository-client'] +--- +import kbnServerRouteRepositoryClientObj from './kbn_server_route_repository_client.devdocs.json'; + + + +Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 3 | 0 | 3 | 0 | + +## Client + +### Functions + + +### Consts, variables and types + + diff --git a/api_docs/kbn_server_route_repository_utils.devdocs.json b/api_docs/kbn_server_route_repository_utils.devdocs.json index 5a60cb9e794bb..b5c3169828c1a 100644 --- a/api_docs/kbn_server_route_repository_utils.devdocs.json +++ b/api_docs/kbn_server_route_repository_utils.devdocs.json @@ -101,9 +101,509 @@ "initialIsOpen": false } ], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.DefaultRouteCreateOptions", + "type": "Interface", + "tags": [], + "label": "DefaultRouteCreateOptions", + "description": [], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.DefaultRouteCreateOptions.options", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.RouteConfigOptions", + "text": "RouteConfigOptions" + }, + "<", + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.RouteMethod", + "text": "RouteMethod" + }, + "> | undefined" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.DefaultRouteHandlerResources", + "type": "Interface", + "tags": [], + "label": "DefaultRouteHandlerResources", + "description": [], + "signature": [ + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.DefaultRouteHandlerResources", + "text": "DefaultRouteHandlerResources" + }, + " extends CoreRouteHandlerResources" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.DefaultRouteHandlerResources.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + } + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteState", + "type": "Interface", + "tags": [], + "label": "RouteState", + "description": [], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteState.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[endpoint: string]: any", + "description": [], + "signature": [ + "[endpoint: string]: any" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], "enums": [], - "misc": [], + "misc": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.ClientRequestParamsOf", + "type": "Type", + "tags": [], + "label": "ClientRequestParamsOf", + "description": [], + "signature": [ + "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " | undefined | undefined; handler: ({}: any) => Promise; } & ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, + " ? TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " ? ClientRequestParamsOfType : {} : never" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.DecodedRequestParamsOf", + "type": "Type", + "tags": [], + "label": "DecodedRequestParamsOf", + "description": [], + "signature": [ + "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " | undefined | undefined; handler: ({}: any) => Promise; } & ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, + " ? TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " ? DecodedRequestParamsOfType : {} : never" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.DefaultClientOptions", + "type": "Type", + "tags": [], + "label": "DefaultClientOptions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-browser", + "scope": "public", + "docId": "kibKbnCoreHttpBrowserPluginApi", + "section": "def-public.HttpFetchOptions", + "text": "HttpFetchOptions" + } + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.EndpointOf", + "type": "Type", + "tags": [], + "label": "EndpointOf", + "description": [], + "signature": [ + "keyof TServerRouteRepository" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.IoTsParamsObject", + "type": "Type", + "tags": [], + "label": "IoTsParamsObject", + "description": [], + "signature": [ + "Omit<", + "Type", + "<{ path?: any; query?: any; body?: any; }, { path?: any; query?: any; body?: any; }, unknown>, \"encode\" | \"asEncoder\"> & { encode: ", + "Encode", + "; asEncoder: () => ", + "Encoder", + "; }" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.ReturnOf", + "type": "Type", + "tags": [], + "label": "ReturnOf", + "description": [], + "signature": [ + "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, + " ? TReturnType extends ", + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.IKibanaResponse", + "text": "IKibanaResponse" + }, + " | Error | Buffer | ", + "Stream", + " | { message: string | Error; attributes?: ", + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.ResponseErrorAttributes", + "text": "ResponseErrorAttributes" + }, + " | undefined; } | undefined> ? TWrappedResponseType : TReturnType : never" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteParamsRT", + "type": "Type", + "tags": [], + "label": "RouteParamsRT", + "description": [], + "signature": [ + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.IoTsParamsObject", + "text": "IoTsParamsObject" + }, + " | ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ZodParamsObject", + "text": "ZodParamsObject" + } + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient", + "type": "Type", + "tags": [], + "label": "RouteRepositoryClient", + "description": [], + "signature": [ + ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>) => Promise<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ReturnOf", + "text": "ReturnOf" + }, + ">" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient.$1", + "type": "Uncategorized", + "tags": [], + "label": "endpoint", + "description": [], + "signature": [ + "TEndpoint" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient.$2", + "type": "Uncategorized", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "RequiredKeys", + "<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions> extends never ? [] | [", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions] : [", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions]" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.ServerRoute", + "type": "Type", + "tags": [], + "label": "ServerRoute", + "description": [], + "signature": [ + "ValidateEndpoint extends true ? { endpoint: TEndpoint; params?: TRouteParamsRT | undefined; handler: ({}: TRouteHandlerResources & (TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " ? DecodedRequestParamsOfType : {})) => Promise; } & TRouteCreateOptions : never" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.ServerRouteCreateOptions", + "type": "Type", + "tags": [], + "label": "ServerRouteCreateOptions", + "description": [], + "signature": [ + "{ [x: string]: any; }" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.ServerRouteHandlerResources", + "type": "Type", + "tags": [], + "label": "ServerRouteHandlerResources", + "description": [], + "signature": [ + "{ [x: string]: any; }" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.ServerRouteRepository", + "type": "Type", + "tags": [], + "label": "ServerRouteRepository", + "description": [], + "signature": [ + "{ [x: string]: { endpoint: string; params?: ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " | undefined; handler: ({}: any) => Promise; } & Record; }" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.ZodParamsObject", + "type": "Type", + "tags": [], + "label": "ZodParamsObject", + "description": [], + "signature": [ + "Zod.ZodObject<{ path?: any; query?: any; body?: any; }, Zod.UnknownKeysParam, Zod.ZodTypeAny, { query?: any; body?: any; path?: any; }, { query?: any; body?: any; path?: any; }>" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "objects": [] } } \ No newline at end of file diff --git a/api_docs/kbn_server_route_repository_utils.mdx b/api_docs/kbn_server_route_repository_utils.mdx index 54e0938623d67..23891106ad167 100644 --- a/api_docs/kbn_server_route_repository_utils.mdx +++ b/api_docs/kbn_server_route_repository_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository-utils title: "@kbn/server-route-repository-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository-utils plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository-utils'] --- import kbnServerRouteRepositoryUtilsObj from './kbn_server_route_repository_utils.devdocs.json'; @@ -21,10 +21,16 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 5 | 0 | 5 | 0 | +| 26 | 0 | 26 | 0 | ## Common ### Functions +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index ce383973e02de..61dafac929b27 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-08-09 +date: 2024-08-27 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 51976aeada24d..c1e8df59b84d8 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-08-09 +date: 2024-08-27 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 03346f1128546..f70c33f9b8247 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-08-09 +date: 2024-08-27 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 d8e1b331ff958..442c12f67f7f2 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-08-09 +date: 2024-08-27 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 f63210dcce3c5..45be2d441bb8a 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-08-09 +date: 2024-08-27 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 b77df2cc86320..324655fc2323d 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-08-09 +date: 2024-08-27 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 35796b57b0599..2d3e2564915ef 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-08-09 +date: 2024-08-27 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 0f51bd3433a54..aae967f68a3f6 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-08-09 +date: 2024-08-27 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 3cb82b7af71ed..094a565d51d2d 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-08-09 +date: 2024-08-27 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 68cd659c14da0..7640ea9e3ca91 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-08-09 +date: 2024-08-27 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 ddb10f980cc7d..f5c6d7eea87cb 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-08-09 +date: 2024-08-27 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 0c032e48c014a..73601f7cdaddd 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_shared_ux_chrome_navigation.devdocs.json index 3b673465c3055..0adc32c67e70c 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.devdocs.json +++ b/api_docs/kbn_shared_ux_chrome_navigation.devdocs.json @@ -464,7 +464,7 @@ "section": "def-public.ChromeProjectNavigationNode", "text": "ChromeProjectNavigationNode" }, - ", \"id\" | \"children\" | \"path\" | \"sideNavStatus\"> & { title: React.ReactNode; }" + ", \"id\" | \"children\" | \"path\" | \"sideNavStatus\" | \"deepLink\"> & { title: React.ReactNode; }" ], "path": "packages/shared-ux/chrome/navigation/src/ui/components/panel/types.ts", "deprecated": false, diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index 56f093c4688c6..a377faa46c293 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-08-09 +date: 2024-08-27 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 301470d5c9882..e32610fbef5e1 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-08-09 +date: 2024-08-27 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 52acc4d1b2639..f57e2086cebd6 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-08-09 +date: 2024-08-27 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 aa7d166898a2d..b5a4e93b87331 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-08-09 +date: 2024-08-27 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 7b524e1a65ea7..77c95a810948c 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-08-09 +date: 2024-08-27 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 f8c7d9c4668ab..917b5b2333728 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-08-09 +date: 2024-08-27 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 ca75b3b573c4f..5ab094f0c0998 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-08-09 +date: 2024-08-27 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 ad18cbc4b95f2..09de63ec5b353 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-08-09 +date: 2024-08-27 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 68ff7db54045d..a374a425114b1 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-08-09 +date: 2024-08-27 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 416222fe0f420..1bdf08c90ee82 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-08-09 +date: 2024-08-27 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 ff0df39065e16..9c5ac68c6c303 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-08-09 +date: 2024-08-27 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 d8991488c0dd6..bcf34b6ef3392 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-08-09 +date: 2024-08-27 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 75f556420d56c..d0aed0b2316a7 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-08-09 +date: 2024-08-27 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 4da52f40a26ca..5b70a207847bd 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-08-09 +date: 2024-08-27 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 00630609117a2..7a21b8493ca77 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-08-09 +date: 2024-08-27 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 e0fde1a8cafff..0d1cf5386c1ca 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-08-09 +date: 2024-08-27 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 009f561f63c03..b5fac87442b4a 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-08-09 +date: 2024-08-27 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 ed13cb061ea95..68321851bfd22 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-08-09 +date: 2024-08-27 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 84617395fe9a3..710fde66a173c 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-08-09 +date: 2024-08-27 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 9fd250b69e3df..8ee8c50122e85 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-08-09 +date: 2024-08-27 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 ea30e7e0f16ca..dc2d925b0b96f 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-08-09 +date: 2024-08-27 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 155c09856b70b..85b6a53f72741 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-08-09 +date: 2024-08-27 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 4bf5b914cb22e..560c9d0489351 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-08-09 +date: 2024-08-27 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 8c84a656ab65d..428b867b21446 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-08-09 +date: 2024-08-27 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 deefd7e2a7845..7ffa3ea4574ff 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-08-09 +date: 2024-08-27 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 09c30f5ab939b..d5c6199d4cc4c 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-08-09 +date: 2024-08-27 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 fd32b528733c2..c9cdda33b1e55 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-08-09 +date: 2024-08-27 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 b053e0e22afba..331eb2df1de59 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-08-09 +date: 2024-08-27 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 f3d5a5b3c1db6..422fe9392d236 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-08-09 +date: 2024-08-27 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 550d9812a14eb..68881e7842119 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-08-09 +date: 2024-08-27 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 f620b34a00479..5a6daa4d86af3 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-08-09 +date: 2024-08-27 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 911369ac4943e..fb7e548678b19 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-08-09 +date: 2024-08-27 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 fdf87392677a3..122ff503d0dd4 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-08-09 +date: 2024-08-27 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_table_persist.devdocs.json b/api_docs/kbn_shared_ux_table_persist.devdocs.json new file mode 100644 index 0000000000000..470b02bafd6c9 --- /dev/null +++ b/api_docs/kbn_shared_ux_table_persist.devdocs.json @@ -0,0 +1,86 @@ +{ + "id": "@kbn/shared-ux-table-persist", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/shared-ux-table-persist", + "id": "def-common.useEuiTablePersist", + "type": "Function", + "tags": [], + "label": "useEuiTablePersist", + "description": [ + "\nA hook that stores and retrieves from local storage the table page size and sort criteria.\nReturns the persisting page size and sort and the onTableChange handler that should be passed\nas props to an Eui table component." + ], + "signature": [ + "({ tableId, customOnTableChange, initialSort, initialPageSize, pageSizeOptions, }: ", + "EuiTablePersistProps", + ") => { pageSize: number; sorting: boolean | { sort: ", + "PropertySort", + "; }; onTableChange: (nextValues: ", + "Criteria", + ") => void; }" + ], + "path": "packages/shared-ux/table_persist/src/use_table_persist.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/shared-ux-table-persist", + "id": "def-common.useEuiTablePersist.$1", + "type": "Object", + "tags": [], + "label": "{\n tableId,\n customOnTableChange,\n initialSort,\n initialPageSize,\n pageSizeOptions,\n}", + "description": [], + "signature": [ + "EuiTablePersistProps", + "" + ], + "path": "packages/shared-ux/table_persist/src/use_table_persist.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/shared-ux-table-persist", + "id": "def-common.DEFAULT_PAGE_SIZE_OPTIONS", + "type": "Array", + "tags": [], + "label": "DEFAULT_PAGE_SIZE_OPTIONS", + "description": [], + "signature": [ + "number[]" + ], + "path": "packages/shared-ux/table_persist/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_shared_ux_table_persist.mdx b/api_docs/kbn_shared_ux_table_persist.mdx new file mode 100644 index 0000000000000..24d4af745e4de --- /dev/null +++ b/api_docs/kbn_shared_ux_table_persist.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnSharedUxTablePersistPluginApi +slug: /kibana-dev-docs/api/kbn-shared-ux-table-persist +title: "@kbn/shared-ux-table-persist" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/shared-ux-table-persist plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-table-persist'] +--- +import kbnSharedUxTablePersistObj from './kbn_shared_ux_table_persist.devdocs.json'; + + + +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 3 | 0 | 2 | 2 | + +## Common + +### Functions + + +### Consts, variables and types + + diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 509fe1e863de9..2856cf3fc5f1a 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-08-09 +date: 2024-08-27 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.mdx b/api_docs/kbn_slo_schema.mdx index ffaecd43fb361..de90e78bbe94b 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index b7ac8544c18d5..634de2e778da3 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-08-09 +date: 2024-08-27 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 bf30651905a68..5605e34172e00 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-08-09 +date: 2024-08-27 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 b19632c57f329..7d4509c2d6574 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-08-09 +date: 2024-08-27 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 9f0093dbdb0e2..f4db0b702a9ea 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-08-09 +date: 2024-08-27 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 e1ffd1f71bdd4..891f3a4febf4c 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_synthetics_e2e.mdx b/api_docs/kbn_synthetics_e2e.mdx index 12f115f2dbe7e..1e145f1a18644 100644 --- a/api_docs/kbn_synthetics_e2e.mdx +++ b/api_docs/kbn_synthetics_e2e.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-synthetics-e2e title: "@kbn/synthetics-e2e" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/synthetics-e2e plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/synthetics-e2e'] --- import kbnSyntheticsE2eObj from './kbn_synthetics_e2e.devdocs.json'; diff --git a/api_docs/kbn_synthetics_private_location.devdocs.json b/api_docs/kbn_synthetics_private_location.devdocs.json new file mode 100644 index 0000000000000..6b8de96db3d57 --- /dev/null +++ b/api_docs/kbn_synthetics_private_location.devdocs.json @@ -0,0 +1,314 @@ +{ + "id": "@kbn/synthetics-private-location", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.cli", + "type": "Function", + "tags": [], + "label": "cli", + "description": [], + "signature": [ + "(cliOptions: ", + { + "pluginId": "@kbn/synthetics-private-location", + "scope": "common", + "docId": "kibKbnSyntheticsPrivateLocationPluginApi", + "section": "def-common.CliOptions", + "text": "CliOptions" + }, + " | undefined) => Promise" + ], + "path": "x-pack/packages/kbn-synthetics-private-location/src/cli.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.cli.$1", + "type": "Object", + "tags": [], + "label": "cliOptions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/synthetics-private-location", + "scope": "common", + "docId": "kibKbnSyntheticsPrivateLocationPluginApi", + "section": "def-common.CliOptions", + "text": "CliOptions" + }, + " | undefined" + ], + "path": "x-pack/packages/kbn-synthetics-private-location/src/cli.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.run", + "type": "Function", + "tags": [], + "label": "run", + "description": [], + "signature": [ + "(options: ", + { + "pluginId": "@kbn/synthetics-private-location", + "scope": "common", + "docId": "kibKbnSyntheticsPrivateLocationPluginApi", + "section": "def-common.CliOptions", + "text": "CliOptions" + }, + ", logger: ", + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + }, + ") => Promise" + ], + "path": "x-pack/packages/kbn-synthetics-private-location/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.run.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "@kbn/synthetics-private-location", + "scope": "common", + "docId": "kibKbnSyntheticsPrivateLocationPluginApi", + "section": "def-common.CliOptions", + "text": "CliOptions" + } + ], + "path": "x-pack/packages/kbn-synthetics-private-location/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.run.$2", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + } + ], + "path": "x-pack/packages/kbn-synthetics-private-location/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.CliOptions", + "type": "Interface", + "tags": [], + "label": "CliOptions", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.CliOptions.locationName", + "type": "string", + "tags": [], + "label": "locationName", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.CliOptions.agentPolicyName", + "type": "string", + "tags": [], + "label": "agentPolicyName", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.CliOptions.kibanaUrl", + "type": "string", + "tags": [], + "label": "kibanaUrl", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.CliOptions.kibanaUsername", + "type": "string", + "tags": [], + "label": "kibanaUsername", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.CliOptions.kibanaPassword", + "type": "string", + "tags": [], + "label": "kibanaPassword", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.CliOptions.elasticsearchHost", + "type": "string", + "tags": [], + "label": "elasticsearchHost", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [], + "objects": [ + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.DEFAULTS", + "type": "Object", + "tags": [], + "label": "DEFAULTS", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.DEFAULTS.LOCATION_NAME", + "type": "string", + "tags": [], + "label": "LOCATION_NAME", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/constants.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.DEFAULTS.AGENT_POLICY_NAME", + "type": "string", + "tags": [], + "label": "AGENT_POLICY_NAME", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/constants.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.DEFAULTS.ELASTICSEARCH_HOST", + "type": "string", + "tags": [], + "label": "ELASTICSEARCH_HOST", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/constants.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.DEFAULTS.KIBANA_URL", + "type": "string", + "tags": [], + "label": "KIBANA_URL", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/constants.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.DEFAULTS.KIBANA_USERNAME", + "type": "string", + "tags": [], + "label": "KIBANA_USERNAME", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/constants.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/synthetics-private-location", + "id": "def-common.DEFAULTS.KIBANA_PASSWORD", + "type": "string", + "tags": [], + "label": "KIBANA_PASSWORD", + "description": [], + "path": "x-pack/packages/kbn-synthetics-private-location/src/constants.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/kbn_synthetics_private_location.mdx b/api_docs/kbn_synthetics_private_location.mdx new file mode 100644 index 0000000000000..84664ce4602b8 --- /dev/null +++ b/api_docs/kbn_synthetics_private_location.mdx @@ -0,0 +1,36 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnSyntheticsPrivateLocationPluginApi +slug: /kibana-dev-docs/api/kbn-synthetics-private-location +title: "@kbn/synthetics-private-location" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/synthetics-private-location plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/synthetics-private-location'] +--- +import kbnSyntheticsPrivateLocationObj from './kbn_synthetics_private_location.devdocs.json'; + + + +Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 19 | 0 | 19 | 0 | + +## Common + +### Objects + + +### Functions + + +### Interfaces + + diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index e0a07799c07f6..2eb6cc14c7264 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-08-09 +date: 2024-08-27 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 10570bb82a120..a753af4adf4ba 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-08-09 +date: 2024-08-27 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 ce326a644d56d..2bd09dcd13d06 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-08-09 +date: 2024-08-27 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 d4791f44e8c64..ab7d1a7acb987 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-08-09 +date: 2024-08-27 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 ed5fab2876211..e7f8d05bea5f8 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-08-09 +date: 2024-08-27 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 bd2353284b1df..7915972645781 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-08-09 +date: 2024-08-27 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 4846098065625..c4e829ee77482 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange'] --- import kbnTimerangeObj from './kbn_timerange.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.devdocs.json b/api_docs/kbn_tooling_log.devdocs.json index 14df922644371..6321db886076e 100644 --- a/api_docs/kbn_tooling_log.devdocs.json +++ b/api_docs/kbn_tooling_log.devdocs.json @@ -620,7 +620,7 @@ "tags": [], "label": "write", "description": [ - "\nCalled by ToolingLog, extends messages with the source if message includes one." + "\nCalled by ToolingLog, extends messages with the source and context if message include it." ], "signature": [ "(msg: ", @@ -1086,6 +1086,22 @@ "path": "packages/kbn-tooling-log/src/message.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/tooling-log", + "id": "def-common.Message.context", + "type": "string", + "tags": [], + "label": "context", + "description": [ + "an identifier of the logging entity" + ], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-tooling-log/src/message.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -1139,6 +1155,22 @@ "path": "packages/kbn-tooling-log/src/tooling_log.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/tooling-log", + "id": "def-common.ToolingLogOptions.context", + "type": "string", + "tags": [], + "label": "context", + "description": [ + "\nA string, conveniently the name of the script,\nthat will be prepended to log messages.\nCan be useful to identify which entity is emitting the log." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-tooling-log/src/tooling_log.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 6a1ba249ead24..df8071ff2bae3 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kiban | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 72 | 0 | 55 | 0 | +| 74 | 0 | 55 | 0 | ## Common diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx index 20bdb0582855e..784c136482a24 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_try_in_console.devdocs.json index 272e1b8129dce..a414e8b39ec76 100644 --- a/api_docs/kbn_try_in_console.devdocs.json +++ b/api_docs/kbn_try_in_console.devdocs.json @@ -40,7 +40,7 @@ "id": "def-common.TryInConsoleButton.$1", "type": "Object", "tags": [], - "label": "{\n request,\n application,\n consolePlugin,\n sharePlugin,\n content = TRY_IN_CONSOLE,\n showIcon = true,\n type = 'emptyButton',\n}", + "label": "{\n request,\n application,\n consolePlugin,\n sharePlugin,\n content = RUN_IN_CONSOLE,\n showIcon = true,\n type = 'emptyButton',\n}", "description": [], "signature": [ "TryInConsoleButtonProps" diff --git a/api_docs/kbn_try_in_console.mdx b/api_docs/kbn_try_in_console.mdx index 49bdc67c547f5..56f7693e17141 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-08-09 +date: 2024-08-27 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 0d7f43d8a4aee..01370ca6bc79c 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-08-09 +date: 2024-08-27 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 c34f69600296c..37b85246847fe 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-08-09 +date: 2024-08-27 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 9616543f1d14c..24885548ccb26 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-08-09 +date: 2024-08-27 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 976e97f043fd2..4745ae503988a 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-08-09 +date: 2024-08-27 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 3137a1ee30333..32a3ec515d213 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_unified_data_table.devdocs.json index 00dea271a943c..ff7fcf52ad553 100644 --- a/api_docs/kbn_unified_data_table.devdocs.json +++ b/api_docs/kbn_unified_data_table.devdocs.json @@ -508,7 +508,7 @@ "label": "UnifiedDataTable", "description": [], "signature": [ - "({ ariaLabelledBy, columns, columnsMeta, showColumnTokens, configHeaderRowHeight, headerRowHeightState, onUpdateHeaderRowHeight, controlColumnIds, rowAdditionalLeadingControls, dataView, loadingState, onFilter, onResize, onSetColumns, onSort, rows, searchDescription, searchTitle, settings, showTimeCol, showFullScreenButton, sort, useNewFieldsApi, isSortEnabled, isPaginationEnabled, cellActionsTriggerId, className, rowHeightState, onUpdateRowHeight, maxAllowedSampleSize, sampleSizeState, onUpdateSampleSize, isPlainRecord, rowsPerPageState, onUpdateRowsPerPage, onFieldEdited, services, renderCustomGridBody, renderCustomToolbar, externalControlColumns, trailingControlColumns, totalHits, onFetchMoreRecords, renderDocumentView, setExpandedDoc, expandedDoc, configRowHeight, showMultiFields, maxDocFieldsDisplayed, externalAdditionalControls, rowsPerPageOptions, visibleCellActions, externalCustomRenderers, additionalFieldGroups, consumer, componentsTourSteps, gridStyleOverride, rowLineHeightOverride, cellActionsMetadata, customGridColumnsConfiguration, enableComparisonMode, cellContext, renderCellPopover, getRowIndicator, }: ", + "({ ariaLabelledBy, columns, columnsMeta, showColumnTokens, configHeaderRowHeight, headerRowHeightState, onUpdateHeaderRowHeight, controlColumnIds, rowAdditionalLeadingControls, dataView, loadingState, onFilter, onResize, onSetColumns, onSort, rows, searchDescription, searchTitle, settings, showTimeCol, showFullScreenButton, sort, useNewFieldsApi, isSortEnabled, isPaginationEnabled, cellActionsTriggerId, className, rowHeightState, onUpdateRowHeight, maxAllowedSampleSize, sampleSizeState, onUpdateSampleSize, isPlainRecord, rowsPerPageState, onUpdateRowsPerPage, onFieldEdited, services, renderCustomGridBody, renderCustomToolbar, externalControlColumns, trailingControlColumns, totalHits, onFetchMoreRecords, renderDocumentView, setExpandedDoc, expandedDoc, configRowHeight, showMultiFields, maxDocFieldsDisplayed, externalAdditionalControls, rowsPerPageOptions, visibleCellActions, externalCustomRenderers, additionalFieldGroups, consumer, componentsTourSteps, gridStyleOverride, rowLineHeightOverride, cellActionsMetadata, customGridColumnsConfiguration, enableComparisonMode, cellContext, renderCellPopover, getRowIndicator, dataGridDensityState, onUpdateDataGridDensity, }: ", { "pluginId": "@kbn/unified-data-table", "scope": "public", @@ -527,7 +527,7 @@ "id": "def-public.UnifiedDataTable.$1", "type": "Object", "tags": [], - "label": "{\n ariaLabelledBy,\n columns,\n columnsMeta,\n showColumnTokens,\n configHeaderRowHeight,\n headerRowHeightState,\n onUpdateHeaderRowHeight,\n controlColumnIds = CONTROL_COLUMN_IDS_DEFAULT,\n rowAdditionalLeadingControls,\n dataView,\n loadingState,\n onFilter,\n onResize,\n onSetColumns,\n onSort,\n rows,\n searchDescription,\n searchTitle,\n settings,\n showTimeCol,\n showFullScreenButton = true,\n sort,\n useNewFieldsApi,\n isSortEnabled = true,\n isPaginationEnabled = true,\n cellActionsTriggerId,\n className,\n rowHeightState,\n onUpdateRowHeight,\n maxAllowedSampleSize,\n sampleSizeState,\n onUpdateSampleSize,\n isPlainRecord = false,\n rowsPerPageState,\n onUpdateRowsPerPage,\n onFieldEdited,\n services,\n renderCustomGridBody,\n renderCustomToolbar,\n externalControlColumns, // TODO: deprecate in favor of rowAdditionalLeadingControls\n trailingControlColumns, // TODO: deprecate in favor of rowAdditionalLeadingControls\n totalHits,\n onFetchMoreRecords,\n renderDocumentView,\n setExpandedDoc,\n expandedDoc,\n configRowHeight,\n showMultiFields = true,\n maxDocFieldsDisplayed = 50,\n externalAdditionalControls,\n rowsPerPageOptions,\n visibleCellActions,\n externalCustomRenderers,\n additionalFieldGroups,\n consumer = 'discover',\n componentsTourSteps,\n gridStyleOverride,\n rowLineHeightOverride,\n cellActionsMetadata,\n customGridColumnsConfiguration,\n enableComparisonMode,\n cellContext,\n renderCellPopover,\n getRowIndicator,\n}", + "label": "{\n ariaLabelledBy,\n columns,\n columnsMeta,\n showColumnTokens,\n configHeaderRowHeight,\n headerRowHeightState,\n onUpdateHeaderRowHeight,\n controlColumnIds = CONTROL_COLUMN_IDS_DEFAULT,\n rowAdditionalLeadingControls,\n dataView,\n loadingState,\n onFilter,\n onResize,\n onSetColumns,\n onSort,\n rows,\n searchDescription,\n searchTitle,\n settings,\n showTimeCol,\n showFullScreenButton = true,\n sort,\n useNewFieldsApi,\n isSortEnabled = true,\n isPaginationEnabled = true,\n cellActionsTriggerId,\n className,\n rowHeightState,\n onUpdateRowHeight,\n maxAllowedSampleSize,\n sampleSizeState,\n onUpdateSampleSize,\n isPlainRecord = false,\n rowsPerPageState,\n onUpdateRowsPerPage,\n onFieldEdited,\n services,\n renderCustomGridBody,\n renderCustomToolbar,\n externalControlColumns, // TODO: deprecate in favor of rowAdditionalLeadingControls\n trailingControlColumns, // TODO: deprecate in favor of rowAdditionalLeadingControls\n totalHits,\n onFetchMoreRecords,\n renderDocumentView,\n setExpandedDoc,\n expandedDoc,\n configRowHeight,\n showMultiFields = true,\n maxDocFieldsDisplayed = 50,\n externalAdditionalControls,\n rowsPerPageOptions,\n visibleCellActions,\n externalCustomRenderers,\n additionalFieldGroups,\n consumer = 'discover',\n componentsTourSteps,\n gridStyleOverride,\n rowLineHeightOverride,\n cellActionsMetadata,\n customGridColumnsConfiguration,\n enableComparisonMode,\n cellContext,\n renderCellPopover,\n getRowIndicator,\n dataGridDensityState,\n onUpdateDataGridDensity,\n}", "description": [], "signature": [ { @@ -555,7 +555,15 @@ "label": "useColumns", "description": [], "signature": [ - "({ capabilities, dataView, dataViews, setAppState, useNewFieldsApi, columns, sort, defaultOrder, }: UseColumnsProps) => { columns: string[]; onAddColumn: (columnName: string) => void; onRemoveColumn: (columnName: string) => void; onMoveColumn: (columnName: string, newIndex: number) => void; onSetColumns: (nextColumns: string[], hideTimeColumn: boolean) => void; }" + "({ capabilities, dataView, dataViews, setAppState, useNewFieldsApi, columns, sort, defaultOrder, settings, }: ", + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.UseColumnsProps", + "text": "UseColumnsProps" + }, + ") => { columns: string[]; onAddColumn: (columnName: string) => void; onRemoveColumn: (columnName: string) => void; onMoveColumn: (columnName: string, newIndex: number) => void; onSetColumns: (nextColumns: string[], hideTimeColumn: boolean) => void; }" ], "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", "deprecated": false, @@ -566,10 +574,16 @@ "id": "def-public.useColumns.$1", "type": "Object", "tags": [], - "label": "{\n capabilities,\n dataView,\n dataViews,\n setAppState,\n useNewFieldsApi,\n columns,\n sort,\n defaultOrder = 'desc',\n}", + "label": "{\n capabilities,\n dataView,\n dataViews,\n setAppState,\n useNewFieldsApi,\n columns,\n sort,\n defaultOrder = 'desc',\n settings,\n}", "description": [], "signature": [ - "UseColumnsProps" + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.UseColumnsProps", + "text": "UseColumnsProps" + } ], "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", "deprecated": false, @@ -1314,10 +1328,10 @@ "tags": [], "label": "onResize", "description": [ - "\nFunction triggered when a column is resized by the user" + "\nFunction triggered when a column is resized by the user, passes `undefined` for auto-width" ], "signature": [ - "((colSettings: { columnId: string; width: number; }) => void) | undefined" + "((colSettings: { columnId: string; width: number | undefined; }) => void) | undefined" ], "path": "packages/kbn-unified-data-table/src/components/data_table.tsx", "deprecated": false, @@ -1352,6 +1366,9 @@ "tags": [], "label": "width", "description": [], + "signature": [ + "number | undefined" + ], "path": "packages/kbn-unified-data-table/src/components/data_table.tsx", "deprecated": false, "trackAdoption": false @@ -1750,6 +1767,77 @@ ], "returnComment": [] }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UnifiedDataTableProps.dataGridDensityState", + "type": "CompoundType", + "tags": [], + "label": "dataGridDensityState", + "description": [ + "\nDensity from state" + ], + "signature": [ + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.DataGridDensity", + "text": "DataGridDensity" + }, + " | undefined" + ], + "path": "packages/kbn-unified-data-table/src/components/data_table.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UnifiedDataTableProps.onUpdateDataGridDensity", + "type": "Function", + "tags": [], + "label": "onUpdateDataGridDensity", + "description": [ + "\nCallback when the data grid density configuration is modified" + ], + "signature": [ + "((dataGridDensity: ", + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.DataGridDensity", + "text": "DataGridDensity" + }, + ") => void) | undefined" + ], + "path": "packages/kbn-unified-data-table/src/components/data_table.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UnifiedDataTableProps.onUpdateDataGridDensity.$1", + "type": "Enum", + "tags": [], + "label": "dataGridDensity", + "description": [], + "signature": [ + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.DataGridDensity", + "text": "DataGridDensity" + } + ], + "path": "packages/kbn-unified-data-table/src/components/data_table.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "@kbn/unified-data-table", "id": "def-public.UnifiedDataTableProps.isPlainRecord", @@ -2712,9 +2800,256 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps", + "type": "Interface", + "tags": [], + "label": "UseColumnsProps", + "description": [], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.capabilities", + "type": "Object", + "tags": [], + "label": "capabilities", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-capabilities-common", + "scope": "common", + "docId": "kibKbnCoreCapabilitiesCommonPluginApi", + "section": "def-common.Capabilities", + "text": "Capabilities" + } + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.dataView", + "type": "Object", + "tags": [], + "label": "dataView", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + } + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.dataViews", + "type": "Object", + "tags": [], + "label": "dataViews", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "public", + "docId": "kibDataViewsPluginApi", + "section": "def-public.DataViewsServicePublic", + "text": "DataViewsServicePublic" + } + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.useNewFieldsApi", + "type": "boolean", + "tags": [], + "label": "useNewFieldsApi", + "description": [], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.setAppState", + "type": "Function", + "tags": [], + "label": "setAppState", + "description": [], + "signature": [ + "(state: { columns: string[]; sort?: string[][] | undefined; settings?: ", + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.UnifiedDataTableSettings", + "text": "UnifiedDataTableSettings" + }, + " | undefined; }) => void" + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.setAppState.$1", + "type": "Object", + "tags": [], + "label": "state", + "description": [], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.setAppState.$1.columns", + "type": "Array", + "tags": [], + "label": "columns", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.setAppState.$1.sort", + "type": "Array", + "tags": [], + "label": "sort", + "description": [], + "signature": [ + "string[][] | undefined" + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.setAppState.$1.settings", + "type": "Object", + "tags": [], + "label": "settings", + "description": [], + "signature": [ + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.UnifiedDataTableSettings", + "text": "UnifiedDataTableSettings" + }, + " | undefined" + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.columns", + "type": "Array", + "tags": [], + "label": "columns", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.sort", + "type": "Array", + "tags": [], + "label": "sort", + "description": [], + "signature": [ + "string[][] | undefined" + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.defaultOrder", + "type": "string", + "tags": [], + "label": "defaultOrder", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.UseColumnsProps.settings", + "type": "Object", + "tags": [], + "label": "settings", + "description": [], + "signature": [ + { + "pluginId": "@kbn/unified-data-table", + "scope": "public", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-public.UnifiedDataTableSettings", + "text": "UnifiedDataTableSettings" + }, + " | undefined" + ], + "path": "packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [ + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-public.DataGridDensity", + "type": "Enum", + "tags": [], + "label": "DataGridDensity", + "description": [], + "path": "packages/kbn-unified-data-table/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/unified-data-table", "id": "def-public.DataLoadingState", @@ -2810,7 +3145,7 @@ "section": "def-public.FieldFormatsStart", "text": "FieldFormatsStart" }, - "; closePopover: () => void; }" + "; closePopover: () => void; isCompressed?: boolean | undefined; }" ], "path": "packages/kbn-unified-data-table/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index 0d678dee656b2..c913eec4ea995 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table'] --- import kbnUnifiedDataTableObj from './kbn_unified_data_table.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 | |-------------------|-----------|------------------------|-----------------| -| 166 | 0 | 92 | 2 | +| 184 | 0 | 108 | 2 | ## Client diff --git a/api_docs/kbn_unified_doc_viewer.devdocs.json b/api_docs/kbn_unified_doc_viewer.devdocs.json index 62463520b7db6..784e80f8d5615 100644 --- a/api_docs/kbn_unified_doc_viewer.devdocs.json +++ b/api_docs/kbn_unified_doc_viewer.devdocs.json @@ -295,7 +295,7 @@ "label": "FieldName", "description": [], "signature": [ - "({\n fieldName,\n fieldMapping,\n fieldType,\n fieldIconProps,\n scripted = false,\n highlight = '',\n isPinned = false,\n}: Props) => JSX.Element" + "({\n fieldName,\n fieldMapping,\n fieldType,\n fieldIconProps,\n scripted = false,\n highlight = '',\n}: Props) => JSX.Element" ], "path": "packages/kbn-unified-doc-viewer/src/components/field_name/field_name.tsx", "deprecated": false, @@ -306,7 +306,7 @@ "id": "def-common.FieldName.$1", "type": "Object", "tags": [], - "label": "{\n fieldName,\n fieldMapping,\n fieldType,\n fieldIconProps,\n scripted = false,\n highlight = '',\n isPinned = false,\n}", + "label": "{\n fieldName,\n fieldMapping,\n fieldType,\n fieldIconProps,\n scripted = false,\n highlight = '',\n}", "description": [], "signature": [ "Props" diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index dd40ab84f750a..6645b4a75c39e 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-08-09 +date: 2024-08-27 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 59912836c80d2..6dda726eb2f67 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-08-09 +date: 2024-08-27 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 8093cd5714992..8038c5607f6f2 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge'] --- import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json'; diff --git a/api_docs/kbn_unsaved_changes_prompt.mdx b/api_docs/kbn_unsaved_changes_prompt.mdx index f5b13b98e6dd1..3a8e0c8bc43de 100644 --- a/api_docs/kbn_unsaved_changes_prompt.mdx +++ b/api_docs/kbn_unsaved_changes_prompt.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-prompt title: "@kbn/unsaved-changes-prompt" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unsaved-changes-prompt plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-prompt'] --- import kbnUnsavedChangesPromptObj from './kbn_unsaved_changes_prompt.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index aa9725cbfdc65..3730028bc7038 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-08-09 +date: 2024-08-27 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 5f38a00aac58b..6e23bd09e9281 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-08-09 +date: 2024-08-27 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 cf4dd152185e4..b5360f7bb8a9b 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-08-09 +date: 2024-08-27 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 6911a2336aa89..eba9cbe479837 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-08-09 +date: 2024-08-27 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 69395d6553f8f..d6ea70a2aed24 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-08-09 +date: 2024-08-27 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 654a50048ed8c..6e44040dfdee4 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-08-09 +date: 2024-08-27 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 168f64dc4d557..31ad7698725dd 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-08-09 +date: 2024-08-27 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 f5de7e0e3da0b..00b688c24559a 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-08-09 +date: 2024-08-27 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.devdocs.json b/api_docs/kbn_yarn_lock_validator.devdocs.json index a23de912a27b9..316310a6c43a7 100644 --- a/api_docs/kbn_yarn_lock_validator.devdocs.json +++ b/api_docs/kbn_yarn_lock_validator.devdocs.json @@ -19,6 +19,84 @@ "common": { "classes": [], "functions": [ + { + "parentPluginId": "@kbn/yarn-lock-validator", + "id": "def-common.findProductionDependencies", + "type": "Function", + "tags": [], + "label": "findProductionDependencies", + "description": [ + "\nGet a list of the all production dependencies for Kibana by starting with the\ndependencies listed in package.json and then traversing deeply into the transitive\ndependencies as declared by the yarn.lock file." + ], + "signature": [ + "(log: ", + { + "pluginId": "@kbn/some-dev-log", + "scope": "common", + "docId": "kibKbnSomeDevLogPluginApi", + "section": "def-common.SomeDevLog", + "text": "SomeDevLog" + }, + ", yarnLock: ", + { + "pluginId": "@kbn/yarn-lock-validator", + "scope": "common", + "docId": "kibKbnYarnLockValidatorPluginApi", + "section": "def-common.YarnLock", + "text": "YarnLock" + }, + ") => Map" + ], + "path": "packages/kbn-yarn-lock-validator/src/find_production_dependencies.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/yarn-lock-validator", + "id": "def-common.findProductionDependencies.$1", + "type": "Object", + "tags": [], + "label": "log", + "description": [], + "signature": [ + { + "pluginId": "@kbn/some-dev-log", + "scope": "common", + "docId": "kibKbnSomeDevLogPluginApi", + "section": "def-common.SomeDevLog", + "text": "SomeDevLog" + } + ], + "path": "packages/kbn-yarn-lock-validator/src/find_production_dependencies.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/yarn-lock-validator", + "id": "def-common.findProductionDependencies.$2", + "type": "Object", + "tags": [], + "label": "yarnLock", + "description": [], + "signature": [ + { + "pluginId": "@kbn/yarn-lock-validator", + "scope": "common", + "docId": "kibKbnYarnLockValidatorPluginApi", + "section": "def-common.YarnLock", + "text": "YarnLock" + } + ], + "path": "packages/kbn-yarn-lock-validator/src/find_production_dependencies.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/yarn-lock-validator", "id": "def-common.readYarnLock", diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 4ce37322d2d25..957417d1279bd 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kiban | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 6 | 0 | 2 | 0 | +| 9 | 0 | 4 | 0 | ## Common diff --git a/api_docs/kbn_zod.devdocs.json b/api_docs/kbn_zod.devdocs.json index 1c160258f9b56..4103b5ce494a8 100644 --- a/api_docs/kbn_zod.devdocs.json +++ b/api_docs/kbn_zod.devdocs.json @@ -13452,7 +13452,7 @@ "label": "getParsedType", "description": [], "signature": [ - "(data: any) => \"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"null\" | \"nan\" | \"array\" | \"promise\" | \"void\" | \"never\"" + "(data: any) => \"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"array\" | \"promise\" | \"null\" | \"nan\" | \"void\" | \"never\"" ], "path": "node_modules/zod/lib/helpers/util.d.ts", "deprecated": false, @@ -15025,7 +15025,7 @@ "label": "parsedType", "description": [], "signature": [ - "\"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"null\" | \"nan\" | \"array\" | \"promise\" | \"void\" | \"never\"" + "\"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"array\" | \"promise\" | \"null\" | \"nan\" | \"void\" | \"never\"" ], "path": "node_modules/zod/lib/helpers/parseUtil.d.ts", "deprecated": false, @@ -16352,7 +16352,7 @@ "label": "expected", "description": [], "signature": [ - "\"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"null\" | \"nan\" | \"array\" | \"promise\" | \"void\" | \"never\"" + "\"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"array\" | \"promise\" | \"null\" | \"nan\" | \"void\" | \"never\"" ], "path": "node_modules/zod/lib/ZodError.d.ts", "deprecated": false, @@ -16366,7 +16366,7 @@ "label": "received", "description": [], "signature": [ - "\"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"null\" | \"nan\" | \"array\" | \"promise\" | \"void\" | \"never\"" + "\"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"array\" | \"promise\" | \"null\" | \"nan\" | \"void\" | \"never\"" ], "path": "node_modules/zod/lib/ZodError.d.ts", "deprecated": false, @@ -19062,7 +19062,7 @@ "label": "UnknownKeysParam", "description": [], "signature": [ - "\"passthrough\" | \"strict\" | \"strip\"" + "\"strict\" | \"passthrough\" | \"strip\"" ], "path": "node_modules/zod/lib/types.d.ts", "deprecated": false, @@ -19198,7 +19198,7 @@ "label": "ZodFirstPartySchemaTypes", "description": [], "signature": [ - "Zod.ZodString | Zod.ZodBoolean | Zod.ZodNumber | Zod.ZodUnknown | Zod.ZodUndefined | Zod.ZodAny | Zod.ZodBigInt | Zod.ZodDate | Zod.ZodSymbol | Zod.ZodNull | Zod.ZodNever | Zod.ZodVoid | Zod.ZodTuple | Zod.ZodNaN | Zod.ZodArray | Zod.ZodObject | Zod.ZodUnion | Zod.ZodDiscriminatedUnion | Zod.ZodIntersection | Zod.ZodRecord | Zod.ZodMap | Zod.ZodSet | Zod.ZodFunction | Zod.ZodLazy | Zod.ZodLiteral | Zod.ZodEnum | Zod.ZodEffects | Zod.ZodNativeEnum | Zod.ZodOptional | Zod.ZodNullable | Zod.ZodDefault | Zod.ZodCatch | Zod.ZodPromise | Zod.ZodBranded | Zod.ZodPipeline | Zod.ZodReadonly" + "Zod.ZodString | Zod.ZodBoolean | Zod.ZodNumber | Zod.ZodUnknown | Zod.ZodUndefined | Zod.ZodAny | Zod.ZodNull | Zod.ZodBigInt | Zod.ZodDate | Zod.ZodSymbol | Zod.ZodNever | Zod.ZodVoid | Zod.ZodTuple | Zod.ZodNaN | Zod.ZodArray | Zod.ZodObject | Zod.ZodUnion | Zod.ZodDiscriminatedUnion | Zod.ZodIntersection | Zod.ZodRecord | Zod.ZodMap | Zod.ZodSet | Zod.ZodFunction | Zod.ZodLazy | Zod.ZodLiteral | Zod.ZodEnum | Zod.ZodEffects | Zod.ZodNativeEnum | Zod.ZodOptional | Zod.ZodNullable | Zod.ZodDefault | Zod.ZodCatch | Zod.ZodPromise | Zod.ZodBranded | Zod.ZodPipeline | Zod.ZodReadonly" ], "path": "node_modules/zod/lib/types.d.ts", "deprecated": false, @@ -19348,7 +19348,7 @@ "label": "ZodParsedType", "description": [], "signature": [ - "\"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"null\" | \"nan\" | \"array\" | \"promise\" | \"void\" | \"never\"" + "\"string\" | \"number\" | \"bigint\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\" | \"unknown\" | \"date\" | \"integer\" | \"float\" | \"map\" | \"set\" | \"array\" | \"promise\" | \"null\" | \"nan\" | \"void\" | \"never\"" ], "path": "node_modules/zod/lib/helpers/util.d.ts", "deprecated": false, diff --git a/api_docs/kbn_zod.mdx b/api_docs/kbn_zod.mdx index e5f422bc3fbcc..5ff1f59317f45 100644 --- a/api_docs/kbn_zod.mdx +++ b/api_docs/kbn_zod.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod title: "@kbn/zod" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/zod plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod'] --- import kbnZodObj from './kbn_zod.devdocs.json'; diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx index e7f46a8e5d907..6d577c60ef430 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-08-09 +date: 2024-08-27 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 57ae1ecf77fdb..c875f0cbc61de 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 5482a932c3c9c..5b84c0375f740 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-08-09 +date: 2024-08-27 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 b575b25792a44..0645ecabf59f2 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-08-09 +date: 2024-08-27 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 368833dcf20b7..1f6abaa25bc29 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-08-09 +date: 2024-08-27 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 8c9e398a47960..c43741ded505e 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-08-09 +date: 2024-08-27 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 9f92581905720..570168a8dd2b8 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-08-09 +date: 2024-08-27 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 e4831463c9857..82902a4f786e4 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-08-09 +date: 2024-08-27 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 f666e8ff207fc..1f5315779511a 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-08-09 +date: 2024-08-27 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 d9c77df8d9daa..72b49df0783f8 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.devdocs.json b/api_docs/lists.devdocs.json index 4ee259f08b88e..fa444a280770c 100644 --- a/api_docs/lists.devdocs.json +++ b/api_docs/lists.devdocs.json @@ -4535,7 +4535,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -4571,6 +4571,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -4629,6 +4655,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -5223,7 +5251,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -5249,7 +5279,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -5495,6 +5525,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 59b9402b2b316..53a054d43fb22 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-08-09 +date: 2024-08-27 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 4098b0950c6f1..3255af872f573 100644 --- a/api_docs/logs_data_access.devdocs.json +++ b/api_docs/logs_data_access.devdocs.json @@ -2,7 +2,75 @@ "id": "logsDataAccess", "client": { "classes": [], - "functions": [], + "functions": [ + { + "parentPluginId": "logsDataAccess", + "id": "def-public.LogSourcesProvider", + "type": "Function", + "tags": [], + "label": "LogSourcesProvider", + "description": [], + "signature": [ + "React.FunctionComponent>" + ], + "path": "x-pack/plugins/observability_solution/logs_data_access/public/hooks/use_log_sources.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "logsDataAccess", + "id": "def-public.LogSourcesProvider.$1", + "type": "CompoundType", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "P & { children?: React.ReactNode; }" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "logsDataAccess", + "id": "def-public.LogSourcesProvider.$2", + "type": "Any", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "any" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "logsDataAccess", + "id": "def-public.useLogSourcesContext", + "type": "Function", + "tags": [], + "label": "useLogSourcesContext", + "description": [], + "signature": [ + "() => { isUninitialized: boolean; isLoadingLogSources: boolean; hasFailedLoadingLogSources: boolean; logSourcesError: Error | undefined; logSources: ", + "LogSource", + "[]; combinedIndices: string; }" + ], + "path": "x-pack/plugins/observability_solution/logs_data_access/public/hooks/use_log_sources.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [], + "initialIsOpen": false + } + ], "interfaces": [], "enums": [], "misc": [], diff --git a/api_docs/logs_data_access.mdx b/api_docs/logs_data_access.mdx index 3c859a51fc723..512a59d0cf859 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsDataAccess'] --- import logsDataAccessObj from './logs_data_access.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 9 | 0 | 9 | 6 | +| 13 | 0 | 11 | 7 | ## Client @@ -31,6 +31,9 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- ### Start +### Functions + + ## Server ### Setup diff --git a/api_docs/logs_explorer.devdocs.json b/api_docs/logs_explorer.devdocs.json index 79932865de8a7..dc0818e98bd7f 100644 --- a/api_docs/logs_explorer.devdocs.json +++ b/api_docs/logs_explorer.devdocs.json @@ -355,6 +355,8 @@ "<(", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -375,6 +377,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -399,6 +403,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -421,6 +427,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanelGroupAPI", " & ", "WithControlPanels", @@ -499,6 +507,8 @@ "<(", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -519,6 +529,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -543,6 +555,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -565,6 +579,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanelGroupAPI", " & ", "WithControlPanels", @@ -698,15 +714,7 @@ "section": "def-public.LogsExplorerCustomizations", "text": "LogsExplorerCustomizations" }, - " | undefined; initialState?: ", - { - "pluginId": "logsExplorer", - "scope": "public", - "docId": "kibLogsExplorerPluginApi", - "section": "def-public.LogsExplorerPublicStateUpdate", - "text": "LogsExplorerPublicStateUpdate" - }, - " | undefined; }) => Promise<", + " | undefined; initialState?: InitialState | undefined; }) => Promise<", { "pluginId": "logsExplorer", "scope": "public", @@ -737,15 +745,7 @@ "section": "def-public.LogsExplorerCustomizations", "text": "LogsExplorerCustomizations" }, - " | undefined; initialState?: ", - { - "pluginId": "logsExplorer", - "scope": "public", - "docId": "kibLogsExplorerPluginApi", - "section": "def-public.LogsExplorerPublicStateUpdate", - "text": "LogsExplorerPublicStateUpdate" - }, - " | undefined; }" + " | undefined; initialState?: InitialState | undefined; }" ], "path": "x-pack/plugins/observability_solution/logs_explorer/public/controller/create_controller.ts", "deprecated": false, @@ -765,6 +765,8 @@ "(", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -785,6 +787,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -809,6 +813,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanels", " & ", { @@ -831,6 +837,8 @@ ") | (", "WithDataSourceSelection", " & ", + "WithAllSelection", + " & ", "WithControlPanelGroupAPI", " & ", "WithControlPanels", @@ -942,7 +950,29 @@ "initialIsOpen": false } ], - "objects": [], + "objects": [ + { + "parentPluginId": "logsExplorer", + "id": "def-public.DEFAULT_ALL_SELECTION", + "type": "Object", + "tags": [], + "label": "DEFAULT_ALL_SELECTION", + "description": [], + "signature": [ + { + "pluginId": "logsExplorer", + "scope": "common", + "docId": "kibLogsExplorerPluginApi", + "section": "def-common.AllDatasetSelection", + "text": "AllDatasetSelection" + } + ], + "path": "x-pack/plugins/observability_solution/logs_explorer/public/state_machines/logs_explorer_controller/src/default_all_selection.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "setup": { "parentPluginId": "logsExplorer", "id": "def-public.LogsExplorerPluginSetup", @@ -1017,15 +1047,7 @@ "section": "def-public.LogsExplorerCustomizations", "text": "LogsExplorerCustomizations" }, - " | undefined; initialState?: ", - { - "pluginId": "logsExplorer", - "scope": "public", - "docId": "kibLogsExplorerPluginApi", - "section": "def-public.LogsExplorerPublicStateUpdate", - "text": "LogsExplorerPublicStateUpdate" - }, - " | undefined; }) => Promise<", + " | undefined; initialState?: InitialState | undefined; }) => Promise<", { "pluginId": "logsExplorer", "scope": "public", @@ -1056,15 +1078,7 @@ "section": "def-public.LogsExplorerCustomizations", "text": "LogsExplorerCustomizations" }, - " | undefined; initialState?: ", - { - "pluginId": "logsExplorer", - "scope": "public", - "docId": "kibLogsExplorerPluginApi", - "section": "def-public.LogsExplorerPublicStateUpdate", - "text": "LogsExplorerPublicStateUpdate" - }, - " | undefined; }" + " | undefined; initialState?: InitialState | undefined; }" ], "path": "x-pack/plugins/observability_solution/logs_explorer/public/controller/create_controller.ts", "deprecated": false, @@ -1172,6 +1186,22 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "logsExplorer", + "id": "def-common.AllDatasetSelection.getLocatorPlainSelection", + "type": "Function", + "tags": [], + "label": "getLocatorPlainSelection", + "description": [], + "signature": [ + "() => { selectionType: \"all\"; }" + ], + "path": "x-pack/plugins/observability_solution/logs_explorer/common/data_source_selection/all_dataset_selection.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "logsExplorer", "id": "def-common.AllDatasetSelection.create", @@ -1180,7 +1210,7 @@ "label": "create", "description": [], "signature": [ - "() => ", + "({ indices }: { indices: string; }) => ", { "pluginId": "logsExplorer", "scope": "common", @@ -1192,7 +1222,32 @@ "path": "x-pack/plugins/observability_solution/logs_explorer/common/data_source_selection/all_dataset_selection.ts", "deprecated": false, "trackAdoption": false, - "children": [], + "children": [ + { + "parentPluginId": "logsExplorer", + "id": "def-common.AllDatasetSelection.create.$1", + "type": "Object", + "tags": [], + "label": "{ indices }", + "description": [], + "path": "x-pack/plugins/observability_solution/logs_explorer/common/data_source_selection/all_dataset_selection.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "logsExplorer", + "id": "def-common.AllDatasetSelection.create.$1.indices", + "type": "string", + "tags": [], + "label": "indices", + "description": [], + "path": "x-pack/plugins/observability_solution/logs_explorer/common/data_source_selection/all_dataset_selection.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], "returnComment": [] } ], @@ -1564,7 +1619,15 @@ "Branded", "; } & { title?: string | undefined; }; }; }) => ", + ">; } & { title?: string | undefined; }; }; }, allSelection: ", + { + "pluginId": "logsExplorer", + "scope": "common", + "docId": "kibLogsExplorerPluginApi", + "section": "def-common.AllDatasetSelection", + "text": "AllDatasetSelection" + }, + ") => ", { "pluginId": "logsExplorer", "scope": "common", @@ -1617,6 +1680,27 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "logsExplorer", + "id": "def-common.hydrateDataSourceSelection.$2", + "type": "Object", + "tags": [], + "label": "allSelection", + "description": [], + "signature": [ + { + "pluginId": "logsExplorer", + "scope": "common", + "docId": "kibLogsExplorerPluginApi", + "section": "def-common.AllDatasetSelection", + "text": "AllDatasetSelection" + } + ], + "path": "x-pack/plugins/observability_solution/logs_explorer/common/data_source_selection/hydrate_data_source_selection.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [], diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx index df1ba1c191a82..0973459c59bba 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer'] --- import logsExplorerObj from './logs_explorer.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 | |-------------------|-----------|------------------------|-----------------| -| 117 | 4 | 117 | 22 | +| 122 | 4 | 122 | 23 | ## Client @@ -31,6 +31,9 @@ Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux ### Start +### Objects + + ### Functions diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index 21900bf317223..2eb3bc8027c02 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-08-09 +date: 2024-08-27 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 0c26d51706f47..da12ff0f537aa 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-08-09 +date: 2024-08-27 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 3521c63bfd0c5..d8a4b185e9580 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-08-09 +date: 2024-08-27 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 debc3f409b82d..65ae1ecf2b5d3 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-08-09 +date: 2024-08-27 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 786c41c318074..f6ec0aeef0bca 100644 --- a/api_docs/metrics_data_access.devdocs.json +++ b/api_docs/metrics_data_access.devdocs.json @@ -550,7 +550,15 @@ "label": "findInventoryModel", "description": [], "signature": [ - "(type: T) => InventoryModels" + "(type: T) => ", + { + "pluginId": "metricsDataAccess", + "scope": "common", + "docId": "kibMetricsDataAccessPluginApi", + "section": "def-common.InventoryModels", + "text": "InventoryModels" + }, + "" ], "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/index.ts", "deprecated": false, @@ -616,9 +624,14 @@ "label": "networkTraffic", "description": [], "signature": [ - "(id: string, field: string) => { [x: string]: { [x: string]: { field: string; } | undefined; } | { percentiles: { field: string; percents: number[]; }; } | { bucket_script: { buckets_path: { [x: string]: string; }; script: { source: string; lang: \"painless\" | \"expression\"; }; } & { gap_policy?: \"insert_zeros\" | \"skip\" | undefined; }; } | { cumulative_sum: { buckets_path: string; }; } | { derivative: { buckets_path: string; gap_policy: \"insert_zeros\" | \"skip\"; unit: string; }; } | { sum_bucket: { buckets_path: string; }; } | ", - "SnapshotTermsWithAggregation", - " | { cardinality: { field?: string | undefined; }; } | { top_metrics: { metrics: { field: string; }[] | { field: string; }; } & { size?: number | undefined; sort?: { [x: string]: \"asc\" | \"desc\"; } | undefined; }; } | { filter: { exists: { field: string; }; }; aggs: { period: { max: { field: string; }; }; }; }; }" + "(id: string, field: string) => ", + { + "pluginId": "metricsDataAccess", + "scope": "common", + "docId": "kibMetricsDataAccessPluginApi", + "section": "def-common.MetricsUIAggregation", + "text": "MetricsUIAggregation" + } ], "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/shared/metrics/snapshot/network_traffic.ts", "deprecated": false, @@ -659,7 +672,49 @@ "initialIsOpen": false } ], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIMetric", + "type": "Interface", + "tags": [], + "label": "MetricsAPIMetric", + "description": [], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIMetric.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIMetric.aggregations", + "type": "Object", + "tags": [], + "label": "aggregations", + "description": [], + "signature": [ + "{ [x: string]: ", + "AggregationsAggregate", + "; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], "enums": [], "misc": [ { @@ -745,7 +800,7 @@ "label": "hostSnapshotMetricTypes", "description": [], "signature": [ - "(\"memory\" | \"logRate\" | \"rx\" | \"normalizedLoad1m\" | \"memoryFree\" | \"tx\" | \"cpu\" | \"cpuTotal\" | \"diskLatency\" | \"diskSpaceUsage\" | \"load\" | \"memoryTotal\" | \"rxV2\" | \"txV2\")[]" + "(\"memory\" | \"logRate\" | \"rx\" | \"normalizedLoad1m\" | \"memoryFree\" | \"tx\" | \"cpu\" | \"cpuV2\" | \"diskLatency\" | \"diskSpaceUsage\" | \"load\" | \"memoryTotal\" | \"rxV2\" | \"txV2\")[]" ], "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/host/metrics/index.ts", "deprecated": false, @@ -1454,236 +1509,1037 @@ }, { "parentPluginId": "metricsDataAccess", - "id": "def-common.InventoryVisType", - "type": "Type", - "tags": [], - "label": "InventoryVisType", - "description": [], - "signature": [ - "\"line\" | \"area\" | \"bar\"" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.METRICS_EXPLORER_API_MAX_METRICS", - "type": "number", - "tags": [], - "label": "METRICS_EXPLORER_API_MAX_METRICS", - "description": [], - "signature": [ - "20" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.MetricsUIAggregation", - "type": "Type", - "tags": [], - "label": "MetricsUIAggregation", - "description": [], - "signature": [ - "{ [x: string]: { [x: string]: { field: string; } | undefined; } | { percentiles: { field: string; percents: number[]; }; } | { bucket_script: { buckets_path: { [x: string]: string; }; script: { source: string; lang: \"painless\" | \"expression\"; }; } & { gap_policy?: \"insert_zeros\" | \"skip\" | undefined; }; } | { cumulative_sum: { buckets_path: string; }; } | { derivative: { buckets_path: string; gap_policy: \"insert_zeros\" | \"skip\"; unit: string; }; } | { sum_bucket: { buckets_path: string; }; } | ", - "SnapshotTermsWithAggregation", - " | { cardinality: { field?: string | undefined; }; } | { top_metrics: { metrics: { field: string; }[] | { field: string; }; } & { size?: number | undefined; sort?: { [x: string]: \"asc\" | \"desc\"; } | undefined; }; } | { filter: { exists: { field: string; }; }; aggs: { period: { max: { field: string; }; }; }; }; }" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.podSnapshotMetricTypes", - "type": "Array", - "tags": [], - "label": "podSnapshotMetricTypes", - "description": [], - "signature": [ - "(\"memory\" | \"rx\" | \"tx\" | \"cpu\")[]" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.SnapshotMetricType", - "type": "Type", - "tags": [], - "label": "SnapshotMetricType", - "description": [], - "signature": [ - "\"count\" | \"memory\" | \"custom\" | \"logRate\" | \"rx\" | \"normalizedLoad1m\" | \"memoryFree\" | \"tx\" | \"cpu\" | \"s3BucketSize\" | \"s3NumberOfObjects\" | \"s3TotalRequests\" | \"s3UploadBytes\" | \"s3DownloadBytes\" | \"cpuTotal\" | \"diskLatency\" | \"diskSpaceUsage\" | \"load\" | \"memoryTotal\" | \"rxV2\" | \"txV2\" | \"diskIOReadBytes\" | \"diskIOWriteBytes\" | \"rdsLatency\" | \"rdsConnections\" | \"rdsQueriesExecuted\" | \"rdsActiveTransactions\" | \"sqsMessagesVisible\" | \"sqsMessagesDelayed\" | \"sqsMessagesEmpty\" | \"sqsMessagesSent\" | \"sqsOldestMessage\"" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.TSVBMetricModel", - "type": "Type", - "tags": [], - "label": "TSVBMetricModel", - "description": [], - "signature": [ - "{ id: \"custom\" | \"hostSystemOverview\" | \"hostCpuUsageTotal\" | \"hostCpuUsage\" | \"hostFilesystem\" | \"hostK8sOverview\" | \"hostK8sCpuCap\" | \"hostK8sDiskCap\" | \"hostK8sMemoryCap\" | \"hostK8sPodCap\" | \"hostLoad\" | \"hostMemoryUsage\" | \"hostNetworkTraffic\" | \"hostDockerOverview\" | \"hostDockerInfo\" | \"hostDockerTop5ByCpu\" | \"hostDockerTop5ByMemory\" | \"podOverview\" | \"podCpuUsage\" | \"podMemoryUsage\" | \"podLogUsage\" | \"podNetworkTraffic\" | \"containerOverview\" | \"containerCpuKernel\" | \"containerCpuUsage\" | \"containerDiskIOOps\" | \"containerDiskIOBytes\" | \"containerMemory\" | \"containerNetworkTraffic\" | \"containerK8sOverview\" | \"containerK8sCpuUsage\" | \"containerK8sMemoryUsage\" | \"nginxHits\" | \"nginxRequestRate\" | \"nginxActiveConnections\" | \"nginxRequestsPerConnection\" | \"awsOverview\" | \"awsCpuUtilization\" | \"awsNetworkBytes\" | \"awsNetworkPackets\" | \"awsDiskioBytes\" | \"awsDiskioOps\" | \"awsEC2CpuUtilization\" | \"awsEC2NetworkTraffic\" | \"awsEC2DiskIOBytes\" | \"awsS3TotalRequests\" | \"awsS3NumberOfObjects\" | \"awsS3BucketSize\" | \"awsS3DownloadBytes\" | \"awsS3UploadBytes\" | \"awsRDSCpuTotal\" | \"awsRDSConnections\" | \"awsRDSQueriesExecuted\" | \"awsRDSActiveTransactions\" | \"awsRDSLatency\" | \"awsSQSMessagesVisible\" | \"awsSQSMessagesDelayed\" | \"awsSQSMessagesSent\" | \"awsSQSMessagesEmpty\" | \"awsSQSOldestMessage\"; requires: string[]; index_pattern: string | string[]; interval: string; time_field: string; type: string; series: ({ id: string; metrics: ({ id: string; type: \"count\"; } | ({ id: string; type: \"min\" | \"max\" | \"sum\" | \"avg\" | \"count\" | \"cardinality\" | \"cumulative_sum\" | \"derivative\" | \"calculation\" | \"series_agg\" | \"positive_only\"; } & { field?: string | undefined; }) | { id: string; script: string; type: \"calculation\"; variables: { field: string; id: string; name: string; }[]; } | { id: string; field: string; unit: string; type: \"derivative\"; } | ({ id: string; type: \"percentile\"; percentiles: { id: string; value: number; }[]; } & { field?: string | undefined; }) | { id: string; function: string; type: \"series_agg\"; })[]; split_mode: string; } & { terms_field?: string | undefined; terms_size?: number | undefined; terms_order_by?: string | undefined; filter?: { query: string; language: \"kuery\" | \"lucene\"; } | undefined; })[]; } & { filter?: string | undefined; map_field_to?: string | undefined; id_type?: \"cloud\" | \"node\" | undefined; drop_last_bucket?: boolean | undefined; }" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.TSVBMetricModelCreator", + "id": "def-common.InventoryModels", "type": "Type", "tags": [], - "label": "TSVBMetricModelCreator", - "description": [], - "signature": [ - "(timeField: string, indexPattern: string | string[], interval: string) => { id: \"custom\" | \"hostSystemOverview\" | \"hostCpuUsageTotal\" | \"hostCpuUsage\" | \"hostFilesystem\" | \"hostK8sOverview\" | \"hostK8sCpuCap\" | \"hostK8sDiskCap\" | \"hostK8sMemoryCap\" | \"hostK8sPodCap\" | \"hostLoad\" | \"hostMemoryUsage\" | \"hostNetworkTraffic\" | \"hostDockerOverview\" | \"hostDockerInfo\" | \"hostDockerTop5ByCpu\" | \"hostDockerTop5ByMemory\" | \"podOverview\" | \"podCpuUsage\" | \"podMemoryUsage\" | \"podLogUsage\" | \"podNetworkTraffic\" | \"containerOverview\" | \"containerCpuKernel\" | \"containerCpuUsage\" | \"containerDiskIOOps\" | \"containerDiskIOBytes\" | \"containerMemory\" | \"containerNetworkTraffic\" | \"containerK8sOverview\" | \"containerK8sCpuUsage\" | \"containerK8sMemoryUsage\" | \"nginxHits\" | \"nginxRequestRate\" | \"nginxActiveConnections\" | \"nginxRequestsPerConnection\" | \"awsOverview\" | \"awsCpuUtilization\" | \"awsNetworkBytes\" | \"awsNetworkPackets\" | \"awsDiskioBytes\" | \"awsDiskioOps\" | \"awsEC2CpuUtilization\" | \"awsEC2NetworkTraffic\" | \"awsEC2DiskIOBytes\" | \"awsS3TotalRequests\" | \"awsS3NumberOfObjects\" | \"awsS3BucketSize\" | \"awsS3DownloadBytes\" | \"awsS3UploadBytes\" | \"awsRDSCpuTotal\" | \"awsRDSConnections\" | \"awsRDSQueriesExecuted\" | \"awsRDSActiveTransactions\" | \"awsRDSLatency\" | \"awsSQSMessagesVisible\" | \"awsSQSMessagesDelayed\" | \"awsSQSMessagesSent\" | \"awsSQSMessagesEmpty\" | \"awsSQSOldestMessage\"; requires: string[]; index_pattern: string | string[]; interval: string; time_field: string; type: string; series: ({ id: string; metrics: ({ id: string; type: \"count\"; } | ({ id: string; type: \"min\" | \"max\" | \"sum\" | \"avg\" | \"count\" | \"cardinality\" | \"cumulative_sum\" | \"derivative\" | \"calculation\" | \"series_agg\" | \"positive_only\"; } & { field?: string | undefined; }) | { id: string; script: string; type: \"calculation\"; variables: { field: string; id: string; name: string; }[]; } | { id: string; field: string; unit: string; type: \"derivative\"; } | ({ id: string; type: \"percentile\"; percentiles: { id: string; value: number; }[]; } & { field?: string | undefined; }) | { id: string; function: string; type: \"series_agg\"; })[]; split_mode: string; } & { terms_field?: string | undefined; terms_size?: number | undefined; terms_order_by?: string | undefined; filter?: { query: string; language: \"kuery\" | \"lucene\"; } | undefined; })[]; } & { filter?: string | undefined; map_field_to?: string | undefined; id_type?: \"cloud\" | \"node\" | undefined; drop_last_bucket?: boolean | undefined; }" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.TSVBMetricModelCreator.$1", - "type": "string", - "tags": [], - "label": "timeField", - "description": [], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.TSVBMetricModelCreator.$2", - "type": "CompoundType", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "string | string[]" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.TSVBMetricModelCreator.$3", - "type": "string", - "tags": [], - "label": "interval", - "description": [], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - } - ], - "objects": [ - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.ESBasicMetricAggRT", - "type": "Object", - "tags": [], - "label": "ESBasicMetricAggRT", + "label": "InventoryModels", "description": [], "signature": [ - "RecordC", + "{ readonly host: ", + "InventoryModel", "<", - "StringC", - ", ", - "UnionC", - "<[", - "UndefinedC", - ", ", - "TypeC", - "<{ field: ", - "StringC", - "; }>]>>" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.ESDerivativeAggRT", - "type": "Object", - "tags": [], - "label": "ESDerivativeAggRT", - "description": [], - "signature": [ - "TypeC", - "<{ derivative: ", - "TypeC", - "<{ buckets_path: ", - "StringC", - "; gap_policy: ", - "KeyofC", - "<{ skip: null; insert_zeros: null; }>; unit: ", - "StringC", - "; }>; }>" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.ESSumBucketAggRT", - "type": "Object", - "tags": [], - "label": "ESSumBucketAggRT", - "description": [], - "signature": [ - "TypeC", - "<{ sum_bucket: ", - "TypeC", - "<{ buckets_path: ", - "StringC", - "; }>; }>" - ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "metricsDataAccess", - "id": "def-common.ESTermsWithAggregationRT", - "type": "Object", - "tags": [], - "label": "ESTermsWithAggregationRT", - "description": [], + "InventoryMetricsWithCharts", + "<{ readonly cpuUsage: ", + "LensBaseLayer", + "; readonly cpuUsageIowait: ", + "LensBaseLayer", + "; readonly cpuUsageIrq: ", + "LensBaseLayer", + "; readonly cpuUsageNice: ", + "LensBaseLayer", + "; readonly cpuUsageSoftirq: ", + "LensBaseLayer", + "; readonly cpuUsageSteal: ", + "LensBaseLayer", + "; readonly cpuUsageUser: ", + "LensBaseLayer", + "; readonly cpuUsageSystem: ", + "LensBaseLayer", + "; readonly diskIORead: ", + "LensBaseLayer", + "; readonly diskIOWrite: ", + "LensBaseLayer", + "; readonly diskReadThroughput: ", + "LensBaseLayer", + "; readonly diskWriteThroughput: ", + "LensBaseLayer", + "; readonly diskSpaceAvailability: ", + "LensBaseLayer", + "; readonly diskSpaceAvailable: ", + "LensBaseLayer", + "; readonly diskUsage: ", + "LensBaseLayer", + "; readonly diskUsageAverage: ", + "LensBaseLayer", + "; readonly hostCount: ", + "LensBaseLayer", + "; readonly logRate: ", + "LensBaseLayer", + "; readonly normalizedLoad1m: ", + "LensBaseLayer", + "; readonly load1m: ", + "LensBaseLayer", + "; readonly load5m: ", + "LensBaseLayer", + "; readonly load15m: ", + "LensBaseLayer", + "; readonly memoryUsage: ", + "LensBaseLayer", + "; readonly memoryFree: ", + "LensBaseLayer", + "; readonly memoryUsed: ", + "LensBaseLayer", + "; readonly memoryFreeExcludingCache: ", + "LensBaseLayer", + "; readonly memoryCache: ", + "LensBaseLayer", + "; readonly rx: ", + "LensBaseLayer", + "; readonly tx: ", + "LensBaseLayer", + "; }, { readonly cpu: { readonly xy: { readonly cpuUsageBreakdown: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 loadBreakdown: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 cpuUsage: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 normalizedLoad1m: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 cpuUsage: { 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 normalizedLoad1m: { 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 disk: { readonly xy: { readonly diskThroughputReadWrite: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskUsageByMountPoint: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskIOReadWrite: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskSpaceAvailable: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskIORead: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskIOWrite: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskReadThroughput: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskWriteThroughput: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskUsage: { 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: { memoryUsageBreakdown: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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; }; memoryUsage: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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; }; memoryFree: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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: { memoryUsage: { 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 network: { readonly xy: { readonly rxTx: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 rx: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 tx: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 logs: { xy: { logRate: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 kibernetesNode: { readonly xy: { readonly nodeCpuCapacity: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 nodeMemoryCapacity: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 nodeDiskCapacity: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 nodePodCapacity: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 pod: ", + "InventoryModel", + "<", + "InventoryMetrics", + ">; readonly container: ", + "InventoryModel", + "<", + "InventoryMetricsWithCharts", + "<{ readonly dockerContainerCpuUsage: ", + "LensBaseLayer", + "; readonly dockerContainerMemoryUsage: ", + "LensBaseLayer", + "; readonly dockerContainerNetworkRx: ", + "LensBaseLayer", + "; readonly dockerContainerNetworkTx: ", + "LensBaseLayer", + "; readonly dockerContainerDiskIORead: ", + "LensBaseLayer", + "; readonly dockerContainerDiskIOWrite: ", + "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: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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; }; }; }; readonly network: { xy: { dockerContainerRxTx: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 diskIO: { xy: { dockerContainerDiskIOReadWrite: { title: string; dataset?: ", + "LensDataset", + " | undefined; chartType: \"xy\"; layers: ({ dataset?: ", + "LensDataset", + " | undefined; yAxis: ", + "LensBaseLayer", + "[]; type: \"series\"; breakdown?: ", + "LensBreakdownConfig", + " | undefined; xAxis: ", + "LensBreakdownConfig", + "; seriesType: \"line\" | \"area\" | \"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\" | \"top\" | \"bottom\" | \"left\" | 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 awsEC2: ", + "InventoryModel", + "<", + "InventoryMetrics", + ">; readonly awsS3: ", + "InventoryModel", + "<", + "InventoryMetrics", + ">; readonly awsRDS: ", + "InventoryModel", + "<", + "InventoryMetrics", + ">; readonly awsSQS: ", + "InventoryModel", + "<", + "InventoryMetrics", + ">; }[T]" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.InventoryVisType", + "type": "Type", + "tags": [], + "label": "InventoryVisType", + "description": [], + "signature": [ + "\"line\" | \"area\" | \"bar\"" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.METRICS_EXPLORER_API_MAX_METRICS", + "type": "number", + "tags": [], + "label": "METRICS_EXPLORER_API_MAX_METRICS", + "description": [], + "signature": [ + "20" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIColumn", + "type": "Type", + "tags": [], + "label": "MetricsAPIColumn", + "description": [], + "signature": [ + "{ name: string; type: \"string\" | \"number\" | \"date\"; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIColumnType", + "type": "Type", + "tags": [], + "label": "MetricsAPIColumnType", + "description": [], + "signature": [ + "\"string\" | \"number\" | \"date\"" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIPageInfo", + "type": "Type", + "tags": [], + "label": "MetricsAPIPageInfo", + "description": [], + "signature": [ + "{ afterKey: { [x: string]: string | null; } | null | undefined; } & { interval?: number | undefined; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIRequest", + "type": "Type", + "tags": [], + "label": "MetricsAPIRequest", + "description": [], + "signature": [ + "Omit<{ timerange: { from: number; to: number; interval: string; }; indexPattern: string; metrics: { id: string; aggregations: { [key: string]: unknown; }; }[]; includeTimeseries: boolean | undefined; } & { groupBy?: (string | null | undefined)[] | undefined; groupInstance?: (string | null | undefined)[] | undefined; modules?: string[] | undefined; afterKey?: { [x: string]: string | null; } | null | undefined; limit?: number | null | undefined; filters?: { [key: string]: unknown; }[] | undefined; dropPartialBuckets?: boolean | undefined; alignDataToEnd?: boolean | undefined; }, \"metrics\"> & { metrics: ", + { + "pluginId": "metricsDataAccess", + "scope": "common", + "docId": "kibMetricsDataAccessPluginApi", + "section": "def-common.MetricsAPIMetric", + "text": "MetricsAPIMetric" + }, + "[]; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIResponse", + "type": "Type", + "tags": [], + "label": "MetricsAPIResponse", + "description": [], + "signature": [ + "{ series: ({ id: string; columns: { name: string; type: \"string\" | \"number\" | \"date\"; }[]; rows: ({ timestamp: number; } & { [x: string]: string | number | object[] | null | undefined; })[]; } & { keys?: string[] | undefined; } & { metricsets?: string[] | undefined; })[]; info: { afterKey: { [x: string]: string | null; } | null | undefined; } & { interval?: number | undefined; }; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIRow", + "type": "Type", + "tags": [], + "label": "MetricsAPIRow", + "description": [], + "signature": [ + "{ timestamp: number; } & { [x: string]: string | number | object[] | null | undefined; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPISeries", + "type": "Type", + "tags": [], + "label": "MetricsAPISeries", + "description": [], "signature": [ - "Type", + "{ id: string; columns: { name: string; type: \"string\" | \"number\" | \"date\"; }[]; rows: ({ timestamp: number; } & { [x: string]: string | number | object[] | null | undefined; })[]; } & { keys?: string[] | undefined; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPITimerange", + "type": "Type", + "tags": [], + "label": "MetricsAPITimerange", + "description": [], + "signature": [ + "{ from: number; to: number; interval: string; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsUIAggregation", + "type": "Type", + "tags": [], + "label": "MetricsUIAggregation", + "description": [], + "signature": [ + "{ [x: string]: ", + "AggregationsAggregate", + "; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.podSnapshotMetricTypes", + "type": "Array", + "tags": [], + "label": "podSnapshotMetricTypes", + "description": [], + "signature": [ + "(\"memory\" | \"rx\" | \"tx\" | \"cpu\")[]" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.SnapshotMetricType", + "type": "Type", + "tags": [], + "label": "SnapshotMetricType", + "description": [], + "signature": [ + "\"count\" | \"memory\" | \"custom\" | \"logRate\" | \"rx\" | \"normalizedLoad1m\" | \"memoryFree\" | \"tx\" | \"cpu\" | \"s3BucketSize\" | \"s3NumberOfObjects\" | \"s3TotalRequests\" | \"s3UploadBytes\" | \"s3DownloadBytes\" | \"cpuV2\" | \"diskLatency\" | \"diskSpaceUsage\" | \"load\" | \"memoryTotal\" | \"rxV2\" | \"txV2\" | \"diskIOReadBytes\" | \"diskIOWriteBytes\" | \"rdsLatency\" | \"rdsConnections\" | \"rdsQueriesExecuted\" | \"rdsActiveTransactions\" | \"sqsMessagesVisible\" | \"sqsMessagesDelayed\" | \"sqsMessagesEmpty\" | \"sqsMessagesSent\" | \"sqsOldestMessage\"" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.TSVBMetricModel", + "type": "Type", + "tags": [], + "label": "TSVBMetricModel", + "description": [], + "signature": [ + "{ id: \"custom\" | \"hostSystemOverview\" | \"hostCpuUsageTotal\" | \"hostCpuUsage\" | \"hostFilesystem\" | \"hostK8sOverview\" | \"hostK8sCpuCap\" | \"hostK8sDiskCap\" | \"hostK8sMemoryCap\" | \"hostK8sPodCap\" | \"hostLoad\" | \"hostMemoryUsage\" | \"hostNetworkTraffic\" | \"hostDockerOverview\" | \"hostDockerInfo\" | \"hostDockerTop5ByCpu\" | \"hostDockerTop5ByMemory\" | \"podOverview\" | \"podCpuUsage\" | \"podMemoryUsage\" | \"podLogUsage\" | \"podNetworkTraffic\" | \"containerOverview\" | \"containerCpuKernel\" | \"containerCpuUsage\" | \"containerDiskIOOps\" | \"containerDiskIOBytes\" | \"containerMemory\" | \"containerNetworkTraffic\" | \"containerK8sOverview\" | \"containerK8sCpuUsage\" | \"containerK8sMemoryUsage\" | \"nginxHits\" | \"nginxRequestRate\" | \"nginxActiveConnections\" | \"nginxRequestsPerConnection\" | \"awsOverview\" | \"awsCpuUtilization\" | \"awsNetworkBytes\" | \"awsNetworkPackets\" | \"awsDiskioBytes\" | \"awsDiskioOps\" | \"awsEC2CpuUtilization\" | \"awsEC2NetworkTraffic\" | \"awsEC2DiskIOBytes\" | \"awsS3TotalRequests\" | \"awsS3NumberOfObjects\" | \"awsS3BucketSize\" | \"awsS3DownloadBytes\" | \"awsS3UploadBytes\" | \"awsRDSCpuTotal\" | \"awsRDSConnections\" | \"awsRDSQueriesExecuted\" | \"awsRDSActiveTransactions\" | \"awsRDSLatency\" | \"awsSQSMessagesVisible\" | \"awsSQSMessagesDelayed\" | \"awsSQSMessagesSent\" | \"awsSQSMessagesEmpty\" | \"awsSQSOldestMessage\"; requires: string[]; index_pattern: string | string[]; interval: string; time_field: string; type: string; series: ({ id: string; metrics: ({ id: string; type: \"count\"; } | ({ id: string; type: \"min\" | \"max\" | \"sum\" | \"avg\" | \"count\" | \"cardinality\" | \"cumulative_sum\" | \"derivative\" | \"calculation\" | \"series_agg\" | \"positive_only\"; } & { field?: string | undefined; }) | { id: string; script: string; type: \"calculation\"; variables: { field: string; id: string; name: string; }[]; } | { id: string; field: string; unit: string; type: \"derivative\"; } | ({ id: string; type: \"percentile\"; percentiles: { id: string; value: number; }[]; } & { field?: string | undefined; }) | { id: string; function: string; type: \"series_agg\"; })[]; split_mode: string; } & { terms_field?: string | undefined; terms_size?: number | undefined; terms_order_by?: string | undefined; filter?: { query: string; language: \"kuery\" | \"lucene\"; } | undefined; })[]; } & { filter?: string | undefined; map_field_to?: string | undefined; id_type?: \"cloud\" | \"node\" | undefined; drop_last_bucket?: boolean | undefined; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.TSVBMetricModelCreator", + "type": "Type", + "tags": [], + "label": "TSVBMetricModelCreator", + "description": [], + "signature": [ + "(timeField: string, indexPattern: string | string[], interval: string) => { id: \"custom\" | \"hostSystemOverview\" | \"hostCpuUsageTotal\" | \"hostCpuUsage\" | \"hostFilesystem\" | \"hostK8sOverview\" | \"hostK8sCpuCap\" | \"hostK8sDiskCap\" | \"hostK8sMemoryCap\" | \"hostK8sPodCap\" | \"hostLoad\" | \"hostMemoryUsage\" | \"hostNetworkTraffic\" | \"hostDockerOverview\" | \"hostDockerInfo\" | \"hostDockerTop5ByCpu\" | \"hostDockerTop5ByMemory\" | \"podOverview\" | \"podCpuUsage\" | \"podMemoryUsage\" | \"podLogUsage\" | \"podNetworkTraffic\" | \"containerOverview\" | \"containerCpuKernel\" | \"containerCpuUsage\" | \"containerDiskIOOps\" | \"containerDiskIOBytes\" | \"containerMemory\" | \"containerNetworkTraffic\" | \"containerK8sOverview\" | \"containerK8sCpuUsage\" | \"containerK8sMemoryUsage\" | \"nginxHits\" | \"nginxRequestRate\" | \"nginxActiveConnections\" | \"nginxRequestsPerConnection\" | \"awsOverview\" | \"awsCpuUtilization\" | \"awsNetworkBytes\" | \"awsNetworkPackets\" | \"awsDiskioBytes\" | \"awsDiskioOps\" | \"awsEC2CpuUtilization\" | \"awsEC2NetworkTraffic\" | \"awsEC2DiskIOBytes\" | \"awsS3TotalRequests\" | \"awsS3NumberOfObjects\" | \"awsS3BucketSize\" | \"awsS3DownloadBytes\" | \"awsS3UploadBytes\" | \"awsRDSCpuTotal\" | \"awsRDSConnections\" | \"awsRDSQueriesExecuted\" | \"awsRDSActiveTransactions\" | \"awsRDSLatency\" | \"awsSQSMessagesVisible\" | \"awsSQSMessagesDelayed\" | \"awsSQSMessagesSent\" | \"awsSQSMessagesEmpty\" | \"awsSQSOldestMessage\"; requires: string[]; index_pattern: string | string[]; interval: string; time_field: string; type: string; series: ({ id: string; metrics: ({ id: string; type: \"count\"; } | ({ id: string; type: \"min\" | \"max\" | \"sum\" | \"avg\" | \"count\" | \"cardinality\" | \"cumulative_sum\" | \"derivative\" | \"calculation\" | \"series_agg\" | \"positive_only\"; } & { field?: string | undefined; }) | { id: string; script: string; type: \"calculation\"; variables: { field: string; id: string; name: string; }[]; } | { id: string; field: string; unit: string; type: \"derivative\"; } | ({ id: string; type: \"percentile\"; percentiles: { id: string; value: number; }[]; } & { field?: string | undefined; }) | { id: string; function: string; type: \"series_agg\"; })[]; split_mode: string; } & { terms_field?: string | undefined; terms_size?: number | undefined; terms_order_by?: string | undefined; filter?: { query: string; language: \"kuery\" | \"lucene\"; } | undefined; })[]; } & { filter?: string | undefined; map_field_to?: string | undefined; id_type?: \"cloud\" | \"node\" | undefined; drop_last_bucket?: boolean | undefined; }" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.TSVBMetricModelCreator.$1", + "type": "string", + "tags": [], + "label": "timeField", + "description": [], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.TSVBMetricModelCreator.$2", + "type": "CompoundType", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + "string | string[]" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.TSVBMetricModelCreator.$3", + "type": "string", + "tags": [], + "label": "interval", + "description": [], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.ESBasicMetricAggRT", + "type": "Object", + "tags": [], + "label": "ESBasicMetricAggRT", + "description": [], + "signature": [ + "RecordC", "<", - "SnapshotTermsWithAggregation", + "StringC", + ", ", + "UnionC", + "<[", + "UndefinedC", ", ", - "SnapshotTermsWithAggregation", - ", unknown>" + "TypeC", + "<{ field: ", + "StringC", + "; }>]>>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.ESDerivativeAggRT", + "type": "Object", + "tags": [], + "label": "ESDerivativeAggRT", + "description": [], + "signature": [ + "TypeC", + "<{ derivative: ", + "TypeC", + "<{ buckets_path: ", + "StringC", + "; gap_policy: ", + "KeyofC", + "<{ skip: null; insert_zeros: null; }>; unit: ", + "StringC", + "; }>; }>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.ESSumBucketAggRT", + "type": "Object", + "tags": [], + "label": "ESSumBucketAggRT", + "description": [], + "signature": [ + "TypeC", + "<{ sum_bucket: ", + "TypeC", + "<{ buckets_path: ", + "StringC", + "; }>; }>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.ESTermsWithAggregationRT", + "type": "Object", + "tags": [], + "label": "ESTermsWithAggregationRT", + "description": [], + "signature": [ + "TypeC", + "<{ terms: ", + "TypeC", + "<{ field: ", + "StringC", + "; }>; aggregations: ", + "UnknownRecordC", + "; }>" ], "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", "deprecated": false, @@ -1895,146 +2751,452 @@ }, { "parentPluginId": "metricsDataAccess", - "id": "def-common.MetricsUIAggregationRT", + "id": "def-common.MetricsAPIColumnRT", + "type": "Object", + "tags": [], + "label": "MetricsAPIColumnRT", + "description": [], + "signature": [ + "TypeC", + "<{ name: ", + "StringC", + "; type: ", + "KeyofC", + "<{ date: null; number: null; string: null; }>; }>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIColumnTypeRT", + "type": "Object", + "tags": [], + "label": "MetricsAPIColumnTypeRT", + "description": [], + "signature": [ + "KeyofC", + "<{ date: null; number: null; string: null; }>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIMetricRT", + "type": "Object", + "tags": [], + "label": "MetricsAPIMetricRT", + "description": [], + "signature": [ + "TypeC", + "<{ id: ", + "StringC", + "; aggregations: ", + "UnknownRecordC", + "; }>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIPageInfoRT", "type": "Object", "tags": [], - "label": "MetricsUIAggregationRT", + "label": "MetricsAPIPageInfoRT", "description": [], "signature": [ + "IntersectionC", + "<[", + "TypeC", + "<{ afterKey: ", + "UnionC", + "<[", + "NullC", + ", ", "RecordC", "<", "StringC", ", ", "UnionC", "<[", - "RecordC", + "StringC", + ", ", + "NullC", + "]>>, ", + "UndefinedC", + "]>; }>, ", + "PartialC", + "<{ interval: ", + "NumberC", + "; }>]>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIRequestRT", + "type": "Object", + "tags": [], + "label": "MetricsAPIRequestRT", + "description": [], + "signature": [ + "IntersectionC", + "<[", + "TypeC", + "<{ timerange: ", + "TypeC", + "<{ from: ", + "NumberC", + "; to: ", + "NumberC", + "; interval: ", + "StringC", + "; }>; indexPattern: ", + "StringC", + "; metrics: ", + "ArrayC", + "<", + "TypeC", + "<{ id: ", + "StringC", + "; aggregations: ", + "UnknownRecordC", + "; }>>; includeTimeseries: ", + "UnionC", + "<[", + "BooleanC", + ", ", + "Type", + "]>; }>, ", + "PartialC", + "<{ groupBy: ", + "ArrayC", "<", + "UnionC", + "<[", "StringC", ", ", + "NullC", + ", ", + "UndefinedC", + "]>>; groupInstance: ", + "ArrayC", + "<", "UnionC", "<[", + "StringC", + ", ", + "NullC", + ", ", "UndefinedC", + "]>>; modules: ", + "ArrayC", + "<", + "StringC", + ">; afterKey: ", + "UnionC", + "<[", + "NullC", ", ", - "TypeC", - "<{ field: ", + "RecordC", + "<", + "StringC", + ", ", + "UnionC", + "<[", "StringC", - "; }>]>>, ", + ", ", + "NullC", + "]>>]>; limit: ", + "UnionC", + "<[", + "NumberC", + ", ", + "NullC", + "]>; filters: ", + "ArrayC", + "<", + "UnknownRecordC", + ">; dropPartialBuckets: ", + "BooleanC", + "; alignDataToEnd: ", + "BooleanC", + "; }>]>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIResponseRT", + "type": "Object", + "tags": [], + "label": "MetricsAPIResponseRT", + "description": [], + "signature": [ "TypeC", - "<{ percentiles: ", + "<{ series: ", + "ArrayC", + "<", + "IntersectionC", + "<[", + "IntersectionC", + "<[", "TypeC", - "<{ field: ", + "<{ id: ", "StringC", - "; percents: ", + "; columns: ", "ArrayC", "<", - "NumberC", - ">; }>; }>, ", "TypeC", - "<{ bucket_script: ", + "<{ name: ", + "StringC", + "; type: ", + "KeyofC", + "<{ date: null; number: null; string: null; }>; }>>; rows: ", + "ArrayC", + "<", "IntersectionC", "<[", "TypeC", - "<{ buckets_path: ", + "<{ timestamp: ", + "NumberC", + "; }>, ", "RecordC", "<", "StringC", ", ", + "UnionC", + "<[", "StringC", - ">; script: ", - "TypeC", - "<{ source: ", + ", ", + "NumberC", + ", ", + "NullC", + ", ", + "UndefinedC", + ", ", + "ArrayC", + "<", + "ObjectC", + ">]>>]>>; }>, ", + "PartialC", + "<{ keys: ", + "ArrayC", + "<", "StringC", - "; lang: ", - "KeyofC", - "<{ painless: null; expression: null; }>; }>; }>, ", + ">; }>]>, ", "PartialC", - "<{ gap_policy: ", - "KeyofC", - "<{ skip: null; insert_zeros: null; }>; }>]>; }>, ", - "TypeC", - "<{ cumulative_sum: ", - "TypeC", - "<{ buckets_path: ", + "<{ metricsets: ", + "ArrayC", + "<", "StringC", - "; }>; }>, ", - "TypeC", - "<{ derivative: ", + ">; }>]>>; info: ", + "IntersectionC", + "<[", "TypeC", - "<{ buckets_path: ", + "<{ afterKey: ", + "UnionC", + "<[", + "NullC", + ", ", + "RecordC", + "<", "StringC", - "; gap_policy: ", - "KeyofC", - "<{ skip: null; insert_zeros: null; }>; unit: ", + ", ", + "UnionC", + "<[", "StringC", - "; }>; }>, ", + ", ", + "NullC", + "]>>, ", + "UndefinedC", + "]>; }>, ", + "PartialC", + "<{ interval: ", + "NumberC", + "; }>]>; }>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIResponseSeriesRT", + "type": "Object", + "tags": [], + "label": "MetricsAPIResponseSeriesRT", + "description": [], + "signature": [ + "IntersectionC", + "<[", + "IntersectionC", + "<[", "TypeC", - "<{ sum_bucket: ", + "<{ id: ", + "StringC", + "; columns: ", + "ArrayC", + "<", "TypeC", - "<{ buckets_path: ", + "<{ name: ", "StringC", - "; }>; }>, ", - "Type", + "; type: ", + "KeyofC", + "<{ date: null; number: null; string: null; }>; }>>; rows: ", + "ArrayC", "<", - "SnapshotTermsWithAggregation", - ", ", - "SnapshotTermsWithAggregation", - ", unknown>, ", + "IntersectionC", + "<[", "TypeC", - "<{ cardinality: ", + "<{ timestamp: ", + "NumberC", + "; }>, ", + "RecordC", + "<", + "StringC", + ", ", + "UnionC", + "<[", + "StringC", + ", ", + "NumberC", + ", ", + "NullC", + ", ", + "UndefinedC", + ", ", + "ArrayC", + "<", + "ObjectC", + ">]>>]>>; }>, ", "PartialC", - "<{ field: ", + "<{ keys: ", + "ArrayC", + "<", "StringC", - "; }>; }>, ", - "TypeC", - "<{ top_metrics: ", + ">; }>]>, ", + "PartialC", + "<{ metricsets: ", + "ArrayC", + "<", + "StringC", + ">; }>]>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPIRowRT", + "type": "Object", + "tags": [], + "label": "MetricsAPIRowRT", + "description": [], + "signature": [ "IntersectionC", "<[", "TypeC", - "<{ metrics: ", + "<{ timestamp: ", + "NumberC", + "; }>, ", + "RecordC", + "<", + "StringC", + ", ", "UnionC", "<[", + "StringC", + ", ", + "NumberC", + ", ", + "NullC", + ", ", + "UndefinedC", + ", ", "ArrayC", "<", + "ObjectC", + ">]>>]>" + ], + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "metricsDataAccess", + "id": "def-common.MetricsAPISeriesRT", + "type": "Object", + "tags": [], + "label": "MetricsAPISeriesRT", + "description": [], + "signature": [ + "IntersectionC", + "<[", "TypeC", - "<{ field: ", + "<{ id: ", "StringC", - "; }>>, ", + "; columns: ", + "ArrayC", + "<", "TypeC", - "<{ field: ", + "<{ name: ", "StringC", - "; }>]>; }>, ", - "PartialC", - "<{ size: ", + "; type: ", + "KeyofC", + "<{ date: null; number: null; string: null; }>; }>>; rows: ", + "ArrayC", + "<", + "IntersectionC", + "<[", + "TypeC", + "<{ timestamp: ", "NumberC", - "; sort: ", + "; }>, ", "RecordC", "<", "StringC", ", ", "UnionC", "<[", - "LiteralC", - "<\"desc\">, ", - "LiteralC", - "<\"asc\">]>>; }>]>; }>, ", - "TypeC", - "<{ filter: ", - "TypeC", - "<{ exists: ", - "TypeC", - "<{ field: ", "StringC", - "; }>; }>; aggs: ", - "TypeC", - "<{ period: ", - "TypeC", - "<{ max: ", - "TypeC", - "<{ field: ", + ", ", + "NumberC", + ", ", + "NullC", + ", ", + "UndefinedC", + ", ", + "ArrayC", + "<", + "ObjectC", + ">]>>]>>; }>, ", + "PartialC", + "<{ keys: ", + "ArrayC", + "<", "StringC", - "; }>; }>; }>; }>]>>" + ">; }>]>" ], - "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", + "path": "x-pack/plugins/observability_solution/metrics_data_access/common/http_api/metrics_api.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -2066,10 +3228,10 @@ }, { "parentPluginId": "metricsDataAccess", - "id": "def-common.SnapshotMetricTypeKeys.cpuTotal", + "id": "def-common.SnapshotMetricTypeKeys.cpuV2", "type": "Uncategorized", "tags": [], - "label": "cpuTotal", + "label": "cpuV2", "description": [], "signature": [ "null" @@ -2510,7 +3672,7 @@ "description": [], "signature": [ "KeyofC", - "<{ count: null; cpuTotal: null; cpu: null; diskLatency: null; diskSpaceUsage: null; load: null; memory: null; memoryFree: null; memoryTotal: null; normalizedLoad1m: null; tx: null; rx: null; txV2: null; rxV2: null; logRate: null; diskIOReadBytes: null; diskIOWriteBytes: null; s3TotalRequests: null; s3NumberOfObjects: null; s3BucketSize: null; s3DownloadBytes: null; s3UploadBytes: null; rdsConnections: null; rdsQueriesExecuted: null; rdsActiveTransactions: null; rdsLatency: null; sqsMessagesVisible: null; sqsMessagesDelayed: null; sqsMessagesSent: null; sqsMessagesEmpty: null; sqsOldestMessage: null; custom: null; }>" + "<{ count: null; cpuV2: null; cpu: null; diskLatency: null; diskSpaceUsage: null; load: null; memory: null; memoryFree: null; memoryTotal: null; normalizedLoad1m: null; tx: null; rx: null; txV2: null; rxV2: null; logRate: null; diskIOReadBytes: null; diskIOWriteBytes: null; s3TotalRequests: null; s3NumberOfObjects: null; s3BucketSize: null; s3DownloadBytes: null; s3UploadBytes: null; rdsConnections: null; rdsQueriesExecuted: null; rdsActiveTransactions: null; rdsLatency: null; sqsMessagesVisible: null; sqsMessagesDelayed: null; sqsMessagesSent: null; sqsMessagesEmpty: null; sqsOldestMessage: null; custom: null; }>" ], "path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/types.ts", "deprecated": false, diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index 6e3d77f031903..21983f6f07d17 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 108 | 8 | 108 | 6 | +| 128 | 8 | 128 | 5 | ## Client @@ -56,6 +56,9 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- ### Functions +### Interfaces + + ### Consts, variables and types diff --git a/api_docs/ml.devdocs.json b/api_docs/ml.devdocs.json index 2667ec97d5072..8a976f079a485 100644 --- a/api_docs/ml.devdocs.json +++ b/api_docs/ml.devdocs.json @@ -1343,7 +1343,13 @@ ">; getDataFrameAnalyticsStats(analyticsId?: string | undefined): Promise<", "GetDataFrameAnalyticsStatsResponse", ">; createDataFrameAnalytics(analyticsId: string, analyticsConfig: ", - "DeepPartial", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.DeepPartialObject", + "text": "DeepPartialObject" + }, "<", { "pluginId": "@kbn/ml-data-frame-analytics-utils", @@ -1373,7 +1379,13 @@ ">; jobsExist(analyticsIds: string[], allSpaces?: boolean): Promise<", "JobsExistsResponse", ">; evaluateDataFrameAnalytics(evaluateConfig: any): Promise; explainDataFrameAnalytics(jobConfig: ", - "DeepPartial", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.DeepPartialObject", + "text": "DeepPartialObject" + }, "<", { "pluginId": "@kbn/ml-data-frame-analytics-utils", @@ -1387,7 +1399,13 @@ ">; startDataFrameAnalytics(analyticsId: string): Promise; stopDataFrameAnalytics(analyticsId: string, force?: boolean): Promise; getAnalyticsAuditMessages(analyticsId: string): Promise<", "JobMessage", "[]>; validateDataFrameAnalytics(analyticsConfig: ", - "DeepPartial", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.DeepPartialObject", + "text": "DeepPartialObject" + }, "<", { "pluginId": "@kbn/ml-data-frame-analytics-utils", @@ -1717,10 +1735,10 @@ "text": "ModelConfig" }, "): Promise<", - "InferenceModelConfigContainer", - ">; getAllInferenceEndpoints(): Promise<{ endpoints: ", - "InferenceModelConfigContainer", - "[]; }>; }; notifications: { findMessages(params: ", + "InferenceInferenceEndpointInfo", + ">; getAllInferenceEndpoints(): Promise<", + "InferenceGetResponse", + ">; }; notifications: { findMessages(params: ", "NotificationsQueryParams", "): Promise<", "NotificationsSearchResponse", diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index a5fd03d22f8be..5c00beaa1f2f0 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questi | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 154 | 3 | 67 | 102 | +| 154 | 3 | 67 | 101 | ## Client diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx index 5e7b080d1c64c..6df6f57ef01ab 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-08-09 +date: 2024-08-27 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 8b241b5c6f388..12bef159b0c21 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index f8af3c0b1736e..9db57429f5cfd 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index 0ac7656423f6c..7e06a0834bf6d 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-08-09 +date: 2024-08-27 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 8ad140c1d9143..1eb4d22046907 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-08-09 +date: 2024-08-27 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 34e4ced8c545f..8d474055489c5 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-08-09 +date: 2024-08-27 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 cd598758d56be..6651a704fce86 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-08-09 +date: 2024-08-27 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 472391e133e2d..eaa4e3814d3d8 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -3821,6 +3821,27 @@ "path": "x-pack/plugins/observability_solution/observability/public/plugin.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-public.ObservabilityPublicPluginsStart.investigate", + "type": "Object", + "tags": [], + "label": "investigate", + "description": [], + "signature": [ + { + "pluginId": "investigate", + "scope": "public", + "docId": "kibInvestigatePluginApi", + "section": "def-public.InvestigatePublicStart", + "text": "InvestigatePublicStart" + }, + " | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability/public/plugin.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -5495,7 +5516,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -5531,6 +5552,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -5589,6 +5636,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -6183,7 +6232,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -6209,7 +6260,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -6455,6 +6506,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -6816,7 +6869,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -6852,6 +6905,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -6910,6 +6989,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -7504,7 +7585,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -7530,7 +7613,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -7776,6 +7859,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -8722,10 +8807,10 @@ "signature": [ "{ [x: string]: { endpoint: string; params?: ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " | undefined; handler: ({}: any) => Promise; } & Record; }" @@ -8861,7 +8946,13 @@ "text": "ObservabilityRouteCreateOptions" }, "; }[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", @@ -8999,7 +9090,7 @@ "SearchInnerHitsResult", "> | undefined; matched_queries?: string[] | undefined; _nested?: ", "SearchNestedIdentity", - " | undefined; _ignored?: string[] | undefined; ignored_field_values?: Record | undefined; _shard?: string | undefined; _node?: string | undefined; _routing?: string | undefined; _seq_no?: number | undefined; _primary_term?: number | undefined; _version?: number | undefined; sort?: ", + " | undefined; _ignored?: string[] | undefined; ignored_field_values?: Record | undefined; _shard?: string | undefined; _node?: string | undefined; _routing?: string | undefined; _rank?: number | undefined; _seq_no?: number | undefined; _primary_term?: number | undefined; _version?: number | undefined; sort?: ", "SortResults", " | undefined; }>; find: (findParams: { query?: string | undefined; start?: string | undefined; end?: string | undefined; sloId?: string | undefined; sloInstanceId?: string | undefined; serviceName?: string | undefined; }) => Promise<{ items: { id: string | undefined; annotation: { title: string; type?: string | undefined; style?: { icon?: string | undefined; color?: string | undefined; line?: { width?: number | undefined; style?: \"dashed\" | \"solid\" | \"dotted\" | undefined; iconPosition?: \"top\" | \"bottom\" | undefined; textDecoration?: \"none\" | \"name\" | undefined; } | undefined; rect?: { fill?: \"inside\" | \"outside\" | undefined; } | undefined; } | undefined; }; '@timestamp': string; message: string; event?: ({ start: string; } & { end?: string | undefined; }) | undefined; tags?: string[] | undefined; service?: { name?: string | undefined; environment?: string | undefined; version?: string | undefined; } | undefined; monitor?: { id?: string | undefined; } | undefined; slo?: ({ id: string; } & { instanceId?: string | undefined; }) | undefined; host?: { name?: string | undefined; } | undefined; }[]; total: number; }>; delete: (deleteParams: { id: string; }) => Promise<", "DeleteByQueryResponse", @@ -10888,7 +10979,7 @@ "label": "value", "description": [], "signature": [ - "false" + "true" ], "path": "x-pack/plugins/observability_solution/observability/server/ui_settings.ts", "deprecated": false, @@ -12801,7 +12892,7 @@ "SearchInnerHitsResult", "> | undefined; matched_queries?: string[] | undefined; _nested?: ", "SearchNestedIdentity", - " | undefined; _ignored?: string[] | undefined; ignored_field_values?: Record | undefined; _shard?: string | undefined; _node?: string | undefined; _routing?: string | undefined; _seq_no?: number | undefined; _primary_term?: number | undefined; _version?: number | undefined; sort?: ", + " | undefined; _ignored?: string[] | undefined; ignored_field_values?: Record | undefined; _shard?: string | undefined; _node?: string | undefined; _routing?: string | undefined; _rank?: number | undefined; _seq_no?: number | undefined; _primary_term?: number | undefined; _version?: number | undefined; sort?: ", "SortResults", " | undefined; }>; find: (findParams: { query?: string | undefined; start?: string | undefined; end?: string | undefined; sloId?: string | undefined; sloInstanceId?: string | undefined; serviceName?: string | undefined; }) => Promise<{ items: { id: string | undefined; annotation: { title: string; type?: string | undefined; style?: { icon?: string | undefined; color?: string | undefined; line?: { width?: number | undefined; style?: \"dashed\" | \"solid\" | \"dotted\" | undefined; iconPosition?: \"top\" | \"bottom\" | undefined; textDecoration?: \"none\" | \"name\" | undefined; } | undefined; rect?: { fill?: \"inside\" | \"outside\" | undefined; } | undefined; } | undefined; }; '@timestamp': string; message: string; event?: ({ start: string; } & { end?: string | undefined; }) | undefined; tags?: string[] | undefined; service?: { name?: string | undefined; environment?: string | undefined; version?: string | undefined; } | undefined; monitor?: { id?: string | undefined; } | undefined; slo?: ({ id: string; } & { instanceId?: string | undefined; }) | undefined; host?: { name?: string | undefined; } | undefined; }[]; total: number; }>; delete: (deleteParams: { id: string; }) => Promise<", "DeleteByQueryResponse", diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index dfeb8dd25f1c9..0061af2708ea7 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-08-09 +date: 2024-08-27 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 | |-------------------|-----------|------------------------|-----------------| -| 701 | 2 | 694 | 22 | +| 702 | 2 | 695 | 22 | ## Client diff --git a/api_docs/observability_a_i_assistant.devdocs.json b/api_docs/observability_a_i_assistant.devdocs.json index 65159e5b5d6a5..a1383e4f2ba6f 100644 --- a/api_docs/observability_a_i_assistant.devdocs.json +++ b/api_docs/observability_a_i_assistant.devdocs.json @@ -1231,6 +1231,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "observabilityAIAssistant", + "id": "def-public.KnowledgeBaseEntry.type", + "type": "CompoundType", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"user_instruction\" | \"contextual\" | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_ai_assistant/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "observabilityAIAssistant", "id": "def-public.KnowledgeBaseEntry.public", @@ -1593,7 +1607,7 @@ "text": "Message" }, "[]; persist: boolean; disableFunctions: boolean | { except: string[]; }; signal: AbortSignal; responseLanguage?: string | undefined; instructions?: ", - "UserInstructionOrPlainText", + "AdHocInstruction", "[] | undefined; }) => ", "Observable", "<", @@ -1746,7 +1760,7 @@ "label": "instructions", "description": [], "signature": [ - "UserInstructionOrPlainText", + "AdHocInstruction", "[] | undefined" ], "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/types.ts", @@ -2050,12 +2064,12 @@ "label": "callApi", "description": [], "signature": [ - "(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", + "(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ClientRequestParamsOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, "<{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"; params?: ", @@ -2166,6 +2180,46 @@ }, ">; }[]; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", + "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + ") => Promise<{ userInstructions: (", + "Instruction", + " & { public?: boolean | undefined; })[]; }>; } & ", + "ObservabilityAIAssistantRouteCreateOptions", + "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + "TypeC", + "<{ body: ", + "TypeC", + "<{ id: ", + "StringC", + "; text: ", + "BrandC", + "<", + "StringC", + ", ", + { + "pluginId": "@kbn/io-ts-utils", + "scope": "common", + "docId": "kibKbnIoTsUtilsPluginApi", + "section": "def-common.NonEmptyStringBrand", + "text": "NonEmptyStringBrand" + }, + ">; public: ", + "Type", + "; }>; }> | undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + " & { params: { body: { id: string; text: ", + "Branded", + "; public: boolean; }; }; }) => Promise; } & ", + "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", "TypeC", "<{ query: ", @@ -2232,7 +2286,13 @@ "LiteralC", "<\"high\">]>; is_correction: ", "Type", - "; public: ", + "; type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"contextual\">]>; public: ", "Type", "; labels: ", "RecordC", @@ -2252,7 +2312,7 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", + ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", "TypeC", @@ -2481,22 +2541,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "PartialC", "<{ body: ", "PartialC", @@ -2532,7 +2592,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", "Readable", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", @@ -2589,22 +2649,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "TypeC", "<{ body: ", "TypeC", @@ -2626,7 +2686,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body: { screenContexts: ", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", "ObservabilityAIAssistantScreenContextRequest", "[]; }; }; }) => Promise<", "Readable", @@ -2712,10 +2772,10 @@ "ObservabilityAIAssistantRouteCreateOptions", "; }, TEndpoint> & Omit & { signal: AbortSignal | null; }>) => Promise<", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ReturnOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ReturnOf", "text": "ReturnOf" }, "<{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"; params?: ", @@ -2826,6 +2886,46 @@ }, ">; }[]; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", + "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + ") => Promise<{ userInstructions: (", + "Instruction", + " & { public?: boolean | undefined; })[]; }>; } & ", + "ObservabilityAIAssistantRouteCreateOptions", + "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + "TypeC", + "<{ body: ", + "TypeC", + "<{ id: ", + "StringC", + "; text: ", + "BrandC", + "<", + "StringC", + ", ", + { + "pluginId": "@kbn/io-ts-utils", + "scope": "common", + "docId": "kibKbnIoTsUtilsPluginApi", + "section": "def-common.NonEmptyStringBrand", + "text": "NonEmptyStringBrand" + }, + ">; public: ", + "Type", + "; }>; }> | undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + " & { params: { body: { id: string; text: ", + "Branded", + "; public: boolean; }; }; }) => Promise; } & ", + "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", "TypeC", "<{ query: ", @@ -2892,7 +2992,13 @@ "LiteralC", "<\"high\">]>; is_correction: ", "Type", - "; public: ", + "; type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"contextual\">]>; public: ", "Type", "; labels: ", "RecordC", @@ -2912,7 +3018,7 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", + ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", "TypeC", @@ -3141,22 +3247,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "PartialC", "<{ body: ", "PartialC", @@ -3192,7 +3298,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", "Readable", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", @@ -3249,22 +3355,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "TypeC", "<{ body: ", "TypeC", @@ -3286,7 +3392,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body: { screenContexts: ", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", "ObservabilityAIAssistantScreenContextRequest", "[]; }; }; }) => Promise<", "Readable", @@ -3387,7 +3493,7 @@ "signature": [ "TEndpoint" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false }, @@ -3402,31 +3508,31 @@ "RequiredKeys", "<", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ClientRequestParamsOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions> extends never ? [] | [", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ClientRequestParamsOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions] : [", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.ClientRequestParamsOf", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions]" ], - "path": "packages/kbn-server-route-repository/src/typings.ts", + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false } @@ -3860,6 +3966,18 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityAIAssistant", + "id": "def-public.KnowledgeBaseType", + "type": "Enum", + "tags": [], + "label": "KnowledgeBaseType", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_ai_assistant/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityAIAssistant", "id": "def-public.MessageRole", @@ -4101,6 +4219,46 @@ }, ">; }[]; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", + "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + ") => Promise<{ userInstructions: (", + "Instruction", + " & { public?: boolean | undefined; })[]; }>; } & ", + "ObservabilityAIAssistantRouteCreateOptions", + "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + "TypeC", + "<{ body: ", + "TypeC", + "<{ id: ", + "StringC", + "; text: ", + "BrandC", + "<", + "StringC", + ", ", + { + "pluginId": "@kbn/io-ts-utils", + "scope": "common", + "docId": "kibKbnIoTsUtilsPluginApi", + "section": "def-common.NonEmptyStringBrand", + "text": "NonEmptyStringBrand" + }, + ">; public: ", + "Type", + "; }>; }> | undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + " & { params: { body: { id: string; text: ", + "Branded", + "; public: boolean; }; }; }) => Promise; } & ", + "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", "TypeC", "<{ query: ", @@ -4167,7 +4325,13 @@ "LiteralC", "<\"high\">]>; is_correction: ", "Type", - "; public: ", + "; type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"contextual\">]>; public: ", "Type", "; labels: ", "RecordC", @@ -4187,7 +4351,7 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", + ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", "TypeC", @@ -4416,22 +4580,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "PartialC", "<{ body: ", "PartialC", @@ -4467,7 +4631,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", "Readable", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", @@ -4524,22 +4688,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "TypeC", "<{ body: ", "TypeC", @@ -4561,7 +4725,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body: { screenContexts: ", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", "ObservabilityAIAssistantScreenContextRequest", "[]; }; }; }) => Promise<", "Readable", @@ -4646,7 +4810,13 @@ ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; }[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", @@ -4993,6 +5163,46 @@ }, ">; }[]; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", + "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + ") => Promise<{ userInstructions: (", + "Instruction", + " & { public?: boolean | undefined; })[]; }>; } & ", + "ObservabilityAIAssistantRouteCreateOptions", + "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + "TypeC", + "<{ body: ", + "TypeC", + "<{ id: ", + "StringC", + "; text: ", + "BrandC", + "<", + "StringC", + ", ", + { + "pluginId": "@kbn/io-ts-utils", + "scope": "common", + "docId": "kibKbnIoTsUtilsPluginApi", + "section": "def-common.NonEmptyStringBrand", + "text": "NonEmptyStringBrand" + }, + ">; public: ", + "Type", + "; }>; }> | undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + " & { params: { body: { id: string; text: ", + "Branded", + "; public: boolean; }; }; }) => Promise; } & ", + "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", "TypeC", "<{ query: ", @@ -5059,7 +5269,13 @@ "LiteralC", "<\"high\">]>; is_correction: ", "Type", - "; public: ", + "; type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"contextual\">]>; public: ", "Type", "; labels: ", "RecordC", @@ -5079,7 +5295,7 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", + ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", "TypeC", @@ -5308,22 +5524,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "PartialC", "<{ body: ", "PartialC", @@ -5359,7 +5575,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", "Readable", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", @@ -5416,22 +5632,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "TypeC", "<{ body: ", "TypeC", @@ -5453,7 +5669,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body: { screenContexts: ", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", "ObservabilityAIAssistantScreenContextRequest", "[]; }; }; }) => Promise<", "Readable", @@ -5539,20 +5755,26 @@ "ObservabilityAIAssistantRouteCreateOptions", "; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " | undefined | undefined; handler: ({}: any) => Promise; } & ", - "ServerRouteCreateOptions", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRouteCreateOptions", + "text": "ServerRouteCreateOptions" + }, " ? TRouteParamsRT extends ", { - "pluginId": "@kbn/server-route-repository", - "scope": "server", - "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-server.RouteParamsRT", + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " ? ClientRequestParamsOfType : {} : never" @@ -5570,7 +5792,7 @@ "label": "ObservabilityAIAssistantAPIEndpoint", "description": [], "signature": [ - "\"POST /internal/observability_ai_assistant/chat\" | \"POST /internal/observability_ai_assistant/chat/recall\" | \"POST /internal/observability_ai_assistant/chat/complete\" | \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\" | \"GET /internal/observability_ai_assistant/conversation/{conversationId}\" | \"POST /internal/observability_ai_assistant/conversations\" | \"POST /internal/observability_ai_assistant/conversation\" | \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\" | \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\" | \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\" | \"GET /internal/observability_ai_assistant/connectors\" | \"GET /internal/observability_ai_assistant/functions\" | \"POST /internal/observability_ai_assistant/functions/recall\" | \"POST /internal/observability_ai_assistant/functions/summarize\" | \"POST /internal/observability_ai_assistant/kb/setup\" | \"GET /internal/observability_ai_assistant/kb/status\" | \"GET /internal/observability_ai_assistant/kb/entries\" | \"POST /internal/observability_ai_assistant/kb/entries/import\" | \"POST /internal/observability_ai_assistant/kb/entries/save\" | \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"" + "\"POST /internal/observability_ai_assistant/chat\" | \"POST /internal/observability_ai_assistant/chat/recall\" | \"POST /internal/observability_ai_assistant/chat/complete\" | \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\" | \"GET /internal/observability_ai_assistant/conversation/{conversationId}\" | \"POST /internal/observability_ai_assistant/conversations\" | \"POST /internal/observability_ai_assistant/conversation\" | \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\" | \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\" | \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\" | \"GET /internal/observability_ai_assistant/connectors\" | \"GET /internal/observability_ai_assistant/functions\" | \"POST /internal/observability_ai_assistant/functions/recall\" | \"POST /internal/observability_ai_assistant/functions/summarize\" | \"POST /internal/observability_ai_assistant/kb/setup\" | \"GET /internal/observability_ai_assistant/kb/status\" | \"GET /internal/observability_ai_assistant/kb/entries\" | \"PUT /internal/observability_ai_assistant/kb/user_instructions\" | \"GET /internal/observability_ai_assistant/kb/user_instructions\" | \"POST /internal/observability_ai_assistant/kb/entries/import\" | \"POST /internal/observability_ai_assistant/kb/entries/save\" | \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"" ], "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/api/index.ts", "deprecated": false, @@ -6437,6 +6659,46 @@ }, ">; }[]; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", + "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + ") => Promise<{ userInstructions: (", + "Instruction", + " & { public?: boolean | undefined; })[]; }>; } & ", + "ObservabilityAIAssistantRouteCreateOptions", + "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + "TypeC", + "<{ body: ", + "TypeC", + "<{ id: ", + "StringC", + "; text: ", + "BrandC", + "<", + "StringC", + ", ", + { + "pluginId": "@kbn/io-ts-utils", + "scope": "common", + "docId": "kibKbnIoTsUtilsPluginApi", + "section": "def-common.NonEmptyStringBrand", + "text": "NonEmptyStringBrand" + }, + ">; public: ", + "Type", + "; }>; }> | undefined; handler: ({}: ", + "ObservabilityAIAssistantRouteHandlerResources", + " & { params: { body: { id: string; text: ", + "Branded", + "; public: boolean; }; }; }) => Promise; } & ", + "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", "TypeC", "<{ query: ", @@ -6503,7 +6765,13 @@ "LiteralC", "<\"high\">]>; is_correction: ", "Type", - "; public: ", + "; type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"contextual\">]>; public: ", "Type", "; labels: ", "RecordC", @@ -6523,7 +6791,7 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", + ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", "TypeC", @@ -6752,22 +7020,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "PartialC", "<{ body: ", "PartialC", @@ -6803,7 +7071,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", "Readable", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", @@ -6860,22 +7128,22 @@ ">; }>]>; instructions: ", "ArrayC", "<", - "UnionC", - "<[", - "StringC", - ", ", "IntersectionC", "<[", - "TypeC", + "PartialC", "<{ doc_id: ", "StringC", - "; text: ", - "StringC", "; }>, ", - "PartialC", - "<{ system: ", - "BooleanC", - "; }>]>]>>; }>]>; }>, ", + "TypeC", + "<{ text: ", + "StringC", + "; instruction_type: ", + "UnionC", + "<[", + "LiteralC", + "<\"user_instruction\">, ", + "LiteralC", + "<\"application_instruction\">]>; }>]>>; }>]>; }>, ", "TypeC", "<{ body: ", "TypeC", @@ -6897,7 +7165,7 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: (string | ({ doc_id: string; text: string; } & { system?: boolean | undefined; }))[] | undefined; }; } & { body: { screenContexts: ", + "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; responseLanguage?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", "ObservabilityAIAssistantScreenContextRequest", "[]; }; }; }) => Promise<", "Readable", @@ -7909,6 +8177,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "observabilityAIAssistant", + "id": "def-common.KnowledgeBaseEntry.type", + "type": "CompoundType", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"user_instruction\" | \"contextual\" | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_ai_assistant/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "observabilityAIAssistant", "id": "def-common.KnowledgeBaseEntry.public", @@ -8080,6 +8362,18 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityAIAssistant", + "id": "def-common.KnowledgeBaseType", + "type": "Enum", + "tags": [], + "label": "KnowledgeBaseType", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_ai_assistant/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityAIAssistant", "id": "def-common.MessageRole", diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index 542a4ff27ca5d..e39ad294021e9 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 290 | 1 | 288 | 26 | +| 294 | 1 | 292 | 27 | ## Client diff --git a/api_docs/observability_a_i_assistant_app.mdx b/api_docs/observability_a_i_assistant_app.mdx index e2e99cac8af92..8cbaaa872d4cb 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-08-09 +date: 2024-08-27 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 845a6410839a9..9441612794ad0 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-08-09 +date: 2024-08-27 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 a80d8fe2af855..2740655f8fa99 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-08-09 +date: 2024-08-27 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 450b385bb3cdb..f9dfd904a907b 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.devdocs.json b/api_docs/observability_shared.devdocs.json index f038181d8e7c0..57a4bf6fb5ad6 100644 --- a/api_docs/observability_shared.devdocs.json +++ b/api_docs/observability_shared.devdocs.json @@ -2356,108 +2356,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "observabilityShared", - "id": "def-public.AssetDetailsLocatorParams", - "type": "Interface", - "tags": [], - "label": "AssetDetailsLocatorParams", - "description": [], - "signature": [ - { - "pluginId": "observabilityShared", - "scope": "public", - "docId": "kibObservabilitySharedPluginApi", - "section": "def-public.AssetDetailsLocatorParams", - "text": "AssetDetailsLocatorParams" - }, - " extends ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.SerializableRecord", - "text": "SerializableRecord" - } - ], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "observabilityShared", - "id": "def-public.AssetDetailsLocatorParams.assetType", - "type": "string", - "tags": [], - "label": "assetType", - "description": [], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observabilityShared", - "id": "def-public.AssetDetailsLocatorParams.assetId", - "type": "string", - "tags": [], - "label": "assetId", - "description": [], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observabilityShared", - "id": "def-public.AssetDetailsLocatorParams.state", - "type": "Object", - "tags": [], - "label": "state", - "description": [], - "signature": [ - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.SerializableRecord", - "text": "SerializableRecord" - }, - " | undefined" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observabilityShared", - "id": "def-public.AssetDetailsLocatorParams._a", - "type": "Object", - "tags": [], - "label": "_a", - "description": [], - "signature": [ - "{ time?: { from?: string | undefined; to?: string | undefined; } | undefined; interval?: string | undefined; } | undefined" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observabilityShared", - "id": "def-public.AssetDetailsLocatorParams.assetDetails", - "type": "Object", - "tags": [], - "label": "assetDetails", - "description": [], - "signature": [ - "{ tabId?: string | undefined; dashboardId?: string | undefined; dateRange?: { from: string; to: string; } | undefined; } | undefined" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "observabilityShared", "id": "def-public.EmbeddableProfilingSearchBarProps", @@ -3389,36 +3287,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "observabilityShared", - "id": "def-public.ASSET_DETAILS_FLYOUT_LOCATOR_ID", - "type": "string", - "tags": [], - "label": "ASSET_DETAILS_FLYOUT_LOCATOR_ID", - "description": [], - "signature": [ - "\"ASSET_DETAILS_FLYOUT_LOCATOR\"" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_flyout_locator.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "observabilityShared", - "id": "def-public.ASSET_DETAILS_LOCATOR_ID", - "type": "string", - "tags": [], - "label": "ASSET_DETAILS_LOCATOR_ID", - "description": [], - "signature": [ - "\"ASSET_DETAILS_LOCATOR\"" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "observabilityShared", "id": "def-public.casesFeatureId", @@ -3502,21 +3370,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "observabilityShared", - "id": "def-public.INVENTORY_LOCATOR_ID", - "type": "string", - "tags": [], - "label": "INVENTORY_LOCATOR_ID", - "description": [], - "signature": [ - "\"INVENTORY_LOCATOR\"" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/inventory_locator.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "observabilityShared", "id": "def-public.LazyObservabilityPageTemplateProps", @@ -3705,11 +3558,29 @@ "description": [], "signature": [ "{ flamegraphLocator: ", - "FlamegraphLocator", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.FlamegraphLocator", + "text": "FlamegraphLocator" + }, "; topNFunctionsLocator: ", - "TopNFunctionsLocator", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TopNFunctionsLocator", + "text": "TopNFunctionsLocator" + }, "; stacktracesLocator: ", - "StacktracesLocator", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.StacktracesLocator", + "text": "StacktracesLocator" + }, "; }" ], "path": "x-pack/plugins/observability_solution/observability_shared/public/plugin.ts", @@ -3830,214 +3701,2051 @@ "objects": [] }, "common": { - "classes": [], - "functions": [ + "classes": [ { "parentPluginId": "observabilityShared", - "id": "def-common.colorTransformer", - "type": "Function", + "id": "def-common.AssetDetailsFlyoutLocatorDefinition", + "type": "Class", "tags": [], - "label": "colorTransformer", + "label": "AssetDetailsFlyoutLocatorDefinition", "description": [], "signature": [ - "(color: ", { "pluginId": "observabilityShared", "scope": "common", "docId": "kibObservabilitySharedPluginApi", - "section": "def-common.Color", - "text": "Color" + "section": "def-common.AssetDetailsFlyoutLocatorDefinition", + "text": "AssetDetailsFlyoutLocatorDefinition" }, - ") => string" + " implements ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsFlyoutLocatorParams", + "text": "AssetDetailsFlyoutLocatorParams" + }, + ">" ], - "path": "x-pack/plugins/observability_solution/observability_shared/common/color_palette.ts", + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", "deprecated": false, "trackAdoption": false, - "returnComment": [], "children": [ { "parentPluginId": "observabilityShared", - "id": "def-common.colorTransformer.$1", - "type": "CompoundType", + "id": "def-common.AssetDetailsFlyoutLocatorDefinition.id", + "type": "string", "tags": [], - "label": "color", + "label": "id", "description": [], "signature": [ - "\"color0\" | \"color1\" | \"color2\" | \"color3\" | \"color4\" | \"color5\" | \"color6\" | \"color7\" | \"color8\" | \"color9\"" + "\"ASSET_DETAILS_FLYOUT_LOCATOR\"" ], - "path": "x-pack/plugins/observability_solution/observability_shared/common/color_palette.ts", + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsFlyoutLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "(params: ", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsFlyoutLocatorParams", + "text": "AssetDetailsFlyoutLocatorParams" + }, + ") => Promise<{ app: string; path: string; state: {}; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsFlyoutLocatorDefinition.getLocation.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsFlyoutLocatorParams", + "text": "AssetDetailsFlyoutLocatorParams" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false }, { "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse", - "type": "Function", + "id": "def-common.AssetDetailsLocatorDefinition", + "type": "Class", "tags": [], - "label": "getInspectResponse", - "description": [ - "\nCreate a formatted response to be sent in the _inspect key for use in the\ninspector." - ], + "label": "AssetDetailsLocatorDefinition", + "description": [], "signature": [ - "({\n esError,\n esRequestParams,\n esRequestStatus,\n esResponse,\n kibanaRequest,\n operationName,\n startTime,\n}: { esError: ", - "WrappedElasticsearchClientError", - " | null; esRequestParams: Record; esRequestStatus: ", { - "pluginId": "inspector", + "pluginId": "observabilityShared", "scope": "common", - "docId": "kibInspectorPluginApi", - "section": "def-common.RequestStatus", - "text": "RequestStatus" + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsLocatorDefinition", + "text": "AssetDetailsLocatorDefinition" }, - "; esResponse: any; kibanaRequest: ", + " implements ", { - "pluginId": "@kbn/core-http-server", - "scope": "server", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-server.KibanaRequest", - "text": "KibanaRequest" + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" }, - "; operationName: string; startTime: number; }) => ", + "<", { - "pluginId": "inspector", + "pluginId": "observabilityShared", "scope": "common", - "docId": "kibInspectorPluginApi", - "section": "def-common.Request", - "text": "Request" - } + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsLocatorParams", + "text": "AssetDetailsLocatorParams" + }, + ">" ], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse.$1", - "type": "Object", + "id": "def-common.AssetDetailsLocatorDefinition.id", + "type": "string", "tags": [], - "label": "{\n esError,\n esRequestParams,\n esRequestStatus,\n esResponse,\n kibanaRequest,\n operationName,\n startTime,\n}", + "label": "id", "description": [], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "signature": [ + "\"ASSET_DETAILS_LOCATOR\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse.$1.esError", - "type": "CompoundType", - "tags": [], - "label": "esError", - "description": [], - "signature": [ - "WrappedElasticsearchClientError", - " | null" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", - "deprecated": false, - "trackAdoption": false + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "(params: ", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsLocatorParams", + "text": "AssetDetailsLocatorParams" }, + " & { state?: ", { - "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse.$1.esRequestParams", - "type": "Object", - "tags": [], - "label": "esRequestParams", - "description": [], - "signature": [ - "{ [x: string]: any; }" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", - "deprecated": false, - "trackAdoption": false + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + " | undefined; }) => Promise<{ app: string; path: string; state: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" }, + "; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse.$1.esRequestStatus", - "type": "Enum", + "id": "def-common.AssetDetailsLocatorDefinition.getLocation.$1", + "type": "CompoundType", "tags": [], - "label": "esRequestStatus", + "label": "params", "description": [], "signature": [ { - "pluginId": "inspector", + "pluginId": "observabilityShared", "scope": "common", - "docId": "kibInspectorPluginApi", - "section": "def-common.RequestStatus", - "text": "RequestStatus" - } + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsLocatorParams", + "text": "AssetDetailsLocatorParams" + }, + " & { state?: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + " | undefined; }" ], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", "deprecated": false, - "trackAdoption": false - }, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.FlamegraphLocatorDefinition", + "type": "Class", + "tags": [], + "label": "FlamegraphLocatorDefinition", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.FlamegraphLocatorDefinition", + "text": "FlamegraphLocatorDefinition" + }, + " implements ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.FlamegraphLocatorParams", + "text": "FlamegraphLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.FlamegraphLocatorDefinition.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "\"flamegraphLocator\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.FlamegraphLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "({ rangeFrom, rangeTo, kuery }: ", { - "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse.$1.esResponse", - "type": "Any", - "tags": [], - "label": "esResponse", - "description": [], - "signature": [ - "any" - ], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", - "deprecated": false, - "trackAdoption": false + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.FlamegraphLocatorParams", + "text": "FlamegraphLocatorParams" }, + ") => Promise<{ app: string; path: string; state: {}; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse.$1.kibanaRequest", + "id": "def-common.FlamegraphLocatorDefinition.getLocation.$1", "type": "Object", "tags": [], - "label": "kibanaRequest", + "label": "{ rangeFrom, rangeTo, kuery }", "description": [], "signature": [ { - "pluginId": "@kbn/core-http-server", - "scope": "server", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-server.KibanaRequest", - "text": "KibanaRequest" - }, - "" + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.FlamegraphLocatorParams", + "text": "FlamegraphLocatorParams" + } ], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", "deprecated": false, - "trackAdoption": false - }, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorDefinition", + "type": "Class", + "tags": [], + "label": "HostsLocatorDefinition", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.HostsLocatorDefinition", + "text": "HostsLocatorDefinition" + }, + " implements ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.HostsLocatorParams", + "text": "HostsLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorDefinition.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "\"HOSTS_LOCATOR\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "(params: ", { - "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse.$1.operationName", - "type": "string", - "tags": [], - "label": "operationName", - "description": [], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", - "deprecated": false, - "trackAdoption": false + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.HostsLocatorParams", + "text": "HostsLocatorParams" }, + ") => Promise<{ app: string; path: string; state: {}; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "observabilityShared", - "id": "def-common.getInspectResponse.$1.startTime", - "type": "number", + "id": "def-common.HostsLocatorDefinition.getLocation.$1", + "type": "Object", "tags": [], - "label": "startTime", + "label": "params", "description": [], - "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.HostsLocatorParams", + "text": "HostsLocatorParams" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true } - ] + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorDefinition", + "type": "Class", + "tags": [], + "label": "InventoryLocatorDefinition", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.InventoryLocatorDefinition", + "text": "InventoryLocatorDefinition" + }, + " implements ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.InventoryLocatorParams", + "text": "InventoryLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorDefinition.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "\"INVENTORY_LOCATOR\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "(params: ", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.InventoryLocatorParams", + "text": "InventoryLocatorParams" + }, + ") => Promise<{ app: string; path: string; state: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + "; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorDefinition.getLocation.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.InventoryLocatorParams", + "text": "InventoryLocatorParams" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewLocatorDefinition", + "type": "Class", + "tags": [], + "label": "ServiceOverviewLocatorDefinition", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.ServiceOverviewLocatorDefinition", + "text": "ServiceOverviewLocatorDefinition" + }, + " implements ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.ServiceOverviewParams", + "text": "ServiceOverviewParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewLocatorDefinition.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "\"serviceOverviewLocator\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "({ rangeFrom, rangeTo, serviceName, }: ", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.ServiceOverviewParams", + "text": "ServiceOverviewParams" + }, + ") => Promise<{ app: string; path: string; state: {}; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewLocatorDefinition.getLocation.$1", + "type": "Object", + "tags": [], + "label": "{\n rangeFrom,\n rangeTo,\n serviceName,\n }", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.ServiceOverviewParams", + "text": "ServiceOverviewParams" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorDefinition", + "type": "Class", + "tags": [], + "label": "StacktracesLocatorDefinition", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.StacktracesLocatorDefinition", + "text": "StacktracesLocatorDefinition" + }, + " implements ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.StacktracesLocatorParams", + "text": "StacktracesLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorDefinition.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "\"stacktracesLocator\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "({ rangeFrom, rangeTo, kuery, type, }: ", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.StacktracesLocatorParams", + "text": "StacktracesLocatorParams" + }, + ") => Promise<{ app: string; path: string; state: {}; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorDefinition.getLocation.$1", + "type": "Object", + "tags": [], + "label": "{\n rangeFrom,\n rangeTo,\n kuery,\n type = TopNType.Threads,\n }", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.StacktracesLocatorParams", + "text": "StacktracesLocatorParams" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocatorDefinition", + "type": "Class", + "tags": [], + "label": "TopNFunctionsLocatorDefinition", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TopNFunctionsLocatorDefinition", + "text": "TopNFunctionsLocatorDefinition" + }, + " implements ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TopNFunctionsLocatorParams", + "text": "TopNFunctionsLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocatorDefinition.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "\"topNFunctionsLocator\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "({ rangeFrom, rangeTo, kuery, }: ", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TopNFunctionsLocatorParams", + "text": "TopNFunctionsLocatorParams" + }, + ") => Promise<{ app: string; path: string; state: {}; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocatorDefinition.getLocation.$1", + "type": "Object", + "tags": [], + "label": "{\n rangeFrom,\n rangeTo,\n kuery,\n }", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TopNFunctionsLocatorParams", + "text": "TopNFunctionsLocatorParams" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameLocatorDefinition", + "type": "Class", + "tags": [], + "label": "TransactionDetailsByNameLocatorDefinition", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TransactionDetailsByNameLocatorDefinition", + "text": "TransactionDetailsByNameLocatorDefinition" + }, + " implements ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorDefinition", + "text": "LocatorDefinition" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TransactionDetailsByNameParams", + "text": "TransactionDetailsByNameParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameLocatorDefinition.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "\"TransactionDetailsByNameLocator\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameLocatorDefinition.getLocation", + "type": "Function", + "tags": [], + "label": "getLocation", + "description": [], + "signature": [ + "({ rangeFrom, rangeTo, serviceName, transactionName, }: ", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TransactionDetailsByNameParams", + "text": "TransactionDetailsByNameParams" + }, + ") => Promise<{ app: string; path: string; state: {}; }>" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameLocatorDefinition.getLocation.$1", + "type": "Object", + "tags": [], + "label": "{\n rangeFrom,\n rangeTo,\n serviceName,\n transactionName,\n }", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TransactionDetailsByNameParams", + "text": "TransactionDetailsByNameParams" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.colorTransformer", + "type": "Function", + "tags": [], + "label": "colorTransformer", + "description": [], + "signature": [ + "(color: ", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.Color", + "text": "Color" + }, + ") => string" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/color_palette.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.colorTransformer.$1", + "type": "CompoundType", + "tags": [], + "label": "color", + "description": [], + "signature": [ + "\"color0\" | \"color1\" | \"color2\" | \"color3\" | \"color4\" | \"color5\" | \"color6\" | \"color7\" | \"color8\" | \"color9\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/color_palette.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse", + "type": "Function", + "tags": [], + "label": "getInspectResponse", + "description": [ + "\nCreate a formatted response to be sent in the _inspect key for use in the\ninspector." + ], + "signature": [ + "({\n esError,\n esRequestParams,\n esRequestStatus,\n esResponse,\n kibanaRequest,\n operationName,\n startTime,\n}: { esError: ", + "WrappedElasticsearchClientError", + " | null; esRequestParams: Record; esRequestStatus: ", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.RequestStatus", + "text": "RequestStatus" + }, + "; esResponse: any; kibanaRequest: ", + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.KibanaRequest", + "text": "KibanaRequest" + }, + "; operationName: string; startTime: number; }) => ", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Request", + "text": "Request" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse.$1", + "type": "Object", + "tags": [], + "label": "{\n esError,\n esRequestParams,\n esRequestStatus,\n esResponse,\n kibanaRequest,\n operationName,\n startTime,\n}", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse.$1.esError", + "type": "CompoundType", + "tags": [], + "label": "esError", + "description": [], + "signature": [ + "WrappedElasticsearchClientError", + " | null" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse.$1.esRequestParams", + "type": "Object", + "tags": [], + "label": "esRequestParams", + "description": [], + "signature": [ + "{ [x: string]: any; }" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse.$1.esRequestStatus", + "type": "Enum", + "tags": [], + "label": "esRequestStatus", + "description": [], + "signature": [ + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.RequestStatus", + "text": "RequestStatus" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse.$1.esResponse", + "type": "Any", + "tags": [], + "label": "esResponse", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse.$1.kibanaRequest", + "type": "Object", + "tags": [], + "label": "kibanaRequest", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.KibanaRequest", + "text": "KibanaRequest" + }, + "" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse.$1.operationName", + "type": "string", + "tags": [], + "label": "operationName", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.getInspectResponse.$1.startTime", + "type": "number", + "tags": [], + "label": "startTime", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsFlyoutLocatorParams", + "type": "Interface", + "tags": [], + "label": "AssetDetailsFlyoutLocatorParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsFlyoutLocatorParams", + "text": "AssetDetailsFlyoutLocatorParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsFlyoutLocatorParams.tableProperties", + "type": "Object", + "tags": [], + "label": "tableProperties", + "description": [], + "signature": [ + "{ detailsItemId: string; pagination?: { pageIndex: number; pageSize: number; } | undefined; sorting?: { direction?: string | undefined; field: string; } | undefined; }" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsFlyoutLocatorParams.assetDetails", + "type": "Object", + "tags": [], + "label": "assetDetails", + "description": [], + "signature": [ + "{ tabId?: string | undefined; dashboardId?: string | undefined; dateRange?: { from: string; to: string; } | undefined; }" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsLocatorParams", + "type": "Interface", + "tags": [], + "label": "AssetDetailsLocatorParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsLocatorParams", + "text": "AssetDetailsLocatorParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsLocatorParams.assetType", + "type": "string", + "tags": [], + "label": "assetType", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsLocatorParams.assetId", + "type": "string", + "tags": [], + "label": "assetId", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsLocatorParams._a", + "type": "Object", + "tags": [], + "label": "_a", + "description": [], + "signature": [ + "{ time?: { from?: string | undefined; to?: string | undefined; } | undefined; interval?: string | undefined; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsLocatorParams.assetDetails", + "type": "Object", + "tags": [], + "label": "assetDetails", + "description": [], + "signature": [ + "{ tabId?: string | undefined; name?: string | undefined; dashboardId?: string | undefined; dateRange?: { from: string; to: string; } | undefined; alertMetric?: string | undefined; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.FlamegraphLocatorParams", + "type": "Interface", + "tags": [], + "label": "FlamegraphLocatorParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.FlamegraphLocatorParams", + "text": "FlamegraphLocatorParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.FlamegraphLocatorParams.kuery", + "type": "string", + "tags": [], + "label": "kuery", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.FlamegraphLocatorParams.rangeFrom", + "type": "string", + "tags": [], + "label": "rangeFrom", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.FlamegraphLocatorParams.rangeTo", + "type": "string", + "tags": [], + "label": "rangeTo", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorParams", + "type": "Interface", + "tags": [], + "label": "HostsLocatorParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.HostsLocatorParams", + "text": "HostsLocatorParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorParams.query", + "type": "Object", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "{ language: string; query: string; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorParams.dateRange", + "type": "Object", + "tags": [], + "label": "dateRange", + "description": [], + "signature": [ + "{ from: string; to: string; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorParams.filters", + "type": "Array", + "tags": [], + "label": "filters", + "description": [], + "signature": [ + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorParams.panelFilters", + "type": "Array", + "tags": [], + "label": "panelFilters", + "description": [], + "signature": [ + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorParams.limit", + "type": "number", + "tags": [], + "label": "limit", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocatorParams.tableProperties", + "type": "Object", + "tags": [], + "label": "tableProperties", + "description": [], + "signature": [ + "{ detailsItemId?: string | undefined; pagination: { pageIndex: number; pageSize: number; }; sorting: { direction?: string | undefined; field: string; }; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams", + "type": "Interface", + "tags": [], + "label": "InventoryLocatorParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.InventoryLocatorParams", + "text": "InventoryLocatorParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.inventoryViewId", + "type": "string", + "tags": [], + "label": "inventoryViewId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.waffleFilter", + "type": "Object", + "tags": [], + "label": "waffleFilter", + "description": [], + "signature": [ + "{ expression: string; kind: string; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.waffleTime", + "type": "Object", + "tags": [], + "label": "waffleTime", + "description": [], + "signature": [ + "{ currentTime: number; isAutoReloading: boolean; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.waffleOptions", + "type": "Object", + "tags": [], + "label": "waffleOptions", + "description": [], + "signature": [ + "{ accountId: string; autoBounds: boolean; boundsOverride: { max: number; min: number; }; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.customMetrics", + "type": "string", + "tags": [], + "label": "customMetrics", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.customOptions", + "type": "string", + "tags": [], + "label": "customOptions", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.groupBy", + "type": "Object", + "tags": [], + "label": "groupBy", + "description": [], + "signature": [ + "{ field: string; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.legend", + "type": "Object", + "tags": [], + "label": "legend", + "description": [], + "signature": [ + "{ palette: string; reverseColors: boolean; steps: number; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.metric", + "type": "string", + "tags": [], + "label": "metric", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.nodeType", + "type": "string", + "tags": [], + "label": "nodeType", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.region", + "type": "string", + "tags": [], + "label": "region", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.sort", + "type": "Object", + "tags": [], + "label": "sort", + "description": [], + "signature": [ + "{ by: string; direction: \"desc\" | \"async\"; } | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.timelineOpen", + "type": "CompoundType", + "tags": [], + "label": "timelineOpen", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.view", + "type": "CompoundType", + "tags": [], + "label": "view", + "description": [], + "signature": [ + "\"map\" | \"table\" | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocatorParams.state", + "type": "Object", + "tags": [], + "label": "state", + "description": [], + "signature": [ + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + " | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewParams", + "type": "Interface", + "tags": [], + "label": "ServiceOverviewParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.ServiceOverviewParams", + "text": "ServiceOverviewParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewParams.serviceName", + "type": "string", + "tags": [], + "label": "serviceName", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewParams.rangeFrom", + "type": "string", + "tags": [], + "label": "rangeFrom", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewParams.rangeTo", + "type": "string", + "tags": [], + "label": "rangeTo", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorParams", + "type": "Interface", + "tags": [], + "label": "StacktracesLocatorParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.StacktracesLocatorParams", + "text": "StacktracesLocatorParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorParams.kuery", + "type": "string", + "tags": [], + "label": "kuery", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorParams.rangeFrom", + "type": "string", + "tags": [], + "label": "rangeFrom", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorParams.rangeTo", + "type": "string", + "tags": [], + "label": "rangeTo", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocatorParams.type", + "type": "CompoundType", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/profiling-utils", + "scope": "common", + "docId": "kibKbnProfilingUtilsPluginApi", + "section": "def-common.TopNType", + "text": "TopNType" + }, + " | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocatorParams", + "type": "Interface", + "tags": [], + "label": "TopNFunctionsLocatorParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TopNFunctionsLocatorParams", + "text": "TopNFunctionsLocatorParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocatorParams.kuery", + "type": "string", + "tags": [], + "label": "kuery", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocatorParams.rangeFrom", + "type": "string", + "tags": [], + "label": "rangeFrom", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocatorParams.rangeTo", + "type": "string", + "tags": [], + "label": "rangeTo", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameParams", + "type": "Interface", + "tags": [], + "label": "TransactionDetailsByNameParams", + "description": [], + "signature": [ + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TransactionDetailsByNameParams", + "text": "TransactionDetailsByNameParams" + }, + " extends ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + } + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameParams.serviceName", + "type": "string", + "tags": [], + "label": "serviceName", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameParams.transactionName", + "type": "string", + "tags": [], + "label": "transactionName", + "description": [], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameParams.rangeFrom", + "type": "string", + "tags": [], + "label": "rangeFrom", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameParams.rangeTo", + "type": "string", + "tags": [], + "label": "rangeTo", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false } ], - "returnComment": [], "initialIsOpen": false } ], - "interfaces": [], "enums": [ { "parentPluginId": "observabilityShared", @@ -4098,6 +5806,96 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.ASSET_DETAILS_FLYOUT_LOCATOR_ID", + "type": "string", + "tags": [], + "label": "ASSET_DETAILS_FLYOUT_LOCATOR_ID", + "description": [], + "signature": [ + "\"ASSET_DETAILS_FLYOUT_LOCATOR\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.ASSET_DETAILS_LOCATOR_ID", + "type": "string", + "tags": [], + "label": "ASSET_DETAILS_LOCATOR_ID", + "description": [], + "signature": [ + "\"ASSET_DETAILS_LOCATOR\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsFlyoutLocator", + "type": "Type", + "tags": [], + "label": "AssetDetailsFlyoutLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsFlyoutLocatorParams", + "text": "AssetDetailsFlyoutLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_flyout_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.AssetDetailsLocator", + "type": "Type", + "tags": [], + "label": "AssetDetailsLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.AssetDetailsLocatorParams", + "text": "AssetDetailsLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-common.casesFeatureId", @@ -4458,6 +6256,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.FlamegraphLocator", + "type": "Type", + "tags": [], + "label": "FlamegraphLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.FlamegraphLocatorParams", + "text": "FlamegraphLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/flamegraph_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-common.HOST", @@ -4503,6 +6331,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.HostsLocator", + "type": "Type", + "tags": [], + "label": "HostsLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.HostsLocatorParams", + "text": "HostsLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/hosts_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-common.HTTP_REQUEST_METHOD", @@ -4533,6 +6391,51 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.INVENTORY_LOCATOR_ID", + "type": "string", + "tags": [], + "label": "INVENTORY_LOCATOR_ID", + "description": [], + "signature": [ + "\"INVENTORY_LOCATOR\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.InventoryLocator", + "type": "Type", + "tags": [], + "label": "InventoryLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.InventoryLocatorParams", + "text": "InventoryLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/infra/inventory_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-common.KUBERNETES", @@ -5328,6 +7231,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.ServiceOverviewLocator", + "type": "Type", + "tags": [], + "label": "ServiceOverviewLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.ServiceOverviewParams", + "text": "ServiceOverviewParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/service_overview_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-common.SLO_ALERTS_TABLE_CONFIG_ID", @@ -5520,6 +7453,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.StacktracesLocator", + "type": "Type", + "tags": [], + "label": "StacktracesLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.StacktracesLocatorParams", + "text": "StacktracesLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/stacktraces_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-common.SYNTHETICS_BLOCKED_TIMINGS", @@ -5655,6 +7618,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TopNFunctionsLocator", + "type": "Type", + "tags": [], + "label": "TopNFunctionsLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TopNFunctionsLocatorParams", + "text": "TopNFunctionsLocatorParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/profiling/topn_functions_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-common.TRACE_ID", @@ -5850,6 +7843,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-common.TransactionDetailsByNameLocator", + "type": "Type", + "tags": [], + "label": "TransactionDetailsByNameLocator", + "description": [], + "signature": [ + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "observabilityShared", + "scope": "common", + "docId": "kibObservabilitySharedPluginApi", + "section": "def-common.TransactionDetailsByNameParams", + "text": "TransactionDetailsByNameParams" + }, + ">" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/common/locators/apm/transaction_details_by_name_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-common.URL_FULL", diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index 096ec480d34a1..df83c7a009637 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observ | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 356 | 1 | 351 | 22 | +| 448 | 1 | 443 | 19 | ## Client @@ -45,6 +45,12 @@ Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observ ### Functions +### Classes + + +### Interfaces + + ### Enums diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 191871f79f468..d28a5118490df 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-08-09 +date: 2024-08-27 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 8b5cd8287264b..2ce6c1982def4 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-08-09 +date: 2024-08-27 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 a01de278ae337..908398da629f7 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-08-09 +date: 2024-08-27 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 | |--------------|----------|------------------------| -| 828 | 704 | 45 | +| 846 | 719 | 46 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 51995 | 241 | 38936 | 1911 | +| 52632 | 243 | 39544 | 1932 | ## Plugin Directory @@ -31,9 +31,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux @elastic/kibana-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 4 | 0 | 4 | 1 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 74 | 0 | 9 | 2 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 871 | 1 | 839 | 52 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 875 | 1 | 843 | 52 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | The user interface for Elastic APM | 29 | 0 | 29 | 119 | -| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 74 | 0 | 74 | 1 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 93 | 0 | 93 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 9 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 83 | 1 | 73 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | @@ -49,7 +49,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 14 | 0 | 2 | 2 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 39 | 0 | 30 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 149 | 0 | 125 | 6 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 351 | 0 | 343 | 19 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 394 | 0 | 385 | 28 | | crossClusterReplication | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | | | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 271 | 0 | 252 | 1 | @@ -62,9 +62,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data view management app | 2 | 0 | 2 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 1224 | 0 | 443 | 3 | | | [@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 data set quality, where users can easily get an overview on the data sets they have. | 10 | 0 | 10 | 5 | +| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin introduces the concept of data set quality, where users can easily get an overview on the data sets they have. | 15 | 0 | 15 | 8 | | | [@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. | 149 | 0 | 102 | 26 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 150 | 0 | 102 | 26 | | | [@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 | @@ -99,10 +99,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 247 | 0 | 102 | 2 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Index pattern fields and ambiguous values formatters | 292 | 5 | 253 | 3 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | Exposes services for async usage and search of fields metadata. | 42 | 0 | 42 | 7 | -| | [@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/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. | 88 | 0 | 88 | 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 | 3 | 0 | 3 | 0 | -| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1351 | 5 | 1229 | 74 | +| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1362 | 5 | 1239 | 74 | | 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 | @@ -113,15 +113,15 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 149 | 0 | 111 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Image embeddable | 1 | 0 | 1 | 0 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 4 | 0 | 4 | 0 | -| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 227 | 0 | 222 | 1 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 16 | 0 | 14 | 11 | -| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 37 | 0 | 34 | 6 | +| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 238 | 0 | 233 | 1 | +| | [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai-infra) | - | 16 | 0 | 14 | 11 | +| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 38 | 0 | 35 | 6 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 4 | 0 | 4 | 0 | | inputControlVis | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Input Control visualization to Kibana | 0 | 0 | 0 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 127 | 2 | 100 | 4 | -| | [@elastic/security-scalability](https://github.com/orgs/elastic/teams/security-scalability) | Plugin implementing the Integration Assistant API and UI | 47 | 0 | 40 | 3 | +| | [@elastic/security-scalability](https://github.com/orgs/elastic/teams/security-scalability) | Plugin implementing the Integration Assistant API and UI | 49 | 0 | 41 | 3 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides UI and APIs for the interactive setup mode. | 28 | 0 | 18 | 0 | -| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 105 | 0 | 105 | 6 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 92 | 0 | 92 | 5 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 5 | 0 | 5 | 2 | | | [@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) | - | 153 | 0 | 121 | 3 | @@ -134,15 +134,15 @@ 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. | 5 | 0 | 5 | 0 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 226 | 0 | 97 | 52 | -| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 9 | 0 | 9 | 6 | -| | [@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-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 13 | 0 | 11 | 7 | +| | [@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. | 122 | 4 | 122 | 23 | | | [@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. | 300 | 0 | 272 | 32 | | logstash | [@elastic/logstash](https://github.com/orgs/elastic/teams/logstash) | - | 0 | 0 | 0 | 0 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 44 | 0 | 44 | 7 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 209 | 0 | 205 | 28 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 60 | 0 | 60 | 0 | -| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | Exposes utilities for accessing metrics data | 108 | 8 | 108 | 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 | 102 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | Exposes utilities for accessing metrics data | 128 | 8 | 128 | 5 | +| | [@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/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 | @@ -150,13 +150,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@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) | - | 701 | 2 | 694 | 22 | -| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 290 | 1 | 288 | 26 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 702 | 2 | 695 | 22 | +| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 294 | 1 | 292 | 27 | | | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 4 | 0 | 4 | 0 | | | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin exposes and registers observability log consumption features. | 19 | 0 | 19 | 1 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 21 | 0 | 21 | 0 | -| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 356 | 1 | 351 | 22 | +| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 448 | 1 | 443 | 19 | | | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 23 | 0 | 23 | 7 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 2 | 0 | 2 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds a standardized Presentation panel which allows any forward ref component to interface with various Kibana systems. | 11 | 0 | 11 | 4 | @@ -166,7 +166,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 23 | 0 | 23 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 9 | 0 | 2 | 0 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 21 | 0 | 21 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 287 | 0 | 250 | 11 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 285 | 0 | 248 | 11 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 24 | 0 | 19 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 132 | 2 | 121 | 5 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 25 | 0 | 25 | 0 | @@ -176,13 +176,15 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the definition and helper methods around saved searches, used by discover and visualizations. | 61 | 0 | 60 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 13 | 0 | | | [@elastic/kibana-reporting-services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Kibana Screenshotting Plugin | 32 | 0 | 8 | 4 | +| | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | AI Assistant for Search | 6 | 0 | 6 | 0 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | Plugin hosting shared features for connectors | 19 | 0 | 19 | 3 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 18 | 0 | 10 | 0 | +| | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 10 | 0 | 10 | 0 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 10 | 0 | 6 | 1 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | Plugin to provide access to and rendering of python notebooks for use in the persistent developer console. | 10 | 0 | 10 | 1 | -| | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 15 | 0 | 9 | 1 | +| | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 17 | 0 | 11 | 1 | | searchprofiler | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 0 | 0 | 0 | 0 | -| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 447 | 0 | 231 | 1 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 447 | 0 | 231 | 0 | | | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 192 | 0 | 123 | 33 | | | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | ESS customizations for Security Solution. | 6 | 0 | 6 | 0 | | | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | Serverless customizations for security. | 7 | 0 | 7 | 0 | @@ -197,7 +199,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 25 | 0 | 25 | 3 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 10 | 0 | 10 | 0 | | synthetics | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | This plugin visualizes data from Synthetics and Heartbeat, and integrates with other Observability solutions. | 0 | 0 | 0 | 1 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 107 | 0 | 63 | 7 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 108 | 0 | 64 | 6 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 45 | 0 | 1 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 31 | 0 | 26 | 6 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 1 | 0 | @@ -206,17 +208,17 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 226 | 1 | 182 | 17 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | | translations | [@elastic/kibana-localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 590 | 1 | 564 | 51 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 591 | 1 | 565 | 51 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 156 | 0 | 110 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Extends UI Actions plugin with more functionality | 212 | 0 | 145 | 11 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains services reliant on the plugin lifecycle for the unified doc viewer component (see @kbn/unified-doc-viewer). | 15 | 0 | 10 | 3 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display. | 71 | 0 | 36 | 6 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 149 | 2 | 112 | 22 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 149 | 2 | 112 | 21 | | upgradeAssistant | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 0 | 0 | 0 | 0 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | This plugin visualizes data from Heartbeat, and integrates with other Observability solutions. | 1 | 0 | 1 | 0 | | urlDrilldown | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds drilldown implementations to Kibana | 0 | 0 | 0 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 12 | 0 | 12 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 51 | 0 | 14 | 4 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 52 | 0 | 14 | 5 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 2 | 0 | 2 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | The default editor used in most aggregation-based visualizations. | 56 | 0 | 49 | 4 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the gauge chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting. | 7 | 0 | 7 | 2 | @@ -246,16 +248,16 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 27 | 3 | 27 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 5 | 0 | 5 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 23 | 0 | 22 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 217 | 0 | 214 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 222 | 0 | 219 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 33 | 0 | 33 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 22 | 0 | 5 | 1 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 310 | 0 | 293 | 9 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 31 | 0 | 15 | 1 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 299 | 0 | 282 | 8 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 73 | 0 | 73 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 0 | 0 | | | [@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) | - | 200 | 0 | 200 | 31 | +| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 53 | 0 | 53 | 9 | +| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 204 | 0 | 204 | 33 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 316 | 0 | 315 | 0 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 11 | 0 | 11 | 0 | | | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 3 | 0 | 3 | 0 | @@ -264,6 +266,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 10 | 0 | 10 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 7 | 0 | 7 | 1 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 19 | 0 | 16 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 9 | 2 | 9 | 0 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 44 | 1 | 30 | 1 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 23 | 0 | 19 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 84 | 0 | 84 | 0 | @@ -279,10 +282,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 24 | 0 | 24 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 149 | 2 | 143 | 20 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 8 | 4 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 28 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 6 | 2 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 39 | 0 | 38 | 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) | - | 8 | 0 | 8 | 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) | - | 10 | 0 | 10 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 49 | 0 | 33 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 51 | 0 | 33 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 30 | 0 | 30 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 195 | 1 | 128 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 100 | 0 | 0 | 0 | @@ -484,25 +491,25 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 102 | 0 | 86 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 15 | 0 | 9 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 38 | 2 | 33 | 0 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 130 | 0 | 104 | 1 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 133 | 0 | 106 | 1 | | | [@elastic/docs](https://github.com/orgs/elastic/teams/docs) | - | 78 | 0 | 78 | 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) | - | 33 | 0 | 24 | 1 | -| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 13 | 0 | 5 | 0 | +| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 14 | 0 | 6 | 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) | - | 156 | 0 | 130 | 9 | -| | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 354 | 0 | 328 | 0 | -| | [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entities) | - | 26 | 0 | 26 | 0 | +| | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 346 | 0 | 320 | 0 | +| | [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entities) | - | 41 | 0 | 41 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 55 | 0 | 40 | 7 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 32 | 0 | 19 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 0 | 6 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 269 | 1 | 209 | 15 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 27 | 0 | 27 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | -| | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 149 | 1 | 120 | 15 | +| | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 152 | 1 | 120 | 15 | | | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 66 | 0 | 62 | 0 | -| | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 194 | 0 | 183 | 10 | +| | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 196 | 0 | 184 | 10 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 40 | 0 | 40 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 52 | 0 | 52 | 1 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 39 | 0 | 14 | 1 | @@ -510,11 +517,12 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 49 | 0 | 40 | 2 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 0 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 3 | 0 | 3 | 0 | -| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 46 | 0 | 31 | 1 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 47 | 0 | 32 | 1 | | | [@elastic/appex-qa](https://github.com/orgs/elastic/teams/appex-qa) | - | 551 | 6 | 511 | 3 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 0 | 0 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 1 | 0 | 1 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 26 | 0 | 26 | 1 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 16 | 0 | 16 | 1 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 17 | 0 | 12 | 10 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 49 | 0 | 47 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 33 | 3 | 24 | 6 | @@ -529,6 +537,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 7 | 1 | 7 | 1 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 9 | 0 | 9 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 52 | 12 | 43 | 0 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 41 | 0 | 41 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 60 | 0 | 60 | 4 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 44 | 0 | 44 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 0 | 13 | 0 | @@ -541,7 +550,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 172 | 0 | 172 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 28 | 0 | 2 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 0 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 3 | 0 | 3 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 1 | 1 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 13 | 0 | 12 | 2 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 9 | 0 | 6 | 2 | @@ -582,9 +591,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 34 | 0 | 0 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 44 | 0 | 38 | 1 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 18 | 0 | 18 | 0 | -| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 31 | 1 | 24 | 1 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 42 | 1 | 35 | 1 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 22 | 0 | 16 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 122 | 0 | 122 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 120 | 0 | 120 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 55 | 1 | 50 | 0 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 10 | 0 | 10 | 2 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 5 | 0 | 5 | 0 | @@ -601,7 +610,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) | - | 88 | 0 | 76 | 0 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 216 | 0 | 181 | 5 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 216 | 0 | 181 | 6 | | | [@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 | @@ -637,6 +646,7 @@ 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) | - | 128 | 0 | 125 | 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) | - | 35 | 0 | 34 | 0 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 76 | 0 | 76 | 0 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 3929 | 0 | 3929 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 18 | 1 | 17 | 1 | @@ -644,13 +654,15 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 18 | 1 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 50 | 0 | 25 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 66 | 0 | 63 | 0 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 25 | 0 | 24 | 7 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 35 | 0 | 25 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 7 | 0 | 7 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 118 | 0 | 59 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 51 | 0 | 25 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 275 | 1 | 154 | 0 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 75 | 0 | 74 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 6 | 0 | 0 | 0 | -| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 14 | 0 | 14 | 6 | +| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 15 | 0 | 15 | 7 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 54 | 0 | 49 | 0 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 30 | 0 | 24 | 0 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 2 | 0 | 0 | 0 | @@ -672,8 +684,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 120 | 0 | 116 | 0 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 51 | 0 | 46 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 69 | 0 | 64 | 0 | -| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 31 | 0 | 30 | 1 | -| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 5 | 0 | 5 | 0 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 38 | 0 | 38 | 0 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 3 | 0 | 3 | 0 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 26 | 0 | 26 | 0 | | | [@elastic/appex-sharedux @elastic/kibana-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 1 | 0 | 1 | 0 | | | [@elastic/appex-sharedux @elastic/kibana-management @elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 1 | 0 | 1 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 7 | 1 | @@ -719,6 +732,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 0 | 0 | | | [@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) | - | 3 | 0 | 2 | 2 | | | [@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) | - | 182 | 0 | 182 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 20 | 0 | 12 | 0 | @@ -727,6 +741,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 2 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 41 | 2 | 21 | 0 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 32 | 2 | 32 | 0 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 19 | 0 | 19 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 5 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 315 | 4 | 267 | 14 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 36 | 0 | 18 | 0 | @@ -734,7 +749,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | | | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 28 | 0 | 12 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 8 | 0 | 8 | 0 | -| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 72 | 0 | 55 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 74 | 0 | 55 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 15 | 0 | 15 | 0 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 2 | 0 | 2 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 39 | 0 | 25 | 1 | @@ -742,7 +757,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 42 | 0 | 28 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 57 | 0 | 48 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 9 | 0 | 8 | 0 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the unified data table which can be integrated into apps | 166 | 0 | 92 | 2 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the unified data table which can be integrated into apps | 184 | 0 | 108 | 2 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 18 | 0 | 17 | 5 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list and field stats which can be integrated into apps | 314 | 0 | 285 | 8 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 13 | 0 | 9 | 0 | @@ -755,7 +770,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 146 | 0 | 143 | 3 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 19 | 0 | 17 | 1 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 13 | 0 | 13 | 0 | -| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 2 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 9 | 0 | 4 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1254 | 0 | 4 | 0 | | | [@elastic/security-detection-rule-management](https://github.com/orgs/elastic/teams/security-detection-rule-management) | - | 20 | 0 | 10 | 0 | diff --git a/api_docs/presentation_panel.devdocs.json b/api_docs/presentation_panel.devdocs.json index 4b73956c37eea..15ffab0f06b91 100644 --- a/api_docs/presentation_panel.devdocs.json +++ b/api_docs/presentation_panel.devdocs.json @@ -45,7 +45,7 @@ }, "<", "PanelCompatibleComponent", - " | null>; } & { hidePanelChrome?: boolean | undefined; }) => JSX.Element" + " | null>; } & { hidePanelChrome?: boolean | undefined; }) => JSX.Element | null" ], "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx", "deprecated": false, diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx index 201888af2ba9c..26d7c9c969ddc 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-08-09 +date: 2024-08-27 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 4b03c2ea0f413..923fe76dbc464 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-08-09 +date: 2024-08-27 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 fd6064d37fbbe..c30d5f49f61ce 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-08-09 +date: 2024-08-27 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 5f7bced63aa1e..5e0fc31881f4b 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-08-09 +date: 2024-08-27 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 212774f690ccd..e3aecf65ea502 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-08-09 +date: 2024-08-27 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 07500f7076982..719d6340a68cc 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-08-09 +date: 2024-08-27 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 83f9dfb5d0207..093bf4409da7f 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json index d7cec6f063cb3..36bcd64c65673 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -399,7 +399,9 @@ "section": "def-common.RuleTypeParams", "text": "RuleTypeParams" }, - " = never>({ aggs, featureIds, index, query, search_after: searchAfter, size, sort, track_total_hits: trackTotalHits, _source, runtimeMappings, }: { aggs?: object | undefined; featureIds?: string[] | undefined; index?: string | undefined; query?: object | undefined; search_after?: (string | number)[] | undefined; size?: number | undefined; sort?: ", + " = never, TAggregations = Record>({ aggs, featureIds, index, query, search_after: searchAfter, size, sort, track_total_hits: trackTotalHits, _source, runtimeMappings, }: { aggs?: object | undefined; featureIds?: string[] | undefined; index?: string | undefined; query?: object | undefined; search_after?: (string | number)[] | undefined; size?: number | undefined; sort?: ", "SortOptions", "[] | undefined; track_total_hits?: number | boolean | undefined; _source?: false | string[] | undefined; runtimeMappings?: ", "MappingRuntimeFields", @@ -413,9 +415,7 @@ "section": "def-common.MultiField", "text": "MultiField" }, - "[]; }; readonly \"kibana.alert.rule.execution.timestamp\": { readonly type: \"date\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.rule.parameters\": { readonly array: false; readonly type: \"flattened\"; readonly ignore_above: 4096; readonly required: false; }; readonly \"kibana.alert.rule.tags\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.alert.severity_improving\": { readonly type: \"boolean\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.start\": { readonly type: \"date\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.time_range\": { readonly type: \"date_range\"; readonly format: \"epoch_millis||strict_date_optional_time\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.url\": { readonly type: \"keyword\"; readonly array: false; readonly index: false; readonly required: false; readonly ignore_above: 2048; }; readonly \"kibana.alert.workflow_assignee_ids\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.alert.workflow_status\": { readonly type: \"keyword\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.workflow_tags\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.version\": { readonly type: \"version\"; readonly array: false; readonly required: false; }; }>>, Record>>" + "[]; }; readonly \"kibana.alert.rule.execution.timestamp\": { readonly type: \"date\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.rule.parameters\": { readonly array: false; readonly type: \"flattened\"; readonly ignore_above: 4096; readonly required: false; }; readonly \"kibana.alert.rule.tags\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.alert.severity_improving\": { readonly type: \"boolean\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.start\": { readonly type: \"date\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.time_range\": { readonly type: \"date_range\"; readonly format: \"epoch_millis||strict_date_optional_time\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.url\": { readonly type: \"keyword\"; readonly array: false; readonly index: false; readonly required: false; readonly ignore_above: 2048; }; readonly \"kibana.alert.workflow_assignee_ids\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.alert.workflow_status\": { readonly type: \"keyword\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.workflow_tags\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.version\": { readonly type: \"version\"; readonly array: false; readonly required: false; }; }>>, TAggregations>>" ], "path": "x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts", "deprecated": false, @@ -603,9 +603,9 @@ "section": "def-common.MultiField", "text": "MultiField" }, - "[]; }; readonly \"kibana.alert.rule.execution.timestamp\": { readonly type: \"date\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.rule.parameters\": { readonly array: false; readonly type: \"flattened\"; readonly ignore_above: 4096; readonly required: false; }; readonly \"kibana.alert.rule.tags\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.alert.severity_improving\": { readonly type: \"boolean\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.start\": { readonly type: \"date\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.time_range\": { readonly type: \"date_range\"; readonly format: \"epoch_millis||strict_date_optional_time\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.url\": { readonly type: \"keyword\"; readonly array: false; readonly index: false; readonly required: false; readonly ignore_above: 2048; }; readonly \"kibana.alert.workflow_assignee_ids\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.alert.workflow_status\": { readonly type: \"keyword\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.workflow_tags\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.version\": { readonly type: \"version\"; readonly array: false; readonly required: false; }; }>>, Record>>" + "[]; }; readonly \"kibana.alert.rule.execution.timestamp\": { readonly type: \"date\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.rule.parameters\": { readonly array: false; readonly type: \"flattened\"; readonly ignore_above: 4096; readonly required: false; }; readonly \"kibana.alert.rule.tags\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.alert.severity_improving\": { readonly type: \"boolean\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.start\": { readonly type: \"date\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.time_range\": { readonly type: \"date_range\"; readonly format: \"epoch_millis||strict_date_optional_time\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.url\": { readonly type: \"keyword\"; readonly array: false; readonly index: false; readonly required: false; readonly ignore_above: 2048; }; readonly \"kibana.alert.workflow_assignee_ids\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.alert.workflow_status\": { readonly type: \"keyword\"; readonly array: false; readonly required: false; }; readonly \"kibana.alert.workflow_tags\": { readonly type: \"keyword\"; readonly array: true; readonly required: false; }; readonly \"kibana.version\": { readonly type: \"version\"; readonly array: false; readonly required: false; }; }>>, { groupByFields: ", + "AggregationsMultiBucketAggregateBase", + "<{ key: string; }>; }>>" ], "path": "x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts", "deprecated": false, @@ -2221,7 +2221,7 @@ "section": "def-common.ActionGroup", "text": "ActionGroup" }, - "<\"default\">[]; schemas?: { params?: { type: \"zod\"; schema: Zod.ZodObject | Zod.ZodIntersection; } | { type: \"config-schema\"; schema: ", + "<\"default\">[]; schemas?: { params?: { type: \"zod\"; schema: any; } | { type: \"config-schema\"; schema: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -3667,7 +3667,7 @@ "label": "alertWithPersistence", "description": [], "signature": [ - "(alerts: { _id: string; _source: T; }[], refresh: boolean | \"wait_for\", maxAlerts?: number | undefined, enrichAlerts?: ((alerts: { _id: string; _source: T; }[], params: { spaceId: string; }) => Promise<{ _id: string; _source: T; }[]>) | undefined, currentTimeOverride?: Date | undefined) => Promise<", + "(alerts: { _id: string; _source: T; }[], refresh: boolean | \"wait_for\", maxAlerts?: number | undefined, enrichAlerts?: ((alerts: { _id: string; _source: T; }[], params: { spaceId: string; }) => Promise<{ _id: string; _source: T; }[]>) | undefined) => Promise<", { "pluginId": "ruleRegistry", "scope": "server", @@ -3737,20 +3737,6 @@ "path": "x-pack/plugins/rule_registry/server/utils/persistence_types.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "ruleRegistry", - "id": "def-server.PersistenceServices.alertWithPersistence.$5", - "type": "Object", - "tags": [], - "label": "currentTimeOverride", - "description": [], - "signature": [ - "Date | undefined" - ], - "path": "x-pack/plugins/rule_registry/server/utils/persistence_types.ts", - "deprecated": false, - "trackAdoption": false } ] }, @@ -4431,7 +4417,7 @@ "label": "PersistenceAlertService", "description": [], "signature": [ - "(alerts: { _id: string; _source: T; }[], refresh: boolean | \"wait_for\", maxAlerts?: number | undefined, enrichAlerts?: ((alerts: { _id: string; _source: T; }[], params: { spaceId: string; }) => Promise<{ _id: string; _source: T; }[]>) | undefined, currentTimeOverride?: Date | undefined) => Promise<", + "(alerts: { _id: string; _source: T; }[], refresh: boolean | \"wait_for\", maxAlerts?: number | undefined, enrichAlerts?: ((alerts: { _id: string; _source: T; }[], params: { spaceId: string; }) => Promise<{ _id: string; _source: T; }[]>) | undefined) => Promise<", { "pluginId": "ruleRegistry", "scope": "server", @@ -4501,20 +4487,6 @@ "path": "x-pack/plugins/rule_registry/server/utils/persistence_types.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "ruleRegistry", - "id": "def-server.PersistenceAlertService.$5", - "type": "Object", - "tags": [], - "label": "currentTimeOverride", - "description": [], - "signature": [ - "Date | undefined" - ], - "path": "x-pack/plugins/rule_registry/server/utils/persistence_types.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 32539cc037213..8558cf0f6e0aa 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 287 | 0 | 250 | 11 | +| 285 | 0 | 248 | 11 | ## Server diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index fe3b0b92b01cc..524d0519041a4 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-08-09 +date: 2024-08-27 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 87e916666621d..55ffba4f93e71 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-08-09 +date: 2024-08-27 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 ded22b051fbab..7835452fc8e1b 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-08-09 +date: 2024-08-27 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 3409f9faff25f..66a83f84b9ae8 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-08-09 +date: 2024-08-27 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 24253bbbc421b..da2d0665bab32 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-08-09 +date: 2024-08-27 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 e19caa8827522..ce9d137330667 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.devdocs.json b/api_docs/saved_search.devdocs.json index 7d4282b2565dd..13e1c29fa1214 100644 --- a/api_docs/saved_search.devdocs.json +++ b/api_docs/saved_search.devdocs.json @@ -730,16 +730,16 @@ "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.SerializedSearchSourceFields", - "text": "SerializedSearchSourceFields" + "section": "def-common.ISearchSource", + "text": "ISearchSource" }, " | ", { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.ISearchSource", - "text": "ISearchSource" + "section": "def-common.SerializedSearchSourceFields", + "text": "SerializedSearchSourceFields" }, ", managed: boolean, serialized?: Serialized) => ReturnType" ], @@ -804,16 +804,16 @@ "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.SerializedSearchSourceFields", - "text": "SerializedSearchSourceFields" + "section": "def-common.ISearchSource", + "text": "ISearchSource" }, " | ", { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.ISearchSource", - "text": "ISearchSource" + "section": "def-common.SerializedSearchSourceFields", + "text": "SerializedSearchSourceFields" } ], "path": "src/plugins/saved_search/common/saved_searches_utils.ts", diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 6f51293e8df31..6493c183bf1d7 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-08-09 +date: 2024-08-27 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 9a1653fb4e6d5..7c9f3dac7cf17 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-08-09 +date: 2024-08-27 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 cbf7ad95d1d5a..de3a94a7d7cd9 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/search_assistant.devdocs.json b/api_docs/search_assistant.devdocs.json new file mode 100644 index 0000000000000..f2f5eb9bec4e8 --- /dev/null +++ b/api_docs/search_assistant.devdocs.json @@ -0,0 +1,114 @@ +{ + "id": "searchAssistant", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [], + "setup": { + "parentPluginId": "searchAssistant", + "id": "def-public.SearchAssistantPluginSetup", + "type": "Interface", + "tags": [], + "label": "SearchAssistantPluginSetup", + "description": [], + "path": "x-pack/plugins/search_assistant/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "setup", + "initialIsOpen": true + }, + "start": { + "parentPluginId": "searchAssistant", + "id": "def-public.SearchAssistantPluginStart", + "type": "Interface", + "tags": [], + "label": "SearchAssistantPluginStart", + "description": [], + "path": "x-pack/plugins/search_assistant/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "start", + "initialIsOpen": true + } + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [], + "setup": { + "parentPluginId": "searchAssistant", + "id": "def-server.SearchAssistantPluginSetup", + "type": "Interface", + "tags": [], + "label": "SearchAssistantPluginSetup", + "description": [], + "path": "x-pack/plugins/search_assistant/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "setup", + "initialIsOpen": true + }, + "start": { + "parentPluginId": "searchAssistant", + "id": "def-server.SearchAssistantPluginStart", + "type": "Interface", + "tags": [], + "label": "SearchAssistantPluginStart", + "description": [], + "path": "x-pack/plugins/search_assistant/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "start", + "initialIsOpen": true + } + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "searchAssistant", + "id": "def-common.PLUGIN_ID", + "type": "string", + "tags": [], + "label": "PLUGIN_ID", + "description": [], + "signature": [ + "\"searchAssistant\"" + ], + "path": "x-pack/plugins/search_assistant/common/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "searchAssistant", + "id": "def-common.PLUGIN_NAME", + "type": "string", + "tags": [], + "label": "PLUGIN_NAME", + "description": [], + "signature": [ + "\"searchAssistant\"" + ], + "path": "x-pack/plugins/search_assistant/common/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/search_assistant.mdx b/api_docs/search_assistant.mdx new file mode 100644 index 0000000000000..91e578291858c --- /dev/null +++ b/api_docs/search_assistant.mdx @@ -0,0 +1,46 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibSearchAssistantPluginApi +slug: /kibana-dev-docs/api/searchAssistant +title: "searchAssistant" +image: https://source.unsplash.com/400x175/?github +description: API docs for the searchAssistant plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchAssistant'] +--- +import searchAssistantObj from './search_assistant.devdocs.json'; + +AI Assistant for Search + +Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 6 | 0 | 6 | 0 | + +## Client + +### Setup + + +### Start + + +## Server + +### Setup + + +### Start + + +## Common + +### Consts, variables and types + + diff --git a/api_docs/search_connectors.mdx b/api_docs/search_connectors.mdx index 2771db829e225..e906c5523870a 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchConnectors'] --- import searchConnectorsObj from './search_connectors.devdocs.json'; diff --git a/api_docs/search_homepage.mdx b/api_docs/search_homepage.mdx index 9c30bc2e258f0..d14cd8e67279f 100644 --- a/api_docs/search_homepage.mdx +++ b/api_docs/search_homepage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchHomepage title: "searchHomepage" image: https://source.unsplash.com/400x175/?github description: API docs for the searchHomepage plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchHomepage'] --- import searchHomepageObj from './search_homepage.devdocs.json'; diff --git a/api_docs/search_indices.devdocs.json b/api_docs/search_indices.devdocs.json new file mode 100644 index 0000000000000..e79f47a7894f0 --- /dev/null +++ b/api_docs/search_indices.devdocs.json @@ -0,0 +1,171 @@ +{ + "id": "searchIndices", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [], + "setup": { + "parentPluginId": "searchIndices", + "id": "def-public.SearchIndicesPluginSetup", + "type": "Interface", + "tags": [], + "label": "SearchIndicesPluginSetup", + "description": [], + "path": "x-pack/plugins/search_indices/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "setup", + "initialIsOpen": true + }, + "start": { + "parentPluginId": "searchIndices", + "id": "def-public.SearchIndicesPluginStart", + "type": "Interface", + "tags": [], + "label": "SearchIndicesPluginStart", + "description": [], + "path": "x-pack/plugins/search_indices/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "start", + "initialIsOpen": true + } + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [], + "setup": { + "parentPluginId": "searchIndices", + "id": "def-server.SearchIndicesPluginSetup", + "type": "Interface", + "tags": [], + "label": "SearchIndicesPluginSetup", + "description": [], + "path": "x-pack/plugins/search_indices/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "setup", + "initialIsOpen": true + }, + "start": { + "parentPluginId": "searchIndices", + "id": "def-server.SearchIndicesPluginStart", + "type": "Interface", + "tags": [], + "label": "SearchIndicesPluginStart", + "description": [], + "path": "x-pack/plugins/search_indices/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "start", + "initialIsOpen": true + } + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [ + { + "parentPluginId": "searchIndices", + "id": "def-common.IndicesStatusResponse", + "type": "Interface", + "tags": [], + "label": "IndicesStatusResponse", + "description": [], + "path": "x-pack/plugins/search_indices/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "searchIndices", + "id": "def-common.IndicesStatusResponse.indexNames", + "type": "Array", + "tags": [], + "label": "indexNames", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/plugins/search_indices/common/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "searchIndices", + "id": "def-common.UserStartPrivilegesResponse", + "type": "Interface", + "tags": [], + "label": "UserStartPrivilegesResponse", + "description": [], + "path": "x-pack/plugins/search_indices/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "searchIndices", + "id": "def-common.UserStartPrivilegesResponse.privileges", + "type": "Object", + "tags": [], + "label": "privileges", + "description": [], + "signature": [ + "{ canCreateApiKeys: boolean; canCreateIndex: boolean; }" + ], + "path": "x-pack/plugins/search_indices/common/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "searchIndices", + "id": "def-common.PLUGIN_ID", + "type": "string", + "tags": [], + "label": "PLUGIN_ID", + "description": [], + "signature": [ + "\"searchIndices\"" + ], + "path": "x-pack/plugins/search_indices/common/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "searchIndices", + "id": "def-common.PLUGIN_NAME", + "type": "string", + "tags": [], + "label": "PLUGIN_NAME", + "description": [], + "signature": [ + "\"searchIndices\"" + ], + "path": "x-pack/plugins/search_indices/common/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/search_indices.mdx b/api_docs/search_indices.mdx new file mode 100644 index 0000000000000..1812f60b5c8b9 --- /dev/null +++ b/api_docs/search_indices.mdx @@ -0,0 +1,49 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibSearchIndicesPluginApi +slug: /kibana-dev-docs/api/searchIndices +title: "searchIndices" +image: https://source.unsplash.com/400x175/?github +description: API docs for the searchIndices plugin +date: 2024-08-27 +tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchIndices'] +--- +import searchIndicesObj from './search_indices.devdocs.json'; + + + +Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 10 | 0 | 10 | 0 | + +## Client + +### Setup + + +### Start + + +## Server + +### Setup + + +### Start + + +## Common + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/search_inference_endpoints.mdx b/api_docs/search_inference_endpoints.mdx index 4546d7de15e23..f2ace37c453c9 100644 --- a/api_docs/search_inference_endpoints.mdx +++ b/api_docs/search_inference_endpoints.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchInferenceEndpoints title: "searchInferenceEndpoints" image: https://source.unsplash.com/400x175/?github description: API docs for the searchInferenceEndpoints plugin -date: 2024-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchInferenceEndpoints'] --- import searchInferenceEndpointsObj from './search_inference_endpoints.devdocs.json'; diff --git a/api_docs/search_notebooks.mdx b/api_docs/search_notebooks.mdx index 8cffd670a4e06..96eeb74884b60 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchNotebooks'] --- import searchNotebooksObj from './search_notebooks.devdocs.json'; diff --git a/api_docs/search_playground.devdocs.json b/api_docs/search_playground.devdocs.json index 9acc1abcd944f..e5f8ac16bd1a3 100644 --- a/api_docs/search_playground.devdocs.json +++ b/api_docs/search_playground.devdocs.json @@ -245,6 +245,36 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "searchPlayground", + "id": "def-common.PLUGIN_PATH", + "type": "string", + "tags": [], + "label": "PLUGIN_PATH", + "description": [], + "signature": [ + "\"/app/search_playground\"" + ], + "path": "x-pack/plugins/search_playground/common/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "searchPlayground", + "id": "def-common.SEARCH_MODE_FEATURE_FLAG_ID", + "type": "string", + "tags": [], + "label": "SEARCH_MODE_FEATURE_FLAG_ID", + "description": [], + "signature": [ + "\"searchPlayground:searchModeEnabled\"" + ], + "path": "x-pack/plugins/search_playground/common/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/search_playground.mdx b/api_docs/search_playground.mdx index fea42a0515304..831135e7c8899 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchPlayground'] --- import searchPlaygroundObj from './search_playground.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-ki | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 15 | 0 | 9 | 1 | +| 17 | 0 | 11 | 1 | ## Client diff --git a/api_docs/security.devdocs.json b/api_docs/security.devdocs.json index e7af8f38e9928..bc5c1ffbd6fc9 100644 --- a/api_docs/security.devdocs.json +++ b/api_docs/security.devdocs.json @@ -5243,7 +5243,7 @@ "signature": [ "\"getTags\" | \"pushCase\" | \"createCase\" | \"createComment\" | \"getCase\" | \"getComment\" | \"getReporters\" | \"getUserActions\" | \"findConfigurations\" | \"updateCase\" | \"updateComment\" | \"deleteCase\" | \"deleteComment\" | \"createConfiguration\" | \"updateConfiguration\"" ], - "path": "x-pack/plugins/security/server/authorization/privileges/feature_privilege_builder/cases.ts", + "path": "x-pack/packages/security/authorization_core/src/privileges/feature_privilege_builder/cases.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6779,7 +6779,7 @@ "tags": [], "label": "RawKibanaPrivileges", "description": [], - "path": "x-pack/plugins/security/common/model/raw_kibana_privileges.ts", + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -6793,7 +6793,7 @@ "signature": [ "{ [x: string]: string[]; }" ], - "path": "x-pack/plugins/security/common/model/raw_kibana_privileges.ts", + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", "deprecated": false, "trackAdoption": false }, @@ -6805,9 +6805,15 @@ "label": "features", "description": [], "signature": [ - "RawKibanaFeaturePrivileges" + { + "pluginId": "@kbn/security-authorization-core", + "scope": "server", + "docId": "kibKbnSecurityAuthorizationCorePluginApi", + "section": "def-server.RawKibanaFeaturePrivileges", + "text": "RawKibanaFeaturePrivileges" + } ], - "path": "x-pack/plugins/security/common/model/raw_kibana_privileges.ts", + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", "deprecated": false, "trackAdoption": false }, @@ -6821,7 +6827,7 @@ "signature": [ "{ [x: string]: string[]; }" ], - "path": "x-pack/plugins/security/common/model/raw_kibana_privileges.ts", + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", "deprecated": false, "trackAdoption": false }, @@ -6835,7 +6841,7 @@ "signature": [ "{ [x: string]: string[]; }" ], - "path": "x-pack/plugins/security/common/model/raw_kibana_privileges.ts", + "path": "x-pack/packages/security/authorization_core/src/privileges/raw_kibana_privileges.ts", "deprecated": false, "trackAdoption": false } diff --git a/api_docs/security.mdx b/api_docs/security.mdx index f99cd963ebcbb..e289d2ade1afa 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 447 | 0 | 231 | 1 | +| 447 | 0 | 231 | 0 | ## Client diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index fef443a955c1e..ae4e037e5e71d 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -485,7 +485,7 @@ "\nExperimental flag needed to enable the link" ], "signature": [ - "\"assistantKnowledgeBaseByDefault\" | \"assistantModelEvaluation\" | \"assistantBedrockChat\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"responseActionsSentinelOneKillProcessEnabled\" | \"responseActionsSentinelOneProcessesEnabled\" | \"responseActionsCrowdstrikeManualHostIsolationEnabled\" | \"responseActionScanEnabled\" | \"securitySolutionNotesEnabled\" | \"entityAlertPreviewDisabled\" | \"newUserDetailsFlyoutManagedUser\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jamfDataInAnalyzerEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineDisabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"prebuiltRulesCustomizationEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"unifiedManifestEnabled\" | \"valueListItemsModalEnabled\" | \"manualRuleRunEnabled\" | \"filterProcessDescendantsForEventFiltersEnabled\" | \"dataIngestionHubEnabled\" | undefined" + "\"assistantKnowledgeBaseByDefault\" | \"assistantModelEvaluation\" | \"assistantBedrockChat\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"responseActionsSentinelOneKillProcessEnabled\" | \"responseActionsSentinelOneProcessesEnabled\" | \"responseActionsCrowdstrikeManualHostIsolationEnabled\" | \"responseActionScanEnabled\" | \"securitySolutionNotesEnabled\" | \"entityAlertPreviewDisabled\" | \"newUserDetailsFlyoutManagedUser\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jamfDataInAnalyzerEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineDisabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"prebuiltRulesCustomizationEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"unifiedManifestEnabled\" | \"valueListItemsModalEnabled\" | \"manualRuleRunEnabled\" | \"filterProcessDescendantsForEventFiltersEnabled\" | \"dataIngestionHubEnabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -565,7 +565,7 @@ "\nExperimental flag needed to disable the link. Opposite of experimentalKey" ], "signature": [ - "\"assistantKnowledgeBaseByDefault\" | \"assistantModelEvaluation\" | \"assistantBedrockChat\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"responseActionsSentinelOneKillProcessEnabled\" | \"responseActionsSentinelOneProcessesEnabled\" | \"responseActionsCrowdstrikeManualHostIsolationEnabled\" | \"responseActionScanEnabled\" | \"securitySolutionNotesEnabled\" | \"entityAlertPreviewDisabled\" | \"newUserDetailsFlyoutManagedUser\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jamfDataInAnalyzerEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineDisabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"prebuiltRulesCustomizationEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"unifiedManifestEnabled\" | \"valueListItemsModalEnabled\" | \"manualRuleRunEnabled\" | \"filterProcessDescendantsForEventFiltersEnabled\" | \"dataIngestionHubEnabled\" | undefined" + "\"assistantKnowledgeBaseByDefault\" | \"assistantModelEvaluation\" | \"assistantBedrockChat\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"responseActionsSentinelOneKillProcessEnabled\" | \"responseActionsSentinelOneProcessesEnabled\" | \"responseActionsCrowdstrikeManualHostIsolationEnabled\" | \"responseActionScanEnabled\" | \"securitySolutionNotesEnabled\" | \"entityAlertPreviewDisabled\" | \"newUserDetailsFlyoutManagedUser\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jamfDataInAnalyzerEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineDisabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"prebuiltRulesCustomizationEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"unifiedManifestEnabled\" | \"valueListItemsModalEnabled\" | \"manualRuleRunEnabled\" | \"filterProcessDescendantsForEventFiltersEnabled\" | \"dataIngestionHubEnabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -1931,7 +1931,7 @@ "label": "experimentalFeatures", "description": [], "signature": [ - "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly responseActionScanEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" + "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly responseActionScanEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/public/types.ts", "deprecated": false, @@ -3082,7 +3082,7 @@ "\nThe security solution generic experimental features" ], "signature": [ - "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly responseActionScanEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" + "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly responseActionScanEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/server/plugin_contract.ts", "deprecated": false, @@ -3258,7 +3258,7 @@ "label": "ExperimentalFeatures", "description": [], "signature": [ - "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly responseActionScanEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" + "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly responseActionScanEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, @@ -3324,7 +3324,7 @@ "\nA list of allowed values that can be used in `xpack.securitySolution.enableExperimental`.\nThis object is then used to validate and parse the value entered." ], "signature": [ - "{ readonly excludePoliciesInFilterEnabled: false; readonly kubernetesEnabled: true; readonly donutChartEmbeddablesEnabled: false; readonly previewTelemetryUrlEnabled: false; readonly extendedRuleExecutionLoggingEnabled: false; readonly socTrendsEnabled: false; readonly responseActionsEnabled: true; readonly endpointResponseActionsEnabled: true; readonly responseActionUploadEnabled: true; readonly automatedProcessActionsEnabled: true; readonly responseActionsSentinelOneV1Enabled: true; readonly responseActionsSentinelOneV2Enabled: true; readonly responseActionsSentinelOneGetFileEnabled: true; readonly responseActionsSentinelOneKillProcessEnabled: false; readonly responseActionsSentinelOneProcessesEnabled: false; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: true; readonly responseActionScanEnabled: false; readonly securitySolutionNotesEnabled: false; readonly entityAlertPreviewDisabled: false; readonly assistantModelEvaluation: false; readonly assistantKnowledgeBaseByDefault: false; readonly assistantBedrockChat: true; readonly newUserDetailsFlyoutManagedUser: false; readonly riskScoringPersistence: true; readonly riskScoringRoutesEnabled: true; readonly esqlRulesDisabled: false; readonly protectionUpdatesEnabled: true; readonly disableTimelineSaveTour: false; readonly riskEnginePrivilegesRouteEnabled: true; readonly sentinelOneDataInAnalyzerEnabled: true; readonly sentinelOneManualHostActionsEnabled: true; readonly crowdstrikeDataInAnalyzerEnabled: true; readonly jamfDataInAnalyzerEnabled: false; readonly timelineEsqlTabDisabled: false; readonly unifiedComponentsInTimelineDisabled: false; readonly analyzerDatePickersAndSourcererDisabled: false; readonly prebuiltRulesCustomizationEnabled: false; readonly malwareOnWriteScanOptionAvailable: true; readonly unifiedManifestEnabled: true; readonly valueListItemsModalEnabled: true; readonly manualRuleRunEnabled: false; readonly filterProcessDescendantsForEventFiltersEnabled: false; readonly dataIngestionHubEnabled: false; }" + "{ readonly excludePoliciesInFilterEnabled: false; readonly kubernetesEnabled: true; readonly donutChartEmbeddablesEnabled: false; readonly previewTelemetryUrlEnabled: false; readonly extendedRuleExecutionLoggingEnabled: false; readonly socTrendsEnabled: false; readonly responseActionUploadEnabled: true; readonly automatedProcessActionsEnabled: true; readonly responseActionsSentinelOneV1Enabled: true; readonly responseActionsSentinelOneV2Enabled: true; readonly responseActionsSentinelOneGetFileEnabled: true; readonly responseActionsSentinelOneKillProcessEnabled: true; readonly responseActionsSentinelOneProcessesEnabled: true; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: true; readonly responseActionScanEnabled: true; readonly securitySolutionNotesEnabled: false; readonly entityAlertPreviewDisabled: false; readonly assistantModelEvaluation: false; readonly assistantKnowledgeBaseByDefault: false; readonly assistantBedrockChat: true; readonly newUserDetailsFlyoutManagedUser: false; readonly riskScoringPersistence: true; readonly riskScoringRoutesEnabled: true; readonly esqlRulesDisabled: false; readonly protectionUpdatesEnabled: true; readonly disableTimelineSaveTour: false; readonly riskEnginePrivilegesRouteEnabled: true; readonly sentinelOneDataInAnalyzerEnabled: true; readonly sentinelOneManualHostActionsEnabled: true; readonly crowdstrikeDataInAnalyzerEnabled: true; readonly jamfDataInAnalyzerEnabled: true; readonly timelineEsqlTabDisabled: false; readonly unifiedComponentsInTimelineDisabled: false; readonly analyzerDatePickersAndSourcererDisabled: false; readonly prebuiltRulesCustomizationEnabled: false; readonly malwareOnWriteScanOptionAvailable: true; readonly unifiedManifestEnabled: true; readonly valueListItemsModalEnabled: true; readonly manualRuleRunEnabled: false; readonly filterProcessDescendantsForEventFiltersEnabled: true; readonly dataIngestionHubEnabled: false; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 4e9f907ac2dec..77b452878fa70 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-08-09 +date: 2024-08-27 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 e49f4f80e0e96..3d9049b43d2c2 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-08-09 +date: 2024-08-27 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 067e227e2739f..7f401033ab837 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-08-09 +date: 2024-08-27 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 db39d71671e48..3a66ca3ae8c1b 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-08-09 +date: 2024-08-27 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 8dc2406690cc9..7507c218b3ad9 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-08-09 +date: 2024-08-27 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 7e0d68bb81986..25f8e60fcd4bf 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-08-09 +date: 2024-08-27 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 94ce04d88d052..81fa8b0bd5ccd 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index c1fe088ff1776..8840b6fe9b7cf 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/slo.mdx b/api_docs/slo.mdx index bd15f6ad56b19..44d6d76eec612 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'slo'] --- import sloObj from './slo.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index ae4b974ca9611..7866c061cf7be 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-08-09 +date: 2024-08-27 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 5b974623c8d2c..07eff2e32f515 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-08-09 +date: 2024-08-27 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 234a53cdde1b8..b8475bcdf867f 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-08-09 +date: 2024-08-27 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 d053eac7afb78..82ebcf572b38c 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.devdocs.json b/api_docs/task_manager.devdocs.json index 6ed73468daeea..8a7db40cdda12 100644 --- a/api_docs/task_manager.devdocs.json +++ b/api_docs/task_manager.devdocs.json @@ -300,7 +300,7 @@ "label": "stop", "description": [], "signature": [ - "() => void" + "() => Promise" ], "path": "x-pack/plugins/task_manager/server/plugin.ts", "deprecated": false, @@ -1464,7 +1464,13 @@ "\nAn optional definition of the cost associated with running the task." ], "signature": [ - "TaskCost", + { + "pluginId": "taskManager", + "scope": "server", + "docId": "kibTaskManagerPluginApi", + "section": "def-server.TaskCost", + "text": "TaskCost" + }, " | undefined" ], "path": "x-pack/plugins/task_manager/server/task_type_dictionary.ts", @@ -1624,6 +1630,18 @@ } ], "enums": [ + { + "parentPluginId": "taskManager", + "id": "def-server.TaskCost", + "type": "Enum", + "tags": [], + "label": "TaskCost", + "description": [], + "path": "x-pack/plugins/task_manager/server/task.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "taskManager", "id": "def-server.TaskErrorSource", diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index 9adba47978355..9975a683c2fc6 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 107 | 0 | 63 | 7 | +| 108 | 0 | 64 | 6 | ## Server diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 32a23ceb691eb..0092af0da949f 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.devdocs.json b/api_docs/telemetry_collection_manager.devdocs.json index 89928b629a3db..549b935636476 100644 --- a/api_docs/telemetry_collection_manager.devdocs.json +++ b/api_docs/telemetry_collection_manager.devdocs.json @@ -216,7 +216,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -252,6 +252,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -310,6 +336,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -904,7 +932,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -930,7 +960,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1176,6 +1206,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index ea5e016796087..50b7b81a75760 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-08-09 +date: 2024-08-27 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 f6a0d757e96e1..08d7f118d0da8 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-08-09 +date: 2024-08-27 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 4a0163d07d058..750e14de23137 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index c8c7531cc6444..ace667e6e035d 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-08-09 +date: 2024-08-27 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 62283ec54596b..7d2ca3e44137f 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-08-09 +date: 2024-08-27 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 c3e4ab112251d..4182ee2d921a7 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index 303af21b7d997..925b73c56806c 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -5065,7 +5065,7 @@ "label": "setRuleProperty", "description": [], "signature": [ - "(key: Prop, value: ", + "(key: Prop, value: ", "SanitizedRule", "[Prop] | null) => void" ], @@ -9645,7 +9645,7 @@ "label": "parseAggregationResults", "description": [], "signature": [ - "({ isCountAgg, isGroupAgg, esResult, resultLimit, sourceFieldsParams, generateSourceFieldsFromHits, }: ParseAggregationResultsOpts) => ", + "({ isCountAgg, isGroupAgg, esResult, resultLimit, sourceFieldsParams, generateSourceFieldsFromHits, termField, }: ParseAggregationResultsOpts) => ", { "pluginId": "triggersActionsUi", "scope": "common", @@ -9663,7 +9663,7 @@ "id": "def-common.parseAggregationResults.$1", "type": "Object", "tags": [], - "label": "{\n isCountAgg,\n isGroupAgg,\n esResult,\n resultLimit,\n sourceFieldsParams = [],\n generateSourceFieldsFromHits = false,\n}", + "label": "{\n isCountAgg,\n isGroupAgg,\n esResult,\n resultLimit,\n sourceFieldsParams = [],\n generateSourceFieldsFromHits = false,\n termField,\n}", "description": [], "signature": [ "ParseAggregationResultsOpts" @@ -10133,6 +10133,27 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-common.ParsedAggregationGroup.groups", + "type": "Array", + "tags": [], + "label": "groups", + "description": [], + "signature": [ + { + "pluginId": "@kbn/observability-alerting-rule-utils", + "scope": "common", + "docId": "kibKbnObservabilityAlertingRuleUtilsPluginApi", + "section": "def-common.Group", + "text": "Group" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/triggers_actions_ui/common/data/lib/parse_aggregation_results.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "triggersActionsUi", "id": "def-common.ParsedAggregationGroup.value", diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 6ad099fb50dcd..dd0573a7dad31 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 590 | 1 | 564 | 51 | +| 591 | 1 | 565 | 51 | ## Client diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 614152b1c03c5..147415a02455d 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-08-09 +date: 2024-08-27 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 077155e7aa49d..bc047abd77f93 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-08-09 +date: 2024-08-27 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 69bd2664ffcf1..6e9dc36957bab 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-08-09 +date: 2024-08-27 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 c35c0e0e23c5e..28ebf3b09f032 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.devdocs.json b/api_docs/unified_search.devdocs.json index 0b46582c1421c..a9acfbdc11377 100644 --- a/api_docs/unified_search.devdocs.json +++ b/api_docs/unified_search.devdocs.json @@ -233,7 +233,13 @@ ], "signature": [ "React.ForwardRefExoticComponent<", - "DataViewPickerPropsExtended", + { + "pluginId": "unifiedSearch", + "scope": "public", + "docId": "kibUnifiedSearchPluginApi", + "section": "def-public.DataViewPickerProps", + "text": "DataViewPickerProps" + }, " & ", { "pluginId": "@kbn/shared-ux-utility", @@ -620,7 +626,7 @@ }, "[] | undefined; iconType?: ", "IconType", - " | undefined; showQueryInput?: boolean | undefined; dataTestSubj?: string | undefined; showSaveQuery?: boolean | undefined; customSubmitButton?: React.ReactNode; dataViewPickerOverride?: React.ReactNode; screenTitle?: string | undefined; showQueryMenu?: boolean | undefined; showFilterBar?: boolean | undefined; showDatePicker?: boolean | undefined; showAutoRefreshOnly?: boolean | undefined; additionalQueryBarMenuItems?: ", + " | undefined; showQueryInput?: boolean | undefined; dataTestSubj?: string | undefined; minRefreshInterval?: number | undefined; showSaveQuery?: boolean | undefined; customSubmitButton?: React.ReactNode; dataViewPickerOverride?: React.ReactNode; screenTitle?: string | undefined; showQueryMenu?: boolean | undefined; showFilterBar?: boolean | undefined; showDatePicker?: boolean | undefined; showAutoRefreshOnly?: boolean | undefined; additionalQueryBarMenuItems?: ", "AdditionalQueryBarMenuItems", " | undefined; filtersForSuggestions?: ", { diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 6762fdce473d3..71c9f28b32724 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 149 | 2 | 112 | 22 | +| 149 | 2 | 112 | 21 | ## Client diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index 9d34c07a0e8bc..47c6345975227 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 149 | 2 | 112 | 22 | +| 149 | 2 | 112 | 21 | ## Client diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx index 4c4db200e1ddd..ddddde515e257 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-08-09 +date: 2024-08-27 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 37aad36ae4d0d..fe41ec1fa440d 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.devdocs.json b/api_docs/usage_collection.devdocs.json index 965b393222e37..04dc99f0bda52 100644 --- a/api_docs/usage_collection.devdocs.json +++ b/api_docs/usage_collection.devdocs.json @@ -483,7 +483,7 @@ "TransportRequestOptions", " | undefined): Promise<", "SearchResponse", - ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kQueryRuleset]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; }; name: string | symbol; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kConnector]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kEsql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kInference]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kProfiling]: symbol | null; [kQueryRules]: symbol | null; [kRollup]: symbol | null; [kSearchApplication]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSimulate]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kSynonyms]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", @@ -519,6 +519,32 @@ "TransportRequestOptions", " | undefined): Promise<", "BulkResponse", + ">; }; capabilities: { (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "TODO", + ">; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "TODO", + ", unknown>>; (this: That, params?: ", + "TODO", + " | ", + "TODO", + " | undefined, options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "TODO", ">; }; cat: ", "default", "; ccr: ", @@ -577,6 +603,8 @@ "ClosePointInTimeResponse", ">; }; cluster: ", "default", + "; connector: ", + "default", "; count: { (this: That, params?: ", "CountRequest", " | ", @@ -1171,7 +1199,9 @@ "PingRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + " | undefined): Promise; }; profiling: ", + "default", + "; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1197,7 +1227,7 @@ "TransportRequestOptions", " | undefined): Promise<", "AcknowledgedResponseBase", - ">; }; queryRuleset: ", + ">; }; queryRules: ", "default", "; rankEval: { (this: That, params: ", "RankEvalRequest", @@ -1443,6 +1473,8 @@ "default", "; shutdown: ", "default", + "; simulate: ", + "default", "; slm: ", "default", "; snapshot: ", @@ -2286,6 +2318,24 @@ "trackAdoption": false, "lifecycle": "setup", "initialIsOpen": true + }, + "start": { + "parentPluginId": "usageCollection", + "id": "def-server.UsageCollectionStart", + "type": "Type", + "tags": [], + "label": "UsageCollectionStart", + "description": [ + "Plugin's start API" + ], + "signature": [ + "UsageCountersServiceStart" + ], + "path": "src/plugins/usage_collection/server/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "lifecycle": "start", + "initialIsOpen": true } }, "common": { diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index aec2f872d8bba..1986d4cc93a16 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.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 | |-------------------|-----------|------------------------|-----------------| -| 51 | 0 | 14 | 4 | +| 52 | 0 | 14 | 5 | ## Client @@ -42,6 +42,9 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core ### Setup +### Start + + ### Interfaces diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 9fd3659c61e8b..52db8bff35a05 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-08-09 +date: 2024-08-27 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 f4554b6b833f0..9bc6e6e6365ad 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-08-09 +date: 2024-08-27 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 b9ebb861681a6..7b5e9d38452bd 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-08-09 +date: 2024-08-27 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 011a5448fcb72..0922ed4326778 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-08-09 +date: 2024-08-27 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 4977547589cdd..ff203dbd3293b 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-08-09 +date: 2024-08-27 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 70158bdcf688b..99d6c80770730 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-08-09 +date: 2024-08-27 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 7626113758d05..1e4c96030615c 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-08-09 +date: 2024-08-27 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 0e487f02401b0..8400a667f3f2f 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-08-09 +date: 2024-08-27 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 9bbc0c2d082e4..b00f3eb7627c8 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-08-09 +date: 2024-08-27 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 134c6dc84e2d5..a1abd27f4405a 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-08-09 +date: 2024-08-27 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 51126cca22af6..23bbfa5922da0 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.devdocs.json b/api_docs/visualizations.devdocs.json index 0a4684c1fb556..b49f7ebbcaa5f 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -4320,7 +4320,7 @@ "section": "def-common.RefreshInterval", "text": "RefreshInterval" }, - "; setRefreshInterval: (refreshInterval: Partial<", + "; getMinRefreshInterval: () => number; setRefreshInterval: (refreshInterval: Partial<", { "pluginId": "data", "scope": "common", @@ -6870,31 +6870,7 @@ "section": "def-public.ContainerOutput", "text": "ContainerOutput" }, - "> | undefined; canLinkToLibrary: (() => Promise) | undefined; canUnlinkFromLibrary: (() => Promise) | undefined; parentApi: (", - { - "pluginId": "@kbn/presentation-containers", - "scope": "public", - "docId": "kibKbnPresentationContainersPluginApi", - "section": "def-public.PresentationContainer", - "text": "PresentationContainer" - }, - " & Partial & ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "public", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-public.PublishesViewMode", - "text": "PublishesViewMode" - }, - ">) | undefined; hidePanelTitle: ", + "> | undefined; hidePanelTitle: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -6958,7 +6934,31 @@ "section": "def-public.PublishingSubject", "text": "PublishingSubject" }, - "; timeRange$: ", + "; parentApi: (", + { + "pluginId": "@kbn/presentation-containers", + "scope": "public", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-public.PresentationContainer", + "text": "PresentationContainer" + }, + " & Partial & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "public", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-public.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">) | undefined; canLinkToLibrary: (() => Promise) | undefined; canUnlinkFromLibrary: (() => Promise) | undefined; timeRange$: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 04dd0eba0cf18..4e0c973ce0fb9 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-08-09 +date: 2024-08-27 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/catalog-info.yaml b/catalog-info.yaml index 47fd1049e2fed..865723fbe0976 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -119,10 +119,6 @@ spec: repository: elastic/kibana provider_settings: trigger_mode: none - schedules: - daily: - branch: main - cronline: "@daily" pipeline_file: ".buildkite/pipelines/sonarqube.yml" teams: kibana-operations: diff --git a/config/serverless.security.yml b/config/serverless.security.yml index 6f39182d1e2e6..b5922379f3c4b 100644 --- a/config/serverless.security.yml +++ b/config/serverless.security.yml @@ -106,3 +106,8 @@ xpack.ml.compatibleModuleType: 'security' # Disable the embedded Dev Console console.ui.embeddedEnabled: false + +# mTLS cert paths for agentless-api calls +xpack.fleet.agentless.api.tls.certificate: "/mnt/elastic-internal/http-certs/tls.crt" +xpack.fleet.agentless.api.tls.key: "/mnt/elastic-internal/http-certs/tls.key" +xpack.fleet.agentless.api.tls.ca: "/mnt/elastic-internal/http-certs/ca.crt" diff --git a/dev_docs/contributing/how_we_use_github.mdx b/dev_docs/contributing/how_we_use_github.mdx index 69eb3ba8351c6..4e59b59c7abeb 100644 --- a/dev_docs/contributing/how_we_use_github.mdx +++ b/dev_docs/contributing/how_we_use_github.mdx @@ -207,10 +207,11 @@ it's notable and affects our users) and which section it appears in. For example The following labels are related to backporting PRs: -- `auto-backport`: Automatically backport this PR (to the branches related to +- `backport:version`: Automatically backport this PR (to the branches related to version labels) after it's merged. Requires adding desired target versions labels. - `backport:prev-minor`: Automatically backport to one lower minor version. -- `backport:prev-major`: Automatically backport to the latest minor version of one lower major version. +- `backport:prev-major`: Automatically backport to all minor version of one lower major version. +- `backport:current-major`: Automatically backport to all minor version of the current major version. - `backport:all-open`: Automatically backport to all generally available versions. This functionally is equivalent to backport:prev-major at the time of writing. - `backport:skip`: This PR does not require backporting. - `backport`: This PR was backported (added by CI). diff --git a/dev_docs/getting_started/setting_up_a_development_env.mdx b/dev_docs/getting_started/setting_up_a_development_env.mdx index 49b745f9d0f0d..a63dfdce59b4d 100644 --- a/dev_docs/getting_started/setting_up_a_development_env.mdx +++ b/dev_docs/getting_started/setting_up_a_development_env.mdx @@ -3,8 +3,8 @@ id: kibDevTutorialSetupDevEnv slug: /kibana-dev-docs/getting-started/setup-dev-env title: Set up a Development Environment description: Learn how to setup a development environment for contributing to the Kibana repository -date: 2022-07-07 -tags: ['kibana', 'onboarding', 'dev', 'architecture', 'setup'] +date: 2024-08-09 +tags: ['kibana', 'onboarding', 'dev', 'architecture', 'setup', 'devcontainer'] --- Setting up a development environment is pretty easy. @@ -92,3 +92,28 @@ node scripts/register_git_hook ``` After the script completes the pre-commit hook will be created within the file `.git/hooks/pre-commit`. If you choose to not install it, don’t worry, we still run a quick CI check to provide feedback earliest as we can about the same checks. + +## Using the Kibana Dev Container (optional) + +Kibana also supports using a [dev container](https://containers.dev/) which can integrate with various editors and tools [(supported tools)](https://containers.dev/supporting). The dev container provides a consistent development environment across different machines and setups which is based on Ubuntu Jammy (22.04). The only prerequisite is having [Docker](https://www.docker.com/) installed locally. VS Code is the recommended editor and will be used for these instructions because it is the most mature, but it is not required. + +### Setting up the Dev Container + +1. Make a copy of `.devcontainer/.env.template` and rename it to `.devcontainer/.env`. Edit any values you're interested in. +1. There are three options for mounting the Kibana repo into the container: + - **Local Filesystem**: Clone the repo locally, or use an existing copy, and open it in VS Code. When prompted, select "Reopen in Dev Container". This uses a bind mount, allowing the container to access and modify files directly on your local filesystem. Your git credentials should be automatically mounted in the container as well. Note that Bazel will create symlinks and a cache inside the container file system. So, if switching to working on your local filesystem afterwards, you will need to bootstrap again. + - **Docker Repo Volume**: Use the `Dev Containers: Clone Repository in Named Container Volume...` command from the Command Palette (`F1`). This clones the repo into a Docker volume, isolating it from your local filesystem. You will need to configure your git credentials manually in this isolated environment. + - **Docker PR Volume**: Use the `Dev Containers: Clone GitHub Pull Request in Named Container Volume...` command from the Command Palette (`F1`). This is the same as the previous option, but can be useful for testing a PR in insolation of your local filesystem. +1. VS Code will then build the container, this will take a few minutes the first time, but subsequent builds will utilize Docker caching and be much faster. +1. Once the container is built and started, it will automatically run `yarn kbn bootstrap`. +1. You should see the Kibana repo and your terminal will be inside the container. You can develop as normal now, including running `yarn es` from inside the container. + +### Customizing the Dev Container +Installing any extra extensions or making adjustments to the OS environment inside the container will not have an effect on your local OS or VS Code installation. Editing the `devcontainer.json` or `.devcontainer/Dockerfile` should be reserved for changes to all dev environments. + +### FIPS Mode + +The dev container is pre-configured to run Kibana in FIPS mode if needed. Simply change the `.env` file to `FIPS=1` and reopen your terminal. There should be a log message in your terminal which indicates `FIPS mode enabled`. + +### Troubleshooting +- Sometimes when rebuilding the container, there will be an error message that it failed. Usually hitting retry will fix this, and is only related to VS Code trying to reconnect to the container too quickly. \ No newline at end of file diff --git a/dev_docs/operations/writing_stable_functional_tests.mdx b/dev_docs/operations/writing_stable_functional_tests.mdx index 9403b9144260d..42aadf702ba92 100644 --- a/dev_docs/operations/writing_stable_functional_tests.mdx +++ b/dev_docs/operations/writing_stable_functional_tests.mdx @@ -75,6 +75,10 @@ await testSubjects.existsOrFail('savedItemDetailPage') Even if you are very careful, the more UI automation you do the more likely you are to make a mistake and write a flaky test. If there is any way to do setup work for your test via the Kibana or Elasticsearch APIs rather than interacting with the UI, then take advantage of that opportunity to write less UI automation. +## Incorrect usage of EUI components in React code will cause a functional test failure + +For EUI to support theming and internationalization, EUI components in your React application must be wrapped in `EuiProvider` (more preferably, use the `KibanaRenderContextProvider` wrapper). The functional test runner treats EUI as a first-class citizen and will throw an error when incorrect usage of EUI is detected. However, experiencing this type of failure in a test run is unlikely: in dev mode, a toast message alerts developers of incorrect EUI usage in real-time. + ## Do you really need a functional test for this? Once you've invested a lot of time and energy into figuring out how to write functional tests well it can be tempting to use them for all sorts of things which might not justify the cost of a functional test. Make sure that your test is validating something that couldn't be validated by a series of unit tests on a component+store+API. diff --git a/dev_docs/tutorials/generating_oas_for_http_apis.mdx b/dev_docs/tutorials/generating_oas_for_http_apis.mdx index f47031887db80..19852206f8006 100644 --- a/dev_docs/tutorials/generating_oas_for_http_apis.mdx +++ b/dev_docs/tutorials/generating_oas_for_http_apis.mdx @@ -90,9 +90,17 @@ import { fooResource } from '../../schemas/v1'; // Note: this response schema is instantiated lazily to avoid creating schemas that are not needed in most cases! const fooResourceResponse = () => { return schema.object({ - id: schema.string({ maxLength: 20 }), - name: schema.string(), - createdAt: schema.string(), + id: schema.string({ + maxLength: 20, + meta: { description: 'Add a description.' } + }), + name: schema.string({ meta: { description: 'Add a description.' } }), + createdAt: schema.string({ + meta: { + description: 'Add a description.', + deprecated: true, // An indicator that the property is deprecated + }, + }), }) } @@ -106,6 +114,8 @@ function registerFooRoute(router: IRouter, docLinks: DoclinksStart) { access: 'public', summary: 'Create a foo resource' description: `A foo resource enables baz. See the following [documentation](${docLinks.links.fooResource}).`, + tags: ['oas-tag:my tag'], // Each operation must have a tag that's used to group similar endpoints in the docs + deprecated: true // An indicator that the operation is deprecated }) .addVersion({ version: '2023-10-31', diff --git a/dev_docs/tutorials/performance/adding_custom_performance_metrics.mdx b/dev_docs/tutorials/performance/adding_custom_performance_metrics.mdx index 1c1224c1c858a..37322e3f55e05 100644 --- a/dev_docs/tutorials/performance/adding_custom_performance_metrics.mdx +++ b/dev_docs/tutorials/performance/adding_custom_performance_metrics.mdx @@ -294,6 +294,58 @@ This event will be indexed with the following structure: } ``` +#### Add custom metrics +Having `kibana:plugin_render_time` metric event is not always enough, depending on the use case you would likely need some complementary information to give some sense to the value reported by the metric (e.g. number of hosts, number of services, number of dataStreams, etc). +`kibana:plugin_render_time` metric API supports up to 9 numbered free fields that can be used to report numeric metrics that you intend to analyze. Note that they can be used for any type of numeric information you may want to report. + +We could make use of these custom metrics using the following format: + +```typescript +... + // Call onPageReady once the meaningful data has rendered and visible to the user + onPageReady({ + key1: 'datasets', + value1: 5, + key2: 'documents', + value2: 1000, + }); +... +``` + +where the `keys` will be the keys for the custom metrics we can later aggregate and analyze further. + +An event using custom metrics will be indexed with the following structure: + +```typescript +{ + "_index": "backing-ebt-kibana-browser-performance-metrics-000001", // Performance metrics are stored in a dedicated simplified index (browser \ server). + "_source": { + "timestamp": "2024-08-13T11:29:58.275Z" + "event_type": "performance_metric", // All performance events share a common event type to simplify mapping + "eventName": 'kibana:plugin_render_time', // Event name as specified when reporting it + "duration": 736, // Event duration as specified when reporting it + "meta": { + "target": '/home', + }, + "context": { // Context holds information identifying the deployment, version, application and page that generated the event + "version": "8.16.0-SNAPSHOT", + "cluster_name": "elasticsearch", + "pageName": "application:home:app", + "applicationId": "home", + "page": "app", + "entityId": "61c58ad0-3dd3-11e8-b2b9-5d5dc1715159", + "branch": "main", + ... + }, + "key1": "datasets", + "value1": 5, + "key2": "documents", + "value2": 1000, + ... + }, +} +``` + ### Development environment The metric will be delivered to the [Telemetry Staging](https://telemetry-v2-staging.elastic.dev/) cluster, alongside with the event's context. diff --git a/dev_docs/tutorials/submit_a_pull_request.mdx b/dev_docs/tutorials/submit_a_pull_request.mdx index 0402a533b2498..99033f17ebef3 100644 --- a/dev_docs/tutorials/submit_a_pull_request.mdx +++ b/dev_docs/tutorials/submit_a_pull_request.mdx @@ -55,7 +55,7 @@ If this is a new branch, you will see a link in your terminal that points you di 2. Features: Add labels for any relevant feature areas, e.g. `Feature:Development` 3. Team: Most PRs should have at least one `Team:` label. Add labels for teams that should follow or are responsible for the pull request. 4. Release Note: Add `release_note:skip` if this pull request should not automatically get added to release notes for Kibana - 5. Auto Backport: Add `auto-backport` if you'd like your pull request automatically backported to all labeled versions. + 5. Auto Backport: Add `backport:version` if you'd like your pull request automatically backported to all labeled versions. 6. Submit the pull request. If it's not quite ready for review, it can also be submitted as a Draft pull request. ![Screenshot of Compare and pull request header](../assets/pr_header.png) diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index d58ba5b97832f..c095b28666d7a 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -74,9 +74,43 @@ Review important information about the {kib} 8.x releases. [[release-notes-8.15.0]] == {kib} 8.15.0 - For information about the {kib} 8.15.0 release, review the following information. +The 8.15.0 release includes the following known issues. + +[float] +[[known-issues-8.15.0]] +=== Known issues + +[discrete] +[[known-178114]] +.Kibana fails to start when processing YAML configuration keys that contain dotted notation in objects in arrays +[%collapsible] +==== +*Details* + +In 8.15.1, We fixed a bug when processing YAML configuration keys that contain dotted notation in objects in arrays. +This can manifest as a validation error causing Kibana to not start. + +For more information, refer to {kibana-pull}190590[#190590]. +==== + +[discrete] +[[known-187823]] +.Connectors require update due to Microsoft Teams product retirement +[%collapsible] +==== +*Details* + +The original method for configuring incoming webhooks in Microsoft Teams is being retired. +Refer to https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/[Retirement of Office 365 connectors within Microsoft Teams] and {kibana-issue}187823[#187823]. + +*Impact* + +If you used the *Incoming Webhook* app in Microsoft Teams to generate a webhook URL for a <>, it will stop working in December 2024. + +*Workaround* + +Use the *Workflows* app in Microsoft Teams to create a new webhook URL, as described in <>. +Update your Microsoft Teams connector to use the new URL before the end of December 2024. +==== + [float] [[deprecations-8.15.0]] === Deprecations diff --git a/docs/action-type-template.asciidoc b/docs/action-type-template.asciidoc index 9bd61039712b3..b9d7ca3c6326c 100644 --- a/docs/action-type-template.asciidoc +++ b/docs/action-type-template.asciidoc @@ -36,8 +36,7 @@ Add preconfigured settings for this connector type in alert-action-settings.asci [[-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. +You can test connectors as you're creating or editing the connector in {kib}. actions have the following properties. diff --git a/docs/api/actions-and-connectors.asciidoc b/docs/api/actions-and-connectors.asciidoc index 68e89c5eecaf6..2ab848e900d46 100644 --- a/docs/api/actions-and-connectors.asciidoc +++ b/docs/api/actions-and-connectors.asciidoc @@ -1,39 +1,7 @@ [[actions-and-connectors-api]] == Action and connector APIs -The following connector APIs are available: - -* <> to retrieve a single connector by ID - -* <> to retrieve all connectors - -* <> to retrieve a list of all connector types - -* <> to create connectors - -* <> to update the attributes for an existing connector - -* <> to execute a connector by ID - -* <> to delete a connector by ID - -For deprecated APIs, refer to <>. - For information about the actions and connectors that {kib} supports, refer to <>. -include::actions-and-connectors/create.asciidoc[leveloffset=+1] -include::actions-and-connectors/delete.asciidoc[leveloffset=+1] -include::actions-and-connectors/get.asciidoc[leveloffset=+1] -include::actions-and-connectors/get_all.asciidoc[leveloffset=+1] -include::actions-and-connectors/list.asciidoc[leveloffset=+1] -include::actions-and-connectors/execute.asciidoc[leveloffset=+1] -include::actions-and-connectors/update.asciidoc[leveloffset=+1] -include::actions-and-connectors/legacy/index.asciidoc[] -include::actions-and-connectors/legacy/get.asciidoc[] -include::actions-and-connectors/legacy/get_all.asciidoc[] -include::actions-and-connectors/legacy/list.asciidoc[] -include::actions-and-connectors/legacy/create.asciidoc[] -include::actions-and-connectors/legacy/update.asciidoc[] -include::actions-and-connectors/legacy/execute.asciidoc[] -include::actions-and-connectors/legacy/delete.asciidoc[] +For the latest API details, refer to {api-kibana}/group/endpoint-connectors[connector APIs]. diff --git a/docs/api/actions-and-connectors/create.asciidoc b/docs/api/actions-and-connectors/create.asciidoc deleted file mode 100644 index 55168ecf796ca..0000000000000 --- a/docs/api/actions-and-connectors/create.asciidoc +++ /dev/null @@ -1,653 +0,0 @@ -[[create-connector-api]] -== Create connector API -++++ -Create connector -++++ - -Creates a connector. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[open API specification]. -==== - -[[create-connector-api-request]] -=== {api-request-title} - -`POST :/api/actions/connector` - -`POST :/s//api/actions/connector` - -=== {api-prereq-title} - -You must have `all` privileges for the *{connectors-feature}* feature in the -*Management* section of the <>. - -[[create-connector-api-path-params]] -=== {api-path-parms-title} - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided - in the URL, the default space is used. - -[role="child_attributes"] -[[create-connector-api-request-body]] -=== {api-request-body-title} - -`config`:: -(Required^*^, object) The configuration for the connector. Configuration properties -vary depending on the connector type. For example: -+ --- -// tag::connector-config[] -.Config properties -[%collapsible%open] -==== - -.{ibm-r} connectors -[%collapsible%open] -===== -`apiUrl`:: -(Required, string) The {ibm-r} instance URL. - -`orgId`:: -(Required, string) The {ibm-r} organization ID. - -For more information, refer to <>. -===== - -.Index connectors -[%collapsible%open] -===== - -`executionTimeField`:: -(Optional, string) Specifies a field that will contain the time the alert -condition was detected. The default value is `null`. - -`index`:: -(Required, string) The {es} index to be written to. - -`refresh`:: -(Optional, boolean) The {ref}/docs-refresh.html[refresh] policy for the write -request. The default value is `false`. - -For more information, refer to <>. -===== - -.{jira} connectors -[%collapsible%open] -===== - -`apiUrl`:: -(Required, string) The {jira} instance URL. - -`projectKey`:: -(Required, string) The {jira} project key. - -For more information, refer to <>. -===== - -.Opsgenie connectors -[%collapsible%open] -===== - -`apiUrl`:: -(Required, string) The Opsgenie URL. For example, `https://api.opsgenie.com` or -`https://api.eu.opsgenie.com`. If you are using the `xpack.actions.allowedHosts` -setting, make sure the hostname is added to the allowed hosts. - -For more information, refer to <>. -===== - -.{sn-itom}, {sn-itsm}, and {sn-sir} connectors -[%collapsible%open] -===== -`apiUrl`:: -(Required, string) The {sn} instance URL. - -`clientId`:: -(Required^*^, string) The client ID assigned to your OAuth application. This -property is required when `isOAuth` is `true`. - -`isOAuth`:: -(Optional, string) The type of authentication to use. The default value is -`false`, which means basic authentication is used instead of open authorization -(OAuth). - -`jwtKeyId`:: -(Required^*^, string) The key identifier assigned to the JWT verifier map of -your OAuth application. This property is required when `isOAuth` is `true`. - -`userIdentifierValue`:: -(Required^*^, string) The identifier to use for OAuth authentication. This -identifier should be the user field you selected when you created an OAuth -JWT API endpoint for external clients in your {sn} instance. For example, if -the selected user field is `Email`, the user identifier should be the user's -email address. This property is required when `isOAuth` is `true`. - -`usesTableApi`:: -(Optional, boolean) Determines whether the connector uses the Table API or the -Import Set API. This property is supported only for {sn-itsm} and {sn-sir} -connectors. The default value is `true`. -+ -NOTE: If this property is set to false, the Elastic application should be -installed in {sn}. -===== - -.{swimlane} connectors -[%collapsible%open] -===== -`apiUrl`:: -(Required, string) The {swimlane} instance URL. - -`appId`:: -(Required, string) The {swimlane} application ID. - -`connectorType`:: -(Required, String) The type of the connector. Valid values are: `all`, `alerts`, `cases`. - -`mappings`:: -(Optional, object) The field mapping. -+ -.Mappings properties -[%collapsible%open] -====== - -`alertIdConfig`::: -(Optional, object) Mapping for the alert ID. - -`fieldType`:::: -(Required, string) The type of the field in {swimlane}. - -`id`:::: -(Required, string) The id of the field in {swimlane}. - -`key`:::: -(Required, string) The key of the field in {swimlane}. - -`name`:::: -(Required, string) The name of the field in {swimlane}. - -`caseIdConfig`::: -(Optional, object) Mapping for the case ID. - -`fieldType`:::: -(Required, string) The type of the field in {swimlane}. - -`id`:::: -(Required, string) The id of the field in {swimlane}. - -`key`:::: -(Required, string) The key of the field in {swimlane}. - -`name`:::: -(Required, string) The name of the field in {swimlane}. - -`caseNameConfig`::: -(Optional, object) Mapping for the case name. - -`fieldType`:::: -(Required, string) The type of the field in {swimlane}. - -`id`:::: -(Required, string) The id of the field in {swimlane}. - -`key`:::: -(Required, string) The key of the field in {swimlane}. - -`name`:::: -(Required, string) The name of the field in {swimlane}. - -`commentsConfig`::: -(Optional, object) Mapping for the case comments. - -`fieldType`:::: -(Required, string) The type of the field in {swimlane}. - -`id`:::: -(Required, string) The id of the field in {swimlane}. - -`key`:::: -(Required, string) The key of the field in {swimlane}. - -`name`:::: -(Required, string) The name of the field in {swimlane}. - -`descriptionConfig`::: -(Optional, object) Mapping for the case description. - -`fieldType`:::: -(Required, string) The type of the field in {swimlane}. - -`id`:::: -(Required, string) The id of the field in {swimlane}. - -`key`:::: -(Required, string) The key of the field in {swimlane}. - -`name`:::: -(Required, string) The name of the field in {swimlane}. - -`ruleNameConfig`::: -(Optional, object) Mapping for the name of the alert's rule. - -`fieldType`:::: -(Required, string) The type of the field in {swimlane}. - -`id`:::: -(Required, string) The id of the field in {swimlane}. - -`key`:::: -(Required, string) The key of the field in {swimlane}. - -`name`:::: -(Required, string) The name of the field in {swimlane}. - -`severityConfig`::: -(Optional, object) Mapping for the severity. - -`fieldType`:::: -(Required, string) The type of the field in {swimlane}. - -`id`:::: -(Required, string) The id of the field in {swimlane}. - -`key`:::: -(Required, string) The key of the field in {swimlane}. - -`name`:::: -(Required, string) The name of the field in {swimlane}. - -====== -For more information, refer to <>. -===== - -.{webhook-cm} connectors -[%collapsible%open] -===== - -`createCommentJson`:: -(Optional, string) A JSON payload sent to the create comment URL to create a -case comment. You can use variables to add Kibana Cases data to the payload. The -required variable is `case.comment`. For example: -+ -[source,json] ----- -{ - "body": {{{case.comment}}} -} ----- -+ -NOTE: Due to Mustache template variables (the text enclosed in triple braces, -for example, `{{{case.title}}}`), the JSON is not validated when you create the -connector. The JSON is validated once the Mustache variables have been placed -when the REST method runs. Manually ensure that the JSON is valid, -disregarding the Mustache variables, so the later validation will pass. - -`createCommentMethod`:: -(Optional, string) The REST API HTTP request method to create a case comment in -the third-party system. Valid values are either `patch`, `post`, and `put`. The -default value is `put`. - -`createCommentUrl`:: -(Optional, string) The REST API URL to create a case comment by ID in the -third-party system. You can use a variable to add the external system ID to the -URL. If you are using the `xpack.actions.allowedHosts` setting, make sure the -hostname is added to the allowed hosts. For example: -+ -[source,text] ----- -https://testing-jira.atlassian.net/rest/api/2/issue/{{{external.system.id}}}/comment ----- - -`createIncidentJson`:: -(Required, string) A JSON payload sent to the create case URL to create a case. You -can use variables to add case data to the payload. Required variables are -`case.title` and `case.description`. For example: -+ -[source,json] ----- -{ - "fields": { - "summary": {{{case.title}}}, - "description": {{{case.description}}}, - "labels": {{{case.tags}}} - } -} ----- -+ -NOTE: Due to Mustache template variables (which is the text enclosed in triple -braces, for example, `{{{case.title}}}`), the JSON is not validated when you -create the connector. The JSON is validated after the Mustache variables have -been placed when REST method runs. Manually ensure that the JSON is valid to -avoid future validation errors; disregard Mustache variables during your review. - -`createIncidentMethod`:: -(Optional, string) The REST API HTTP request method to create a case in the -third-party system. Valid values are `patch`, `post`, and `put`. The default -value is `post`. - -`createIncidentResponseKey`:: -(Required, string) The JSON key in the create case response that contains the -external case ID. - -`createIncidentUrl`:: -(Required, string) The REST API URL to create a case in the third-party system. -If you are using the `xpack.actions.allowedHosts` setting, make sure the -hostname is added to the allowed hosts. - -`getIncidentResponseExternalTitleKey`:: -(Required, string) The JSON key in get case response that contains the external -case title. - -`getIncidentUrl`:: -(Required, string) The REST API URL to get the case by ID from the third-party -system. If you are using the `xpack.actions.allowedHosts` setting, make sure the -hostname is added to the allowed hosts. You can use a variable to add the -external system ID to the URL. For example: -+ -[source,text] ----- -https://testing-jira.atlassian.net/rest/api/2/issue/{{{external.system.id}}} ----- -+ -NOTE: Due to Mustache template variables (the text enclosed in triple braces, -for example, `{{{case.title}}}`), the JSON is not validated when you create the -connector. The JSON is validated after the Mustache variables have been placed -when REST method runs. Manually ensure that the JSON is valid, disregarding the -Mustache variables, so the later validation will pass. - -`hasAuth`:: -(Optional, boolean) If true, a username and password for login type authentication -must be provided. The default value is `true`. - -`headers`:: -(Optional, string) A set of key-value pairs sent as headers with the request -URLs for the create case, update case, get case, and create comment methods. - -`updateIncidentJson`:: -(Required, string) The JSON payload sent to the update case URL to update the -case. You can use variables to add Kibana Cases data to the payload. Required -variables are `case.title` and `case.description`. For example: -+ -[source,json] ----- -{ - "fields": { - "summary": {{{case.title}}}, - "description": {{{case.description}}}, - "labels": {{{case.tags}}} - } -} ----- -+ -NOTE: Due to Mustache template variables (which is the text enclosed in triple -braces, for example, `{{{case.title}}}`), the JSON is not validated when you -create the connector. The JSON is validated after the Mustache variables have -been placed when REST method runs. Manually ensure that the JSON is valid to -avoid future validation errors; disregard Mustache variables during your review. - -`updateIncidentMethod`:: -(Optional, string) The REST API HTTP request method to update the case in the -third-party system. Valid values are `patch`, `post`, and `put`. The default -value is `put`. - -`updateIncidentUrl`:: -(Required, string) The REST API URL to update the case by ID in the third-party -system. You can use a variable to add the external system ID to the URL. If you -are using the `xpack.actions.allowedHosts` setting, make sure the hostname is -added to the allowed hosts. For example: -+ -[source,text] ----- -https://testing-jira.atlassian.net/rest/api/2/issue/{{{external.system.ID}}} ----- - -`viewIncidentUrl`:: -(Required, string) The URL to view the case in the external system. You can use -variables to add the external system ID or external system title to the URL.For example: -+ -[source,text] ----- -https://testing-jira.atlassian.net/browse/{{{external.system.title}}} ----- - -For more information, refer to <>. -===== - -This object is not required for server log connectors. - -For more configuration properties, refer to <>. -==== -// end::connector-config[] --- - -`connector_type_id`:: -(Required, string) The connector type ID for the connector. For example, -`.cases-webhook`, `.index`, `.jira`, `.opsgenie`, `.server-log`, or `.servicenow-itom`. - -`name`:: -(Required, string) The display name for the connector. - -`secrets`:: -(Required^*^, object) The secrets configuration for the connector. Secrets -configuration properties vary depending on the connector type. For information -about the secrets configuration properties, refer to <>. -+ --- -WARNING: Remember these values. You must provide them each time you call the <> API. - -// tag::connector-secrets[] -.Secrets properties -[%collapsible%open] -==== - -.{ibm-r} connectors -[%collapsible%open] -===== -`apiKeyId`:: -(Required, string) The authentication key ID for HTTP Basic authentication. - -`apiKeySecret`:: -(Required, string) The authentication key secret for HTTP Basic authentication. -===== - -.{jira} connectors -[%collapsible%open] -===== -`apiToken`:: -(Required, string) The {jira} API authentication token for HTTP basic -authentication. - -`email`:: -(Required, string) The account email for HTTP Basic authentication. -===== - -.Opsgenie connectors -[%collapsible%open] -===== -`apiKey`:: -(Required, string) The Opsgenie API authentication key for HTTP Basic -authentication. -===== - -.{sn-itom}, {sn-itsm}, and {sn-sir} connectors -[%collapsible%open] -===== -`clientSecret`:: -(Required^*^, string) The client secret assigned to your OAuth application. This -property is required when `isOAuth` is `true`. - -`password`:: -(Required^*^, string) The password for HTTP basic authentication. This property -is required when `isOAuth` is `false`. - -`privateKey`:: -(Required^*^, string) The RSA private key that you created for use in {sn}. This -property is required when `isOAuth` is `true`. - -privateKeyPassword:: -(Required^*^, string) The password for the RSA private key. This property is -required when `isOAuth` is `true` and you set a password on your private key. - -`username`:: -(Required^*^, string) The username for HTTP basic authentication. This property -is required when `isOAuth` is `false`. - -===== - -.{swimlane} connectors -[%collapsible%open] -===== -`apiToken`:: -(string) {swimlane} API authentication token. -===== - -.{webhook-cm} connectors -[%collapsible%open] -===== -`password`:: -(Optional, string) The password for HTTP basic authentication. - -`user`:: -(Optional, string) The username for HTTP basic authentication. -===== -This object is not required for index or server log connectors. -==== -// end::connector-secrets[] --- - -[[create-connector-api-request-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[[create-connector-api-example]] -=== {api-examples-title} - -Create an index connector: - -[source,sh] --------------------------------------------------- -POST api/actions/connector -{ - "name": "my-connector", - "connector_type_id": ".index", - "config": { - "index": "test-index" - } -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad", - "connector_type_id": ".index", - "name": "my-connector", - "config": { - "index": "test-index", - "refresh": false, - "executionTimeField": null - }, - "is_preconfigured": false, - "is_deprecated": false, - "is_missing_secrets": false -} --------------------------------------------------- - -Create a {jira} connector: - -[source,sh] --------------------------------------------------- -POST api/actions/connector -{ - "name": "my-jira-connector", - "connector_type_id": ".jira", - "config": { - "apiUrl": "https://elastic.atlassian.net", - "projectKey": "ES" - }, - "secrets": { - "email": "myEmail", - "apiToken": "myToken" - } -} --------------------------------------------------- -// KIBANA - -Create an {ibm-r} connector: - -[source,sh] --------------------------------------------------- -POST api/actions/connector -{ - "name": "my-resilient-connector", - "connector_type_id": ".resilient", - "config": { - "apiUrl": "https://elastic.resilient.net", - "orgId": "201" - }, - "secrets": { - "apiKeyId": "myKey", - "apiKeySecret": "myToken" - } -} --------------------------------------------------- -// KIBANA - -Create an {sn-itom} connector that uses open authorization: - -[source,sh] --------------------------------------------------- -POST api/actions/connector -{ - "name": "my-itom-connector", - "connector_type_id": ".servicenow-itom", - "config": { - "apiUrl": "https://exmaple.service-now.com/", - "clientId": "abcdefghijklmnopqrstuvwxyzabcdef", - "isOAuth": "true", - "jwtKeyId": "fedcbazyxwvutsrqponmlkjihgfedcba", - "userIdentifierValue": "testuser@email.com" - }, - "secrets": { - "clientSecret": "secretsecret", - "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY-----" - } -} --------------------------------------------------- -// KIBANA - -Create a {swimlane} connector: - -[source,sh] --------------------------------------------------- -POST api/actions/connector -{ - "name":"my-swimlane-connector", - "connector_type_id": ".swimlane", - "config":{ - "connectorType":"all", - "mappings":{ - "ruleNameConfig":{ - "id":"b6fst", - "name":"Alert Name", - "key":"alert-name", - "fieldType":"text" - } - }, - "appId":"myAppID", - "apiUrl":"https://myswimlaneinstance.com" - }, - "secrets":{ - "apiToken":"myToken" - } -} --------------------------------------------------- -// KIBANA \ No newline at end of file diff --git a/docs/api/actions-and-connectors/delete.asciidoc b/docs/api/actions-and-connectors/delete.asciidoc deleted file mode 100644 index 81619cdf26b5c..0000000000000 --- a/docs/api/actions-and-connectors/delete.asciidoc +++ /dev/null @@ -1,56 +0,0 @@ -[[delete-connector-api]] -== Delete connector API -++++ -Delete connector -++++ - -Deletes an connector by ID. - -WARNING: When you delete a connector, _it cannot be recovered_. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[open API specification]. -==== - -[discrete] -[[delete-connector-api-request]] -=== {api-request-title} - -`DELETE :/api/actions/connector/` - -`DELETE :/s//api/actions/connector/` - -[discrete] -=== {api-prereq-title} - -You must have `all` privileges for the *{connectors-feature}* feature in the -*Management* section of the -<>. - -[discrete] -[[delete-connector-api-path-params]] -=== {api-path-parms-title} - -`id`:: - (Required, string) The ID of the connector. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[discrete] -[[delete-connector-api-response-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[discrete] -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -DELETE api/actions/connector/c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad --------------------------------------------------- -// KIBANA diff --git a/docs/api/actions-and-connectors/execute.asciidoc b/docs/api/actions-and-connectors/execute.asciidoc deleted file mode 100644 index d820b5e2e122c..0000000000000 --- a/docs/api/actions-and-connectors/execute.asciidoc +++ /dev/null @@ -1,865 +0,0 @@ -[[execute-connector-api]] -== Run connector API -++++ -Run connector -++++ - -Runs a connector by ID. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[open API specification]. -==== - -[[execute-connector-api-request]] -=== {api-request-title} - -`POST :/api/actions/connector//_execute` - -`POST :/s//api/actions/connector//_execute` - -[[execute-connector-api-prereq]] -=== {api-prereq-title} - -You must have `read` privileges for the *{connectors-feature}* feature in the -*Management* section of the -<>. - -If you use an index connector, you must also have `all`, `create`, `index`, or -`write` {ref}/security-privileges.html[indices privileges]. - -[[execute-connector-api-desc]] -=== {api-description-title} - -You can use this API to test an <> that -involves interaction with Kibana services or integrations with third-party -systems. - -[[execute-connector-api-params]] -=== {api-path-parms-title} - -`id`:: -(Required, string) The ID of the connector. - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[role="child_attributes"] -[[execute-connector-api-request-body]] -=== {api-request-body-title} - -`params`:: -(Required, object) The parameters of the connector. Parameter properties vary -depending on the connector type. For information about the parameter properties, -refer to <>. -+ --- -.`Params` properties -[%collapsible%open] -==== - -.Email connectors -[%collapsible%open] -===== -`bcc`:: -(Optional, array of strings) A list of "blind carbon copy" email addresses. -Addresses can be specified in `user@host-name` format or in name `` format. - -`cc`:: -(Optional, array of strings) A list of "carbon copy" email addresses. -Addresses can be specified in `user@host-name` format or in name `` format. - -`message`:: -(Required, string) The email message text. Markdown format is supported. - -`subject`:: -(Required, string) The subject line of the email. - -`to`:: -(Required^*^, array of strings) -A list of email addresses. -Addresses can be specified in `user@host-name` format or in name `` format. -There must be at least one recipient in `to`, `cc`, or `bcc`. - -For more information, refer to <>. -===== - -.Index connectors -[%collapsible%open] -===== -`documents`:: -(Required, array of objects) The documents to index in JSON format. - -For more information, refer to <>. -===== - -.Jira connectors -[%collapsible%open] -===== -`subAction`:: -(Required, string) The action to test. Valid values include: `fieldsByIssueType`, -`getFields`, `getIncident`, `issue`, `issues`, `issueTypes`, and `pushToService`. - -`subActionParams`:: -(Required^*^, object) The set of configuration properties, which vary depending -on the `subAction` value. This object is not required when `subAction` is -`getFields` or `issueTypes`. -+ -.Properties when `subAction` is `fieldsByIssueType` -[%collapsible%open] -====== -`id`::: -(Required, string) The Jira issue type identifier. For example, `10024`. -====== -+ -.Properties when `subAction` is `getIncident` -[%collapsible%open] -====== -`externalId`::: -(Required, string) The Jira issue identifier. For example, `71778`. -====== -+ -.Properties when `subAction` is `issue` -[%collapsible%open] -====== -`id`::: -(Required, string) The Jira issue identifier. For example, `71778`. -====== -+ -.Properties when `subAction` is `issues` -[%collapsible%open] -====== -`title`::: -(Required, string) The title of the Jira issue. -====== -+ -.Properties when `subAction` is `pushToService` -[%collapsible%open] -====== -`comments`::: -(Optional, array of objects) Additional information that is sent to Jira. -+ -.Properties of `comments` -[%collapsible%open] -======= -`comment`:::: -(string) A comment related to the incident. For example, describe how to -troubleshoot the issue. - -`commentId`:::: -(integer) A unique identifier for the comment. -======= - -`incident`::: -(Required, object) Information necessary to create or update a Jira incident. -+ -.Properties of `incident` -[%collapsible%open] -======= -`description`:::: -(Optional, string) The details about the incident. - -`externalId`:::: -(Optional, string) The Jira issue identifier. If present, the incident is -updated. Otherwise, a new incident is created. - -`labels`:::: -(Optional, array of strings) The labels for the incident. For example, -`["LABEL1"]`. NOTE: Labels cannot contain spaces. - -`issueType`:::: -(Optional, integer) The type of incident. For example, `10006`. To obtain the -list of valid values, set `subAction` to `issueTypes`. - -`parent`:::: -(Optional, string) The ID or key of the parent issue. Applies only to `Sub-task` -types of issues. - -`priority`:::: -(Optional, string) The incident priority level. For example, `Lowest`. - -`summary`:::: -(Required, string) A summary of the incident. - -`title`:::: -(Optional, string) A title for the incident, used for searching the contents of -the knowledge base. -======= -====== - -For more information, refer to <>. -===== - -.{opsgenie} connectors -[%collapsible%open] -===== -`subAction`:: -(Required, string) The action to test. Valid values include: `createAlert` and -`closeAlert`. - -`subActionParams`:: -(Required, object) The set of configuration properties, which vary depending on -the `subAction` value. -+ -.Properties when `subAction` is `createAlert` -[%collapsible%open] -====== -`actions`:::: -(Optional, array of strings) The custom actions available to the alert. - -`alias`:::: -(Optional, string) The unique identifier used for alert deduplication in {opsgenie}. - -`description`:::: -(Optional, string) A description that provides detailed information about the alert. - -`details`:::: -(Optional, object) The custom properties of the alert. For example: -`{"key1":"value1","key2":"value2"}`. - -`entity`:::: -(Optional, string) The domain of the alert. For example, the application or server -name. - -`message`:::: -(Required, string) The alert message. - -`note`:::: -(Optional, string) Additional information for the alert. - -`priority`:::: -(Optional, string) The priority level for the alert. Valid values are: `P1`, -`P2`, `P3`, `P4`, and `P5`. - -`responders`:::: -(Optional, array of objects) The entities to receive notifications about the -alert. If `type` is `user`, either `id` or `username` is required. If `type` is -`team`, either `id` or `name` is required. -+ -.Properties of `responders` objects -[%collapsible%open] -======= -`id`:::: -(Required^*^, string) The identifier for the entity. - -`name`:::: -(Required^*^, string) The name of the entity. - -`type`:::: -(Required, string) Valid values are `escalation`, `schedule`, `team`, and `user`. - -`username`:::: -(Required^*^, string) A valid email address for the user. -======= - -`source`:::: -(Optional, string) The display name for the source of the alert. - -`tags`:::: -(Optional, array of strings) The tags for the alert. - -`user`:::: -(Optional, string) The display name for the owner. - -`visibleTo`:::: -(Optional, array of objects) The teams and users that the alert will be visible -to without sending a notification. Only one of `id`, `name`, or `username` is -required. -+ -.Properties of `visibleTo` objects -[%collapsible%open] -======= -`id`:::: -(Required^*^, string) The identifier for the entity. - -`name`:::: -(Required^*^, string) The name of the entity. - -`type`:::: -(Required, string) Valid values are `team` and `user`. - -`username`:::: -(Required^*^, string) The user name. This property is required only when the -`type` is `user`. -======= -====== -+ -.Properties when `subAction` is `closeAlert` -[%collapsible%open] -====== -`alias`:::: -(Required, string) The unique identifier used for alert deduplication in {opsgenie}. -The alias must match the value used when creating the alert. - -`note`:::: -(Optional, string) Additional information for the alert. - -`source`:::: -(Optional, string) The display name for the source of the alert. - -`user`:::: -(Optional, string) The display name for the owner. -====== - -For more information, refer to <>. -===== - - -.{sn-itom} connectors -[%collapsible%open] -===== -`subAction`:: -(Required, string) The action to test. Valid values include: `addEvent` and -`getChoices`. - -`subActionParams`:: -(Required^*^, object) The set of configuration properties, which vary depending -on the `subAction` value. -+ -.Properties when `subAction` is `addEvent` -[%collapsible%open] -====== -`additional_info`:::: -(Optional, string) Additional information about the event. - -`description`:::: -(Optional, string) The details about the event. - -`event_class`:::: -(Optional, string) A specific instance of the source. - -`message_key`:::: -(Optional, string) All actions sharing this key are associated with the same -{sn} alert. The default value is `:`. - -`metric_name`:::: -(Optional, string) The name of the metric. - -`node`:::: -(Optional, string) The host that the event was triggered for. - -`resource`:::: -(Optional, string) The name of the resource. - -`severity`:::: -(Optional, string) The severity of the event. - -`source`:::: -(Optional, string) The name of the event source type. - -`time_of_event`:::: -(Optional, string) The time of the event. - -`type`:::: -(Optional, string) The type of event. -====== -+ -.Properties when `subAction` is `getChoices` -[%collapsible%open] -====== -`fields`:::: -(Required, array of strings) An array of fields. For example, `["severity"]`. -====== -===== - -.{sn-itsm} connectors -[%collapsible%open] -===== -`subAction`:: -(Required, string) The action to test. Valid values include: `getFields`, -`getIncident`, `getChoices`, and `pushToService`. - -`subActionParams`:: -(Required^*^, object) The set of configuration properties, which vary depending -on the `subAction` value. This object is not required when `subAction` is -`getFields`. -+ -.Properties when `subAction` is `getChoices` -[%collapsible%open] -====== -`fields`:::: -(Required, array of strings) An array of fields. For example, `["category","impact"]`. -====== -+ -.Properties when `subAction` is `getIncident` -[%collapsible%open] -====== -`externalId`:::: -(Required, string) The {sn-itsm} issue identifier. -====== -+ -.Properties when `subAction` is `pushToService` -[%collapsible%open] -====== -`comments`::: -(Optional, array of objects) Additional information that is sent to {sn-itsm}. -+ -.Properties of `comments` -[%collapsible%open] -======= -`comment`:::: -(string) A comment related to the incident. For example, describe how to -troubleshoot the issue. - -`commentId`:::: -(integer) A unique identifier for the comment. - -//// -version:::: -(string) TBD -//// -======= - -`incident`::: -(Required, object) Information necessary to create or update a {sn-itsm} incident. -+ -.Properties of `incident` -[%collapsible%open] -======= -`category`:::: -(Optional, string) The category of the incident. - -`correlation_display`:::: -(Optional, string) A descriptive label of the alert for correlation purposes in -{sn}. - -`correlation_id`:::: -(Optional, string) The correlation identifier for the security incident. -Connectors using the same correlation ID are associated with the same {sn} -incident. This value determines whether a new {sn} incident is created or an -existing one is updated. Modifying this value is optional; if not modified, the -rule ID and alert ID are combined as `{{ruleID}}:{{alert ID}}` to form the -correlation ID value in {sn}. The maximum character length for this value is 100 -characters. -+ -NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures -that {sn} creates a separate incident record for every generated alert that uses -a unique alert ID. If the rule generates multiple alerts that use the same alert -IDs, {sn} creates and continually updates a single incident record for the alert. - -`description`:::: -(Optional, string) The details about the incident. - -`externalId`:::: -(Optional, string) The {sn-itsm} issue identifier. If present, the incident is -updated. Otherwise, a new incident is created. - -`impact`:::: -(Optional, string) The impact in {sn-itsm}. - -`severity`:::: -(Optional, string) The severity of the incident. - -`short_description`:::: -(Required, string) A short description for the incident, used for searching the -contents of the knowledge base. - -`subcategory`:::: -(Optional, string) The subcategory in {sn-itsm}. - -`urgency`:::: -(Optional, string) The urgency in {sn-itsm}. -======= -====== -===== - -.{sn-sir} connectors -[%collapsible%open] -===== -`subAction`:: -(Required, string) The action to test. Valid values include: `getFields`, -`getIncident`, `getChoices`, and `pushToService`. - -`subActionParams`:: -(Required^*^, object) The set of configuration properties, which vary depending -on the `subAction` value. This object is not required when `subAction` is -`getFields`. -+ -.Properties when `subAction` is `getChoices` -[%collapsible%open] -====== -`fields`:::: -(Required, array of strings) An array of fields. For example, `["priority","category"]`. -====== -+ -.Properties when `subAction` is `getIncident` -[%collapsible%open] -====== -`externalId`:::: -(Required, string) The {sn-sir} issue identifier. -====== -+ -.Properties when `subAction` is `pushToService` -[%collapsible%open] -====== -`comments`::: -(Optional, array of objects) Additional information that is sent to {sn-sir}. -+ -.Properties of `comments` -[%collapsible%open] -======= -`comment`:::: -(string) A comment related to the incident. For example, describe how to -troubleshoot the issue. - -`commentId`:::: -(integer) A unique identifier for the comment. - -//// -`version`:::: -(string) TBD -//// -======= - -`incident`::: -(Required, object) Information necessary to create or update a {sn-sir} incident. -+ -.Properties of `incident` -[%collapsible%open] -======= -`category`:::: -(Optional, string) The category of the incident. - -`correlation_display`:::: -(Optional, string) A descriptive label of the alert for correlation purposes in -{sn}. - -`correlation_id`:::: -(Optional, string) The correlation identifier for the security incident. -Connectors using the same correlation ID are associated with the same {sn} -incident. This value determines whether a new {sn} incident is created or an -existing one is updated. Modifying this value is optional; if not modified, the -rule ID and alert ID are combined as `{{ruleID}}:{{alert ID}}` to form the -correlation ID value in {sn}. The maximum character length for this value is 100 -characters. -+ -NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures that -{sn} creates a separate incident record for every generated alert that uses a -unique alert ID. If the rule generates multiple alerts that use the same alert -IDs, {sn} creates and continually updates a single incident record for the alert. - -`description`:::: -(Optional, string) The details about the incident. - -`dest_ip`:::: -(Optional, string or array of strings) A list of destination IP addresses related -to the security incident. The IPs are added as observables to the security incident. - -`externalId`:::: -(Optional, string) The {sn-sir} issue identifier. If present, the incident is -updated. Otherwise, a new incident is created. - -`malware_hash`:::: -(Optional, string or array of strings) A list of malware hashes related to the -security incident. The hashes are added as observables to the security incident. - -`malware_url`:::: -(Optional, string or array of strings) A list of malware URLs related to the -security incident. The URLs are added as observables to the security incident. - -`priority`:::: -(Optional, string) The priority of the incident. - -`short_description`:::: -(Required, string) A short description for the incident, used for searching the -contents of the knowledge base. - -`source_ip`:::: -(Optional, string or array of strings) A list of source IP addresses related to -the security incident. The IPs are added as observables to the security incident. - -`subcategory`:::: -(Optional, string) The subcategory of the incident. -======= -====== -===== - -.Server log connectors -[%collapsible%open] -===== -`level`:: -(Optional, string) The log level of the message: `trace`, `debug`, `info`, -`warn`, `error`, or `fatal`. Defaults to `info`. - -`message`:: -(Required, string) The message to log. -===== - -.Slack connectors -[%collapsible%open] -===== -`message`:: -(Required^*^, string) The Slack message text, which cannot contain Markdown, images, or other advanced formatting. -It is applicable only when the connector type is `.slack`. - -`subAction`:: -(Required^*^, string) The action to test. -It is applicable only when the connector type is `.slack_api`. -Valid values include: `postMessage`, `validChannelId`. -====== - -`subActionParams`:: -(Required, object) The set of configuration properties, which vary depending -on the `subAction` value. -+ -.Properties when `subAction` is `postMessage` -[%collapsible%open] -======= -`channelIds`::: -(Optional, array of strings) The Slack channel identifier, which must be one of the allowed channels in the connector configuration. - -`channels`::: -(Optional, array of strings) -The name of a channel that your Slack app has access to. deprecated:[8.12.0] - -`text`::: -(Optional, string) The Slack message text, which cannot contain Markdown, images, or other advanced formatting. -======= -+ -.Properties when `subAction` is `validChannelId` -[%collapsible%open] -======= -`channelId`::: -(Required, string) The Slack channel identifier. For example, `C123ABC456`. -======= -====== -===== - -.{swimlane} connectors -[%collapsible%open] -===== -`subAction`:: -(Required, string) The action to test. It must be `pushToService`. - -`subActionParams`:: -(Required, object) The set of configuration properties. -+ -.Properties of `subActionParams` -[%collapsible%open] -====== -`comments`::: -(Optional, array of objects) Additional information that is sent to {swimlane}. -+ -.Properties of `comments` objects -[%collapsible%open] -======= -comment:::: -(string) A comment related to the incident. For example, describe how to -troubleshoot the issue. - -commentId:::: -(integer) A unique identifier for the comment. - -======= - -`incident`::: -(Required, object) Information necessary to create or update a {swimlane} incident. -+ -.Properties of `incident` -[%collapsible%open] -======= -`alertId`:::: -(Optional, string) The alert identifier. - -`caseId`:::: -(Optional, string) The case identifier for the incident. - -`caseName`:::: -(Optional, string) The case name for the incident. - -`description`:::: -(Optional, string) The description of the incident. - -`ruleName`:::: -(Optional, string) The rule name. - -`severity`:::: -(Optional, string) The severity of the incident. -======= -====== -===== -==== --- - -[[execute-connector-api-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[[execute-connector-api-example]] -=== {api-examples-title} - -Run an index connector: - -[source,sh] --------------------------------------------------- -POST api/actions/connector/c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad/_execute -{ - "params": { - "documents": [ - { - "id": "test_doc_id", - "name": "test_doc_name", - "message": "hello, world" - } - ] - } -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "status": "ok", - "data": { - "took": 10, - "errors": false, - "items": [ - { - "index": { - "_index": "test-index", - "_id": "iKyijHcBKCsmXNFrQe3T", - "_version": 1, - "result": "created", - "_shards": { - "total": 2, - "successful": 1, - "failed": 0 - }, - "_seq_no": 0, - "_primary_term": 1, - "status": 201 - } - } - ] - }, - "connector_id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad" -} --------------------------------------------------- - -Run a server log connector: - -[source,sh] --------------------------------------------------- -POST api/actions/connector/7fc7b9a0-ecc9-11ec-8736-e7d63118c907/_execute -{ - "params": { - "level": "warn", - "message": "Test warning message" - } -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{"status":"ok","connector_id":"7fc7b9a0-ecc9-11ec-8736-e7d63118c907"} --------------------------------------------------- - -Retrieve the list of issue types for a Jira connector: - -[source,sh] --------------------------------------------------- -POST api/actions/connector/b3aad810-edbe-11ec-82d1-11348ecbf4a6/_execute -{ - "params": { - "subAction": "issueTypes" - } -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "status":"ok", - "data":[ - {"id":"10024","name":"Improvement"},{"id":"10006","name":"Task"}, - {"id":"10007","name":"Sub-task"},{"id":"10025","name":"New Feature"}, - {"id":"10023","name":"Bug"},{"id":"10000","name":"Epic"} - ], - "connector_id":"b3aad810-edbe-11ec-82d1-11348ecbf4a6" -} --------------------------------------------------- - -Create then update a {swimlane} incident: -[source,sh] --------------------------------------------------- -POST api/actions/connector/a4746470-2f94-11ed-b0e0-87533c532698/_execute -{ - "params":{ - "subAction":"pushToService", - "subActionParams":{ - "incident":{ - "description":"Description of the incident", - "caseName":"Case name", - "caseId":"1000" - }, - "comments":[ - {"commentId":"1","comment":"A comment about the incident"} - ] - } - } -} - -POST api/actions/connector/a4746470-2f94-11ed-b0e0-87533c532698/_execute -{ - "params":{ - "subAction":"pushToService", - "subActionParams":{ - "incident":{ - "caseId":"1000", - "caseName":"A new case name" - } - } - } -} --------------------------------------------------- -// KIBANA - -Retrieve the list of choices for a {sn-itom} connector: - -[source,sh] --------------------------------------------------- -POST api/actions/connector/9d9be270-2fd2-11ed-b0e0-87533c532698/_execute -{ - "params": { - "subAction": "getChoices", - "subActionParams": { - "fields": [ "severity","urgency" ] - } - } -} --------------------------------------------------- -// KIBANA - -The API returns the severity and urgency choices, for example: - -[source,sh] --------------------------------------------------- -{ - "status": "ok", - "data":[ - {"dependent_value":"","label":"Critical","value":"1","element":"severity"}, - {"dependent_value":"","label":"Major","value":"2","element":"severity"}, - {"dependent_value":"","label":"Minor","value":"3","element":"severity"}, - {"dependent_value":"","label":"Warning","value":"4","element":"severity"}, - {"dependent_value":"","label":"OK","value":"5","element":"severity"}, - {"dependent_value":"","label":"Clear","value":"0","element":"severity"}, - {"dependent_value":"","label":"1 - High","value":"1","element":"urgency"}, - {"dependent_value":"","label":"2 - Medium","value":"2","element":"urgency"}, - {"dependent_value":"","label":"3 - Low","value":"3","element":"urgency"}], - "connector_id":"9d9be270-2fd2-11ed-b0e0-87533c532698" -} --------------------------------------------------- - diff --git a/docs/api/actions-and-connectors/get.asciidoc b/docs/api/actions-and-connectors/get.asciidoc deleted file mode 100644 index 92414babd1638..0000000000000 --- a/docs/api/actions-and-connectors/get.asciidoc +++ /dev/null @@ -1,74 +0,0 @@ -[[get-connector-api]] -== Get connector API -++++ -Get connector -++++ - -Retrieves a connector by ID. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[open API specification]. -==== - -[discrete] -[[get-connector-api-request]] -=== {api-request-title} - -`GET :/api/actions/connector/` - -`GET :/s//api/actions/connector/` - -[discrete] -=== {api-prereq-title} - -You must have `read` privileges for the *{connectors-feature}* feature in the -*Management* section of the -<>. - -[discrete] -[[get-connector-api-params]] -=== {api-path-parms-title} - -`id`:: - (Required, string) The ID of the connector. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[discrete] -[[get-connector-api-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[discrete] -[[get-connector-api-example]] -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -GET api/actions/connector/c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad", - "connector_type_id": ".index", - "name": "my-connector", - "config": { - "index": "test-index", - "refresh": false, - "executionTimeField": null - }, - "is_preconfigured": false, - "is_deprecated": false, - "is_missing_secrets": false -} --------------------------------------------------- \ No newline at end of file diff --git a/docs/api/actions-and-connectors/get_all.asciidoc b/docs/api/actions-and-connectors/get_all.asciidoc deleted file mode 100644 index ba2cab86b654f..0000000000000 --- a/docs/api/actions-and-connectors/get_all.asciidoc +++ /dev/null @@ -1,84 +0,0 @@ -[[get-all-connectors-api]] -== Get all connectors API -++++ -Get all connectors -++++ - -Retrieves all connectors. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[open API specification]. -==== - -[discrete] -[[get-all-connectors-api-request]] -=== {api-request-title} - -`GET :/api/actions/connectors` - -`GET :/s//api/actions/connectors` - -[discrete] -=== {api-prereq-title} - -You must have `read` privileges for the *{connectors-feature}* feature in the -*Management* section of the -<>. - -[discrete] -[[get-all-connectors-api-path-params]] -=== {api-path-parms-title} - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[discrete] -[[get-all-connectors-api-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[discrete] -[[get-all-connectors-api-example]] -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -GET api/actions/connectors --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id": "preconfigured-mail-connector", - "connector_type_id": ".email", - "name": "email: preconfigured-mail-connector", - "is_preconfigured": true, - "is_deprecated": false, - "referenced_by_count": 0 <1> - }, - { - "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad", - "connector_type_id": ".index", - "name": "my-connector", - "config": { - "index": "test-index", - "refresh": false, - "executionTimeField": null - }, - "is_preconfigured": false, - "is_deprecated": false, - "is_missing_secrets": false, - "referenced_by_count": 3 - } -] --------------------------------------------------- - -<1> `referenced_by_count` indicates the number of saved objects that reference the connector. This value is not calculated if `is_preconfigured` is `true`. \ No newline at end of file diff --git a/docs/api/actions-and-connectors/legacy/create.asciidoc b/docs/api/actions-and-connectors/legacy/create.asciidoc deleted file mode 100644 index 5b5b71b1d6daa..0000000000000 --- a/docs/api/actions-and-connectors/legacy/create.asciidoc +++ /dev/null @@ -1,82 +0,0 @@ -[[actions-and-connectors-legacy-api-create]] -==== Legacy Create connector API -++++ -Legacy Create connector -++++ - -deprecated::[7.13.0,Use <> instead.] - -Creates a connector. - -[[actions-and-connectors-legacy-api-create-request]] -===== Request - -`POST :/api/actions/action` - -`POST :/s//api/actions/action` - -[[actions-and-connectors-legacy-api-create-path-params]] -===== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[actions-and-connectors-legacy-api-create-request-body]] -===== Request body - -`name`:: - (Required, string) The display name for the connector. - -`actionTypeId`:: - (Required, string) The connector type ID for the connector. - -`config`:: - (Required, object) The configuration for the connector. Configuration properties vary depending on - the connector type. For information about the configuration properties, refer to <>. - -`secrets`:: - (Required, object) The secrets configuration for the connector. Secrets configuration properties vary - depending on the connector type. For information about the secrets configuration properties, refer to <>. -+ -WARNING: Remember these values. You must provide them each time you call the <> API. - -[[actions-and-connectors-legacy-api-create-request-codes]] -===== Response code - -`200`:: - Indicates a successful call. - -[[actions-and-connectors-legacy-api-create-example]] -===== Example - -[source,sh] --------------------------------------------------- -$ curl -X POST api/actions/action -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "name": "my-connector", - "actionTypeId": ".index", - "config": { - "index": "test-index" - } -}' --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad", - "actionTypeId": ".index", - "name": "my-connector", - "config": { - "index": "test-index", - "refresh": false, - "executionTimeField": null - }, - "isPreconfigured": false, - "isDeprecated": false, - "isMissingSecrets": false -} --------------------------------------------------- diff --git a/docs/api/actions-and-connectors/legacy/delete.asciidoc b/docs/api/actions-and-connectors/legacy/delete.asciidoc deleted file mode 100644 index 9ec2c0d392a96..0000000000000 --- a/docs/api/actions-and-connectors/legacy/delete.asciidoc +++ /dev/null @@ -1,41 +0,0 @@ -[[actions-and-connectors-legacy-api-delete]] -==== Legacy Delete connector API -++++ -Legacy Delete connector -++++ - -deprecated::[7.13.0,Use <> instead.] - -Deletes a connector by ID. - -WARNING: When you delete an connector, _it cannot be recovered_. - -[[actions-and-connectors-legacy-api-delete-request]] -===== Request - -`DELETE :/api/actions/action/` - -`DELETE :/s//api/actions/action/` - -[[actions-and-connectors-legacy-api-delete-path-params]] -===== Path parameters - -`id`:: - (Required, string) The ID of the connector. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[actions-and-connectors-legacy-api-delete-response-codes]] -===== Response code - -`200`:: - Indicates a successful call. - -===== Example - -[source,sh] --------------------------------------------------- -$ curl -X DELETE api/actions/action/c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad --------------------------------------------------- -// KIBANA diff --git a/docs/api/actions-and-connectors/legacy/execute.asciidoc b/docs/api/actions-and-connectors/legacy/execute.asciidoc deleted file mode 100644 index f01aa1585b192..0000000000000 --- a/docs/api/actions-and-connectors/legacy/execute.asciidoc +++ /dev/null @@ -1,90 +0,0 @@ -[[actions-and-connectors-legacy-api-execute]] -==== Legacy Execute connector API -++++ -Legacy Execute connector -++++ - -deprecated::[7.13.0,Use <> instead.] - -Executes a connector by ID. - -[[actions-and-connectors-legacy-api-execute-request]] -===== Request - -`POST :/api/actions/action//_execute` - -`POST :/s//api/actions/action//_execute` - -[[actions-and-connectors-legacy-api-execute-params]] -===== Path parameters - -`id`:: - (Required, string) The ID of the connector. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[actions-and-connectors-legacy-api-execute-request-body]] -===== Request body - -`params`:: - (Required, object) The parameters of the connector. Parameter properties vary depending on - the connector type. For information about the parameter properties, refer to <>. - -[[actions-and-connectors-legacy-api-execute-codes]] -===== Response code - -`200`:: - Indicates a successful call. - -[[actions-and-connectors-legacy-api-execute-example]] -===== Example - -[source,sh] --------------------------------------------------- -$ curl -X POST api/actions/action/c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad/_execute -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "params": { - "documents": [ - { - "id": "test_doc_id", - "name": "test_doc_name", - "message": "hello, world" - } - ] - } -}' --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "status": "ok", - "data": { - "took": 197, - "errors": false, - "items": [ - { - "index": { - "_index": "updated-index", - "_id": "iKyijHcBKCsmXNFrQe3T", - "_version": 1, - "result": "created", - "_shards": { - "total": 2, - "successful": 1, - "failed": 0 - }, - "_seq_no": 0, - "_primary_term": 1, - "status": 201 - } - } - ] - }, - "actionId": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad" -} --------------------------------------------------- diff --git a/docs/api/actions-and-connectors/legacy/get.asciidoc b/docs/api/actions-and-connectors/legacy/get.asciidoc deleted file mode 100644 index d6554d606a286..0000000000000 --- a/docs/api/actions-and-connectors/legacy/get.asciidoc +++ /dev/null @@ -1,59 +0,0 @@ -[[actions-and-connectors-legacy-api-get]] -==== Legacy Get connector API -++++ -Legacy Get connector -++++ - -deprecated::[7.13.0,Use <> instead.] - -Retrieves a connector by ID. - -[[actions-and-connectors-legacy-api-get-request]] -===== Request - -`GET :/api/actions/action/` - -`GET :/s//api/actions/action/` - -[[actions-and-connectors-legacy-api-get-params]] -===== Path parameters - -`id`:: - (Required, string) The ID of the action. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[actions-and-connectors-legacy-api-get-codes]] -===== Response code - -`200`:: - Indicates a successful call. - -[[actions-and-connectors-legacy-api-get-example]] -===== Example - -[source,sh] --------------------------------------------------- -$ curl -X GET api/actions/action/c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad", - "actionTypeId": ".index", - "name": "my-connector", - "config": { - "index": "test-index", - "refresh": false, - "executionTimeField": null - }, - "isPreconfigured": false, - "isDeprecated": false, - "isMissingSecrets": false -} --------------------------------------------------- diff --git a/docs/api/actions-and-connectors/legacy/get_all.asciidoc b/docs/api/actions-and-connectors/legacy/get_all.asciidoc deleted file mode 100644 index 9e52b6883ec11..0000000000000 --- a/docs/api/actions-and-connectors/legacy/get_all.asciidoc +++ /dev/null @@ -1,65 +0,0 @@ -[[actions-and-connectors-legacy-api-get-all]] -==== Legacy Get all connector API -++++ -Legacy Get all connector -++++ - -deprecated::[7.13.0,Use <> instead.] - -Retrieves all connectors. - -[[actions-and-connectors-legacy-api-get-all-request]] -===== Request - -`GET :/api/actions` - -`GET :/s//api/actions` - -[[actions-and-connectors-legacy-api-get-all-path-params]] -===== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[actions-and-connectors-legacy-api-get-all-codes]] -===== Response code - -`200`:: - Indicates a successful call. - -[[actions-and-connectors-legacy-api-get-all-example]] -===== Example - -[source,sh] --------------------------------------------------- -$ curl -X GET api/actions --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id": "preconfigured-mail-action", - "actionTypeId": ".email", - "name": "email: preconfigured-mail-action", - "isPreconfigured": true, - "isDeprecated": false - }, - { - "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad", - "actionTypeId": ".index", - "name": "my-action", - "config": { - "index": "test-index", - "refresh": false, - "executionTimeField": null - }, - "isPreconfigured": false, - "isDeprecated": false, - "isMissingSecrets": false - } -] --------------------------------------------------- diff --git a/docs/api/actions-and-connectors/legacy/index.asciidoc b/docs/api/actions-and-connectors/legacy/index.asciidoc deleted file mode 100644 index 66ecb2ed31119..0000000000000 --- a/docs/api/actions-and-connectors/legacy/index.asciidoc +++ /dev/null @@ -1,4 +0,0 @@ -[[actions-and-connectors-legacy-apis]] -=== Deprecated 7.x APIs - -These APIs are deprecated and will be removed in a future release. diff --git a/docs/api/actions-and-connectors/legacy/list.asciidoc b/docs/api/actions-and-connectors/legacy/list.asciidoc deleted file mode 100644 index d78838dcbe974..0000000000000 --- a/docs/api/actions-and-connectors/legacy/list.asciidoc +++ /dev/null @@ -1,69 +0,0 @@ -[[actions-and-connectors-legacy-api-list]] -==== Legacy List connector types API -++++ -Legacy List all connector types -++++ - -deprecated::[7.13.0,Use <> instead.] - -Retrieves a list of all connector types. - -[[actions-and-connectors-legacy-api-list-request]] -===== Request - -`GET :/api/actions/list_action_types` - -`GET :/s//api/actions/list_action_types` - -[[actions-and-connectors-legacy-api-list-path-params]] -===== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[actions-and-connectors-legacy-api-list-codes]] -===== Response code - -`200`:: - Indicates a successful call. - -[[actions-and-connectors-legacy-api-list-example]] -===== Example - -[source,sh] --------------------------------------------------- -$ curl -X GET api/actions/list_action_types --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id": ".email", <1> - "name": "Email", <2> - "minimumLicenseRequired": "gold", <3> - "enabled": false, <4> - "enabledInConfig": true, <5> - "enabledInLicense": false <6> - }, - { - "id": ".index", - "name": "Index", - "minimumLicenseRequired": "basic", - "enabled": true, - "enabledInConfig": true, - "enabledInLicense": true - } -] --------------------------------------------------- - - -<1> `id` - The unique ID of the connector type. -<2> `name` - The name of the connector type. -<3> `minimumLicenseRequired` - The license required to use the connector type. -<4> `enabled` - Specifies if the connector type is enabled or disabled in {kib}. -<5> `enabledInConfig` - Specifies if the connector type is enabled or enabled in the {kib} .yml file. -<6> `enabledInLicense` - Specifies if the connector type is enabled or disabled in the license. diff --git a/docs/api/actions-and-connectors/legacy/update.asciidoc b/docs/api/actions-and-connectors/legacy/update.asciidoc deleted file mode 100644 index 1e6a4e71c8b81..0000000000000 --- a/docs/api/actions-and-connectors/legacy/update.asciidoc +++ /dev/null @@ -1,77 +0,0 @@ -[[actions-and-connectors-legacy-api-update]] -==== Legacy Update connector API -++++ -Legacy Update connector -++++ - -deprecated::[7.13.0,Use <> instead.] - -Updates the attributes for an existing connector. - -[[actions-and-connectors-legacy-api-update-request]] -===== Request - -`PUT :/api/actions/action/` - -`PUT :/s//api/actions/action/` - -[[actions-and-connectors-legacy-api-update-params]] -===== Path parameters - -`id`:: - (Required, string) The ID of the connector. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[actions-and-connectors-legacy-api-update-request-body]] -===== Request body - -`name`:: - (Required, string) The new name of the connector. - -`config`:: - (Required, object) The new connector configuration. Configuration properties vary depending on the connector type. For information about the configuration properties, refer to <>. - -`secrets`:: - (Required, object) The updated secrets configuration for the connector. Secrets properties vary depending on the connector type. For information about the secrets configuration properties, refer to <>. - -[[actions-and-connectors-legacy-api-update-codes]] -===== Response code - -`200`:: - Indicates a successful call. - -[[actions-and-connectors-legacy-api-update-example]] -===== Example - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/actions/action/c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "name": "updated-connector", - "config": { - "index": "updated-index" - } -}' --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad", - "actionTypeId": ".index", - "name": "updated-connector", - "config": { - "index": "updated-index", - "refresh": false, - "executionTimeField": null - }, - "isPreconfigured": false, - "isDeprecated": false, - "isMissingSecrets": false -} --------------------------------------------------- diff --git a/docs/api/actions-and-connectors/list.asciidoc b/docs/api/actions-and-connectors/list.asciidoc deleted file mode 100644 index e978f75d36c1f..0000000000000 --- a/docs/api/actions-and-connectors/list.asciidoc +++ /dev/null @@ -1,88 +0,0 @@ -[[list-connector-types-api]] -== List connector types API -++++ -List all connector types -++++ - -Retrieves a list of all connector types. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[open API specification]. -==== - -[[list-connector-types-api-request]] -=== {api-request-title} - -`GET :/api/actions/connector_types` - -`GET :/s//api/actions/connector_types` - - -[discrete] -=== {api-prereq-title} - -You do not need any <> to -run this API. - -[[list-connector-types-api-path-params]] -=== {api-path-parms-title} - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[list-connector-types-api-query-params]] -=== {api-query-parms-title} - -`feature_id`:: -(Optional, string) Filters list of connector types to those that support the feature id. - -[[list-connector-types-api-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[[list-connector-types-api-example]] -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -GET api/actions/connector_types --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id": ".email", <1> - "name": "Email", <2> - "minimum_license_required": "gold", <3> - "enabled": false, <4> - "enabled_in_config": true, <5> - "enabled_in_license": true, <6> - "supported_feature_ids": ["alerting"] <7> - }, - { - "id": ".index", - "name": "Index", - "minimum_license_required": "basic", - "enabled": true, - "enabled_in_config": true, - "enabled_in_license": true, - "supported_feature_ids": ["alerting"] - }, - ... -] --------------------------------------------------- -<1> `id` - The unique ID of the connector type. -<2> `name` - The name of the connector type. -<3> `minimum_license_required` - The license required to use the connector type. -<4> `enabled` - Specifies if the connector type is enabled or disabled in {kib}. -<5> `enabled_in_config` - Specifies if the connector type is enabled or enabled in the {kib} `.yml` file. -<6> `enabled_in_license` - Specifies if the connector type is enabled or disabled in the license. -<7> `supported_feature_ids` - Specifies which Kibana features this connector type supports. \ No newline at end of file diff --git a/docs/api/actions-and-connectors/update.asciidoc b/docs/api/actions-and-connectors/update.asciidoc deleted file mode 100644 index 7fe3d85ad0ca7..0000000000000 --- a/docs/api/actions-and-connectors/update.asciidoc +++ /dev/null @@ -1,101 +0,0 @@ -[[update-connector-api]] -== Update connector API -++++ -Update connector -++++ - -Updates the attributes for a connector. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[open API specification]. -==== - -[[update-connector-api-request]] -=== {api-request-title} - -`PUT :/api/actions/connector/` - -`PUT :/s//api/actions/connector/` - -[discrete] -=== {api-prereq-title} - -You must have `all` privileges for the *{connectors-feature}* feature in the -*Management* section of the -<>. - -[[update-connector-api-params]] -=== {api-path-parms-title} - -`id`:: - (Required, string) The ID of the connector. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[role="child_attributes"] -[[update-connector-api-request-body]] -=== {api-request-body-title} - -`config`:: -(Required, object) The new connector configuration. Configuration properties -vary depending on the connector type. For example: -+ --- -include::create.asciidoc[tag=connector-config] --- - -`name`:: -(Required, string) The new name of the connector. - -`secrets`:: -(Required^*^, object) The updated secrets configuration for the connector. Secrets -properties vary depending on the connector type. For information about the -secrets configuration properties, refer to -<>. -+ --- -include::create.asciidoc[tag=connector-secrets] --- - -[[update-connector-api-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[[update-connector-api-example]] -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -PUT api/actions/connector/c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad -{ - "name": "updated-connector", - "config": { - "index": "updated-index" - } -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad", - "connector_type_id": ".index", - "name": "updated-connector", - "config": { - "index": "updated-index", - "refresh": false, - "executionTimeField": null - }, - "is_preconfigured": false, - "is_deprecated": false, - "is_missing_secrets": false -} --------------------------------------------------- diff --git a/docs/api/alerting.asciidoc b/docs/api/alerting.asciidoc index e5a8d641da553..777e3b12b581f 100644 --- a/docs/api/alerting.asciidoc +++ b/docs/api/alerting.asciidoc @@ -1,47 +1,4 @@ [[alerting-apis]] == Alerting APIs -The following APIs are available for Alerting. - -* <> to create a rule - -* <> to update the attributes for existing rules - -* <> to retrieve a single rule by ID - -* <> to permanently remove a rule - -* <> to retrieve a paginated set of rules by condition - -* <> to retrieve a list of rule types - -* <> to enable a single rule by ID - -* <> to disable a single rule by ID - -* <> to mute alert for a single rule by ID - -* <> to unmute alert for a single rule by ID - -* <> to mute all alerts for a single rule by ID - -* <> to unmute all alerts for a single rule by ID - -* <> to retrieve the health of the Alerting framework - -For deprecated APIs, refer to <>. - -include::alerting/create_rule.asciidoc[leveloffset=+1] -include::alerting/delete_rule.asciidoc[leveloffset=+1] -include::alerting/disable_rule.asciidoc[leveloffset=+1] -include::alerting/enable_rule.asciidoc[leveloffset=+1] -include::alerting/find_rules.asciidoc[leveloffset=+1] -include::alerting/health.asciidoc[leveloffset=+1] -include::alerting/get_rules.asciidoc[leveloffset=+1] -include::alerting/list_rule_types.asciidoc[leveloffset=+1] -include::alerting/update_rule.asciidoc[leveloffset=+1] -include::alerting/mute_all_alerts.asciidoc[leveloffset=+1] -include::alerting/mute_alert.asciidoc[leveloffset=+1] -include::alerting/unmute_all_alerts.asciidoc[leveloffset=+1] -include::alerting/unmute_alert.asciidoc[leveloffset=+1] -include::alerting/legacy/index.asciidoc[] +For the latest details, refer to {api-kibana}/group/endpoint-alerting[alerting APIs]. diff --git a/docs/api/alerting/create_rule.asciidoc b/docs/api/alerting/create_rule.asciidoc deleted file mode 100644 index faac08b2b613e..0000000000000 --- a/docs/api/alerting/create_rule.asciidoc +++ /dev/null @@ -1,229 +0,0 @@ -[[create-rule-api]] -== Create rule API -++++ -Create rule -++++ - -Create {kib} rules. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[create-rule-api-request]] -=== {api-request-title} - -`POST :/api/alerting/rule/` - -`POST :/s//api/alerting/rule/` - - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rules you're creating. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. If the rule has `actions`, -you must also have `read` privileges for the *Management* > -*{connectors-feature}* feature. For more details, refer to -<>. - -[[create-rule-api-path-params]] -=== {api-path-parms-title} - -``:: -(Optional, string) Specifies a UUID v1 or v4 to use instead of a randomly -generated ID. - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[role="child_attributes"] -[[create-rule-api-request-body]] -=== {api-request-body-title} - -`actions`:: -(Optional, object array) An array of action objects. -+ -.Properties of the action objects: -[%collapsible%open] -===== - -`group`::: -(Required, string) Grouping actions is recommended for escalations for different -types of alerts. If you don't need this, set this value to `default`. - -`id`::: -(Required, string) The ID of the connector saved object, which you can obtain by -using <>. - -`params`::: -(Required, object) The map to the `params` that the -<> will receive. ` params` are handled as Mustache -templates and passed a default set of context. -===== - -`consumer`:: -(Required, string) The name of the application or feature that owns the rule. -For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, -`ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`. - -`enabled`:: -(Optional, boolean) Indicates if you want to run the rule on an interval basis -after it is created. - -`name`:: -(Required, string) The name of the rule. While this name does not have to be -unique, a distinctive name can help you identify a rule. - -`notify_when`:: -(Required, string) Defines how often alerts generate actions. Valid values are: -+ --- - -* `onActionGroupChange`: Actions run when the alert status changes. -* `onActiveAlert`: Actions run when the alert becomes active and at each check -interval while the rule conditions are met. -* `onThrottleInterval`: Actions run when the alert becomes active and at the -interval specified in the `throttle` property while the rule conditions are met. - --- - -`params`:: -(Required, object) The parameters to pass to the rule type executor `params` -value. This will also validate against the rule type params validator, if defined. - -`rule_type_id`:: -(Required, string) The ID of the rule type that you want to call when the rule -is scheduled to run. For example, `.es-query`, `.index-threshold`, -`logs.alert.document.count`, `monitoring_alert_cluster_health`, -`siem.thresholdRule`, or `xpack.ml.anomaly_detection_alert`. For more -information, refer to <>. - -`schedule`:: -(Required, object) The check interval, which specifies how frequently the rule -conditions are checked. The interval must be specified in seconds, minutes, -hours or days. For example: `{ "interval": "10s" }`, `{ "interval": "5m" }`, -`{ "interval": "1h" }`, or `{ "interval": "1d" }`. - -`tags`:: -(Optional, string array) A list of tag names that are applied to a rule. - -`throttle`:: -(Optional, string) Defines how often an alert generates repeated actions. -This custom action interval must be specified in seconds, minutes, hours, or -days. For example, `10m` or `1h`. This property is used only if `notify_when` -is `onThrottleInterval`. - -[[create-rule-api-request-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[[create-rule-api-example]] -=== {api-examples-title} - -Create an <> that has actions -associated with a server log connector: - -[source,sh] --------------------------------------------------- -POST api/alerting/rule -{ - "params":{ - "aggType":"avg", - "termSize":6, - "thresholdComparator":">", - "timeWindowSize":5, - "timeWindowUnit":"m", - "groupBy":"top", - "threshold":[ - 1000 - ], - "index":[ - ".test-index" - ], - "timeField":"@timestamp", - "aggField":"sheet.version", - "termField":"name.keyword" - }, - "consumer":"alerts", - "rule_type_id":".index-threshold", - "schedule":{ - "interval":"1m" - }, - "actions":[ - { - "id":"dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2", - "group":"threshold met", - "params":{ - "level":"info", - "message":"Rule '{{rule.name}}' is active for group '{{context.group}}':\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - } - } - ], - "tags":[ - "cpu" - ], - "notify_when":"onActionGroupChange", - "name":"my alert" -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "41893910-6bca-11eb-9e0d-85d233e3ee35", - "consumer": "alerts", - "tags": ["cpu"], - "name": "my alert", - "enabled": true, - "throttle": null, - "schedule": {"interval": "1m"}, - "params": { - "aggType": "avg", - "termSize": 6, - "thresholdComparator": ">", - "timeWindowSize": 5, - "timeWindowUnit": "m", - "groupBy": "top", - "threshold": [1000], - "index": [".test-index"], - "timeField": "@timestamp", - "aggField": "sheet.version", - "termField": "name.keyword" - }, - "rule_type_id": ".index-threshold", - "scheduled_task_id": "425b0800-6bca-11eb-9e0d-85d233e3ee35", - "created_by": "elastic", - "updated_by": "elastic", - "created_at": "2022-06-08T17:20:31.632Z", - "updated_at": "2022-06-08T17:20:31.632Z", - "api_key_owner": "elastic", - "notify_when": "onActionGroupChange", - "mute_all": false, - "muted_alert_ids": [], - "execution_status": { - "last_execution_date": "2022-06-08T17:20:31.632Z", - "status": "pending" - }, - "actions": [ - { - "group": "threshold met", - "id": "dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2", - "params": { - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - }, - "connector_type_id": ".server-log" - } - ] -} --------------------------------------------------- diff --git a/docs/api/alerting/delete_rule.asciidoc b/docs/api/alerting/delete_rule.asciidoc deleted file mode 100644 index 220b4dfa9ece4..0000000000000 --- a/docs/api/alerting/delete_rule.asciidoc +++ /dev/null @@ -1,54 +0,0 @@ -[[delete-rule-api]] -== Delete rule API -++++ -Delete rule -++++ - -Permanently removes a rule. - -WARNING: After you delete a rule, you cannot recover it. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[delete-rule-api-request]] -=== {api-request-title} - -`DELETE :/api/alerting/rule/` - -`DELETE :/s//api/alerting/rule/` - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rule you're deleting. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* or *{ml-app}* -features, *{observability}*, or *Security* features. For more details, refer to -<>. - -[[delete-rule-api-path-params]] -=== {api-path-parms-title} - -`id`:: -(Required, string) The identifier of the rule that you want to remove. - -`space_id`:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -[[delete-rule-api-response-codes]] -=== {api-response-codes-title} - -`204`:: -Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -DELETE api/alerting/rule/41893910-6bca-11eb-9e0d-85d233e3ee35 --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/disable_rule.asciidoc b/docs/api/alerting/disable_rule.asciidoc deleted file mode 100644 index 8f370072a689c..0000000000000 --- a/docs/api/alerting/disable_rule.asciidoc +++ /dev/null @@ -1,53 +0,0 @@ -[[disable-rule-api]] -== Disable rule API -++++ -Disable rule -++++ - -Disable a rule. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[disable-rule-api-request]] -=== {api-request-title} - -`POST :/api/alerting/rule//_disable` - -`POST :/s//api/alerting/rule//_disable` - - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rule. For example, -the *Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. For more details, refer to -<>. - -[[disable-rule-api-path-params]] -=== {api-path-parms-title} - -`id`:: -(Required, string) The ID of the rule that you want to disable. - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[[disable-rule-api-response-codes]] -=== {api-response-codes-title} - -`204`:: -Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -POST api/alerting/rule/41893910-6bca-11eb-9e0d-85d233e3ee35/_disable --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/enable_rule.asciidoc b/docs/api/alerting/enable_rule.asciidoc deleted file mode 100644 index ba04d0147944a..0000000000000 --- a/docs/api/alerting/enable_rule.asciidoc +++ /dev/null @@ -1,52 +0,0 @@ -[[enable-rule-api]] -== Enable rule API -++++ -Enable rule -++++ - -Enable a rule. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[enable-rule-api-request]] -=== {api-request-title} - -`POST :/api/alerting/rule//_enable` - -`POST :/s//api/alerting/rule//_enable` - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rule. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. For more details, refer to -<>. - -[[enable-rule-api-path-params]] -=== {api-path-parms-title} - -`id`:: -(Required, string) The ID of the rule that you want to enable. - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[[enable-rule-api-response-codes]] -=== {api-response-codes-title} - -`204`:: -Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -POST api/alerting/rule/41893910-6bca-11eb-9e0d-85d233e3ee35/_enable --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/find_rules.asciidoc b/docs/api/alerting/find_rules.asciidoc deleted file mode 100644 index a9a9ee225db7e..0000000000000 --- a/docs/api/alerting/find_rules.asciidoc +++ /dev/null @@ -1,167 +0,0 @@ -[[find-rules-api]] -== Find rules API -++++ -Find rules -++++ - -Retrieve a paginated set of rules based on condition. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[find-rules-api-request]] -=== {api-request-title} - -`GET :/api/alerting/rules/_find` - -`GET :/s//api/alerting/rules/_find` - -=== {api-prereq-title} - -You must have `read` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rules you're seeking. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. To find rules associated -with the *{stack-monitor-app}* feature, use the `monitoring_user` built-in role. - -For more details, refer to <>. - -=== {api-description-title} - -As rules change in {kib}, the results on each page of the response also change. -Use the find API for traditional paginated results, but avoid using it to export -large amounts of data. - -NOTE: Rule `params` are stored as a {ref}/flattened.html[flattened field type] -and analyzed as keywords. - -[[find-rules-api-path-params]] -=== {api-path-parms-title} - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[[find-rules-api-query-params]] -=== {api-query-parms-title} - -`default_search_operator`:: -(Optional, string) The operator to use for the `simple_query_string`. The -default is 'OR'. - -`fields`:: -(Optional, array of strings) The fields to return in the `attributes` key of the -response. - -`filter`:: -(Optional, string) A <> string that you filter with an -attribute from your saved object. It should look like -`savedObjectType.attributes.title: "myTitle"`. However, If you used a direct -attribute of a saved object, such as `updatedAt`, you will have to define your -filter, for example, `savedObjectType.updatedAt > 2018-12-22`. - -`has_reference`:: -(Optional, object) Filters the rules that have a relation with the reference -objects with the specific "type" and "ID". - -`page`:: -(Optional, number) The page number. - -`per_page`:: -(Optional, number) The number of rules to return per page. - -`search`:: -(Optional, string) An {es} -{ref}/query-dsl-simple-query-string-query.html[simple_query_string] query that -filters the rules in the response. - -`search_fields`:: -(Optional, array or string) The fields to perform the `simple_query_string` -parsed query against. - -`sort_field`:: -(Optional, string) Sorts the response. Could be a rule field returned in the -`attributes` key of the response. - -`sort_order`:: -(Optional, string) Sort direction, either `asc` or `desc`. - -[[find-rules-api-request-codes]] -=== {api-response-codes-title} - -`200`:: -Indicates a successful call. - -=== {api-examples-title} - -Find rules with names that start with `my`: - -[source,sh] --------------------------------------------------- -GET api/alerting/rules/_find?search_fields=name&search=my* --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "page": 1, - "total": 1, - "per_page": 10, - "data": [{ - "id": "b530fed0-74f5-11ed-9801-35303b735aef", - "name": "cluster_health_rule", - "consumer": "alerts", - "enabled": true, - "tags": ["cluster","health"], - "throttle": null, - "schedule": {"interval":"1m"}, - "params": {}, - "rule_type_id": "monitoring_alert_cluster_health", - "created_by": "elastic", - "updated_by": "elastic", - "created_at": "2022-12-05T23:36:58.284Z", - "updated_at": "2022-12-05T23:36:58.284Z", - "api_key_owner": "elastic", - "notify_when": "onActiveAlert", - "mute_all": false, - "muted_alert_ids": [], - "scheduled_task_id": "b530fed0-74f5-11ed-9801-35303b735aef", - "execution_status": { - "status": "ok", - "last_execution_date": "2022-12-06T00:09:31.882Z", - "last_duration": 42 - }, - "actions": [{ - "group": "default", - "id": "9dca3e00-74f5-11ed-9801-35303b735aef", - "params": { - "level": "info", - "message": "{{context.internalFullMessage}}" - }, - "connector_type_id": ".server-log" - }], - "last_run":{ - "alerts_count": {"new": 0,"ignored": 0,"recovered": 0,"active": 0}, - "outcome_msg": null, - "warning": null, - "outcome": "succeeded" - }, - "next_run": "2022-12-06T00:10:31.811Z" - }] -} --------------------------------------------------- - -For parameters that accept multiple values (such as `fields`), repeat the -query parameter for each value: - -[source,sh] --------------------------------------------------- -GET api/alerting/rules/_find?fields=id&fields=name --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/get_rules.asciidoc b/docs/api/alerting/get_rules.asciidoc deleted file mode 100644 index ff60d5bad52d1..0000000000000 --- a/docs/api/alerting/get_rules.asciidoc +++ /dev/null @@ -1,123 +0,0 @@ -[[get-rule-api]] -== Get rule API -++++ -Get rule -++++ - -Retrieve a rule by ID. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[get-rule-api-request]] -=== {api-request-title} - -`GET :/api/alerting/rule/` - -`GET :/s//api/alerting/rule/` - -=== {api-prereq-title} - -You must have `read` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rules you're seeking. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. To get rules associated -with the *{stack-monitor-app}* feature, use the `monitoring_user` built-in role. - -For more details, refer to <>. - -[[get-rule-api-params]] -=== {api-path-parms-title} - -`id`:: -(Required, string) The identifier of the rule to retrieve. - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[[get-rule-api-codes]] -=== {api-response-codes-title} - -`200`:: -Indicates a successful call. - -[[get-rule-api-example]] -=== {api-examples-title} - -Retrieve the rule object with the ID `41893910-6bca-11eb-9e0d-85d233e3ee35`: - -[source,sh] --------------------------------------------------- -GET api/alerting/rule/41893910-6bca-11eb-9e0d-85d233e3ee35 --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id":"31697a40-7b36-11ed-aa79-f742c05329b2", - "consumer":"alerts", - "tags":["cpu"], - "name":"my alert", - "enabled":true, - "throttle":null, - "schedule":{ - "interval":"1m" - }, - "params":{ - "aggType":"avg", - "termSize":6, - "thresholdComparator":">", - "timeWindowSize":5, - "timeWindowUnit":"m", - "groupBy":"top", - "threshold":[1000], - "index":["test-index"], - "timeField":"@timestamp", - "aggField":"sheet.version", - "termField":"name.keyword" - }, - "rule_type_id":".index-threshold", - "created_by":"elastic", - "updated_by":"elastic", - "created_at":"2022-12-13T22:33:41.163Z", - "updated_at":"2022-12-13T22:33:41.163Z", - "api_key_owner":"elastic", - "notify_when":"onActionGroupChange", - "muted_alert_ids":[], - "mute_all":false, - "scheduled_task_id":"31697a40-7b36-11ed-aa79-f742c05329b2", - "execution_status":{ - "status":"ok", - "last_execution_date":"2022-12-13T22:33:44.388Z", - "last_duration":83 - }, - "actions":[{ - "group":"threshold met", - "id":"1007a0c0-7a6e-11ed-89d5-abec321c0def", - "params":{ - "level":"info", - "message":"Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - }, - "connector_type_id":".server-log" - }], - "last_run":{ - "alerts_count":{ - "new":0, - "ignored":0, - "recovered":0, - "active":0 - }, - "outcome_msg":null, - "warning":null, - "outcome":"succeeded" - }, - "next_run":"2022-12-13T22:34:44.314Z" -} --------------------------------------------------- diff --git a/docs/api/alerting/health.asciidoc b/docs/api/alerting/health.asciidoc deleted file mode 100644 index cd9d1c9449a82..0000000000000 --- a/docs/api/alerting/health.asciidoc +++ /dev/null @@ -1,83 +0,0 @@ -[[get-alerting-framework-health-api]] -== Get alerting framework health API -++++ -Get alerting framework health -++++ - -Retrieve the health status of the alerting framework. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[get-alerting-framework-health-api-request]] -=== {api-request-title} - -`GET :/api/alerting/_health` - -`GET :/s//api/alerting/_health` - -=== {api-prereq-title} - -You must have `read` privileges for the *Management* > *Stack Rules* feature or -for at least one of the *Analytics* > *Discover*, *Analytics* > *{ml-app}*, -*{observability}*, or *Security* features. - -[[get-alerting-framework-health-api-params]] -=== {api-path-parms-title} - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[[get-alerting-framework-health-api-codes]] -=== {api-response-codes-title} - -`200`:: -Indicates a successful call. - -[[get-alerting-framework-health-api-example]] -=== {api-examples-title} - -Retrieve the health status of the alerting framework: - -[source,sh] --------------------------------------------------- -GET api/alerting/_health --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "is_sufficiently_secure":true, <1> - "has_permanent_encryption_key":true, <2> - "alerting_framework_health":{ <3> - "decryption_health":{ - "status":"ok", - "timestamp":"2022-06-21T21:46:15.023Z" - }, - "execution_health":{ - "status":"ok", - "timestamp":"2022-06-21T21:46:15.023Z" - }, - "read_health":{ - "status":"ok", - "timestamp":"2022-06-21T21:46:15.023Z" - } - } -} --------------------------------------------------- -<1> `is_sufficiently_secure` is `false` when security is enabled, but TLS is not. -<2> `has_permanent_encryption_key` is `false` when the encrypted saved object -plugin does not have a permanent encryption key. -<3> `alerting_framework_health` has three substates that identify the health of -the alerting framework: `decryption_health`, `execution_health`, and -`read_health`. `decryption_health` returns the timestamp and status of the rule -decryption: `ok`, `warn` or `error`. `execution_health` returns the timestamp -and status of the rule execution: `ok`, `warn` or `error`. `read_health` returns -the timestamp and status of the rule reading events: `ok`, `warn` or `error`. diff --git a/docs/api/alerting/legacy/create.asciidoc b/docs/api/alerting/legacy/create.asciidoc deleted file mode 100644 index 18594b0b67f4b..0000000000000 --- a/docs/api/alerting/legacy/create.asciidoc +++ /dev/null @@ -1,202 +0,0 @@ -[[alerts-api-create]] -=== Legacy create alert API -++++ -Legacy create alert -++++ - -deprecated::[7.13.0,Use <> instead.] - -Create {kib} alerts. - -[[alerts-api-create-request]] -==== Request - -`POST :/api/alerts/alert/` - -`POST :/s//api/alerts/alert/` - -[[alerts-api-create-path-params]] -==== Path parameters - -``:: - (Optional, string) Specifies a UUID v1 or v4 to use instead of a randomly generated ID. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-create-request-body]] -==== Request body - -`name`:: - (Required, string) A name to reference and search. - -`tags`:: - (Optional, string array) A list of keywords to reference and search. - -`alertTypeId`:: - (Required, string) The ID of the alert type that you want to call when the alert is scheduled to run. - -`schedule`:: - (Required, object) The schedule specifying when this alert should be run, using one of the available schedule formats specified under -+ -._Schedule Formats_. -[%collapsible%open] -===== -A schedule is structured such that the key specifies the format you wish to use and its value specifies the schedule. - -We currently support the _Interval format_ which specifies the interval in seconds, minutes, hours or days at which the alert should execute. -Example: `{ interval: "10s" }`, `{ interval: "5m" }`, `{ interval: "1h" }`, `{ interval: "1d" }`. - -There are plans to support multiple other schedule formats in the near future. -===== - -`throttle`:: - (Optional, string) How often this alert should fire the same actions. This will prevent the alert from sending out the same notification over and over. For example, if an alert with a `schedule` of 1 minute stays in a triggered state for 90 minutes, setting a `throttle` of `10m` or `1h` will prevent it from sending 90 notifications during this period. - -`notifyWhen`:: - (Required, string) The condition for throttling the notification: `onActionGroupChange`, `onActiveAlert`, or `onThrottleInterval`. - -`enabled`:: - (Optional, boolean) Indicates if you want to run the alert on an interval basis after it is created. - -`consumer`:: - (Required, string) The name of the application that owns the alert. This name has to match the Kibana Feature name, as that dictates the required RBAC privileges. - -`params`:: - (Required, object) The parameters to pass to the alert type executor `params` value. This will also validate against the alert type params validator, if defined. - -`actions`:: - (Optional, object array) An array of the following action objects. -+ -.Properties of the action objects: -[%collapsible%open] -===== - `group`::: - (Required, string) Grouping actions is recommended for escalations for different types of alert instances. If you don't need this, set this value to `default`. - - `id`::: - (Required, string) The ID of the action saved object to execute. - - `actionTypeId`::: - (Required, string) The ID of the <>. - - `params`::: - (Required, object) The map to the `params` that the <> will receive. ` params` are handled as Mustache templates and passed a default set of context. -===== - - -[[alerts-api-create-request-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[alerts-api-create-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X POST api/alerts/alert -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "params":{ - "aggType":"avg", - "termSize":6, - "thresholdComparator":">", - "timeWindowSize":5, - "timeWindowUnit":"m", - "groupBy":"top", - "threshold":[ - 1000 - ], - "index":[ - ".test-index" - ], - "timeField":"@timestamp", - "aggField":"sheet.version", - "termField":"name.keyword" - }, - "consumer":"alerts", - "alertTypeId":".index-threshold", - "schedule":{ - "interval":"1m" - }, - "actions":[ - { - "id":"dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2", - "actionTypeId":".server-log", - "group":"threshold met", - "params":{ - "level":"info", - "message":"Rule '{{rule.name}}' is active for group '{{context.group}}':\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - } - } - ], - "tags":[ - "cpu" - ], - "notifyWhen":"onActionGroupChange", - "name":"my alert" -}' --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "41893910-6bca-11eb-9e0d-85d233e3ee35", - "notifyWhen": "onActionGroupChange", - "params": { - "aggType": "avg", - "termSize": 6, - "thresholdComparator": ">", - "timeWindowSize": 5, - "timeWindowUnit": "m", - "groupBy": "top", - "threshold": [ - 1000 - ], - "index": [ - ".kibana" - ], - "timeField": "@timestamp", - "aggField": "sheet.version", - "termField": "name.keyword" - }, - "consumer": "alerts", - "alertTypeId": ".index-threshold", - "schedule": { - "interval": "1m" - }, - "actions": [ - { - "actionTypeId": ".server-log", - "group": "threshold met", - "params": { - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - }, - "id": "dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2" - } - ], - "tags": [ - "cpu" - ], - "name": "my alert", - "enabled": true, - "throttle": null, - "apiKeyOwner": "elastic", - "createdBy": "elastic", - "updatedBy": "elastic", - "muteAll": false, - "mutedInstanceIds": [], - "updatedAt": "2021-02-10T18:03:19.961Z", - "createdAt": "2021-02-10T18:03:19.961Z", - "scheduledTaskId": "425b0800-6bca-11eb-9e0d-85d233e3ee35", - "executionStatus": { - "lastExecutionDate": "2021-02-10T18:03:19.966Z", - "status": "pending" - } -} --------------------------------------------------- diff --git a/docs/api/alerting/legacy/delete.asciidoc b/docs/api/alerting/legacy/delete.asciidoc deleted file mode 100644 index 2af420f2bc34e..0000000000000 --- a/docs/api/alerting/legacy/delete.asciidoc +++ /dev/null @@ -1,43 +0,0 @@ -[[alerts-api-delete]] -=== Legacy delete alert API -++++ -Legacy delete alert -++++ - -deprecated::[7.13.0,Use <> instead.] - -Permanently remove an alert. - -WARNING: Once you delete an alert, you cannot recover it. - -[[alerts-api-delete-request]] -==== Request - -`DELETE :/api/alerts/alert/` - -`DELETE :/s//api/alerts/alert/` - -[[alerts-api-delete-path-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert that you want to remove. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-delete-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Example - -Delete an alert with ID: - -[source,sh] --------------------------------------------------- -$ curl -X DELETE api/alerts/alert/41893910-6bca-11eb-9e0d-85d233e3ee35 --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/legacy/disable.asciidoc b/docs/api/alerting/legacy/disable.asciidoc deleted file mode 100644 index 1a9b928bfba78..0000000000000 --- a/docs/api/alerting/legacy/disable.asciidoc +++ /dev/null @@ -1,41 +0,0 @@ -[[alerts-api-disable]] -=== Legacy disable alert API -++++ -Legacy disable alert -++++ - -deprecated::[7.13.0,Use <> instead.] - -Disable an alert. - -[[alerts-api-disable-request]] -==== Request - -`POST :/api/alerts/alert//_disable` - -`POST :/s//api/alerts/alert//_disable` - -[[alerts-api-disable-path-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert that you want to disable. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-disable-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Example - -Disable an alert with ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/alerts/alert/41893910-6bca-11eb-9e0d-85d233e3ee35/_disable --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/legacy/enable.asciidoc b/docs/api/alerting/legacy/enable.asciidoc deleted file mode 100644 index da4b466d6fda4..0000000000000 --- a/docs/api/alerting/legacy/enable.asciidoc +++ /dev/null @@ -1,41 +0,0 @@ -[[alerts-api-enable]] -=== Legacy enable alert API -++++ -Legacy enable alert -++++ - -deprecated::[7.13.0,Use <> instead.] - -Enable an alert. - -[[alerts-api-enable-request]] -==== Request - -`POST :/api/alerts/alert//_enable` - -`POST :/s//api/alerts/alert//_enable` - -[[alerts-api-enable-path-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert that you want to enable. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-enable-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Example - -Enable an alert with ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/alerts/alert/41893910-6bca-11eb-9e0d-85d233e3ee35/_enable --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/legacy/find.asciidoc b/docs/api/alerting/legacy/find.asciidoc deleted file mode 100644 index 7c493e9c8eb5b..0000000000000 --- a/docs/api/alerting/legacy/find.asciidoc +++ /dev/null @@ -1,129 +0,0 @@ -[[alerts-api-find]] -=== Legacy find alerts API -++++ -Legacy find alerts -++++ - -deprecated::[7.13.0,Use <> instead.] - -Retrieve a paginated set of alerts based on condition. - -NOTE: As alerts change in {kib}, the results on each page of the response also -change. Use the find API for traditional paginated results, but avoid using it to export large amounts of data. - -[[alerts-api-find-request]] -==== Request - -`GET :/api/alerts/_find` - -`GET :/s//api/alerts/_find` - -[[alerts-api-find-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-find-query-params]] -==== Query Parameters - -NOTE: Alert `params` are stored as a {ref}/flattened.html[flattened field type] and analyzed as keywords. - -`per_page`:: - (Optional, number) The number of alerts to return per page. - -`page`:: - (Optional, number) The page number. - -`search`:: - (Optional, string) An Elasticsearch {ref}/query-dsl-simple-query-string-query.html[simple_query_string] query that filters the alerts in the response. - -`default_search_operator`:: - (Optional, string) The operator to use for the `simple_query_string`. The default is 'OR'. - -`search_fields`:: - (Optional, array|string) The fields to perform the `simple_query_string` parsed query against. - -`fields`:: - (Optional, array|string) The fields to return in the `attributes` key of the response. - -`sort_field`:: - (Optional, string) Sorts the response. Could be an alert fields returned in the `attributes` key of the response. - -`sort_order`:: - (Optional, string) Sort direction, either `asc` or `desc`. - -`has_reference`:: - (Optional, object) Filters the alerts that have a relations with the reference objects with the specific "type" and "ID". - -`filter`:: - (Optional, string) A <> string that you filter with an attribute from your saved object. - It should look like savedObjectType.attributes.title: "myTitle". However, If you used a direct attribute of a saved object, such as `updatedAt`, - you will have to define your filter, for example, savedObjectType.updatedAt > 2018-12-22. - -[[alerts-api-find-request-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Examples - -Find alerts with names that start with `my`: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/alerts/_find?search_fields=name&search=my* --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "page": 1, - "perPage": 10, - "total": 1, - "data": [ - { - "id": "0a037d60-6b62-11eb-9e0d-85d233e3ee35", - "notifyWhen": "onActionGroupChange", - "params": { - "aggType": "avg", - }, - "consumer": "alerts", - "alertTypeId": "test.alert.type", - "schedule": { - "interval": "1m" - }, - "actions": [], - "tags": [], - "name": "test alert", - "enabled": true, - "throttle": null, - "apiKeyOwner": "elastic", - "createdBy": "elastic", - "updatedBy": "elastic", - "muteAll": false, - "mutedInstanceIds": [], - "updatedAt": "2021-02-10T05:37:19.086Z", - "createdAt": "2021-02-10T05:37:19.086Z", - "scheduledTaskId": "0b092d90-6b62-11eb-9e0d-85d233e3ee35", - "executionStatus": { - "lastExecutionDate": "2021-02-10T17:55:14.262Z", - "status": "ok" - } - }, - ] -} --------------------------------------------------- - -For parameters that accept multiple values (e.g. `fields`), repeat the -query parameter for each value: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/alerts/_find?fields=id&fields=name --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/legacy/get.asciidoc b/docs/api/alerting/legacy/get.asciidoc deleted file mode 100644 index ee0f52f51005a..0000000000000 --- a/docs/api/alerting/legacy/get.asciidoc +++ /dev/null @@ -1,77 +0,0 @@ -[[alerts-api-get]] -=== Legacy get alert API -++++ -Legacy get alert -++++ - -deprecated::[7.13.0,Use <> instead.] - -Retrieve an alert by ID. - -[[alerts-api-get-request]] -==== Request - -`GET :/api/alerts/alert/` - -`GET :/s//api/alerts/alert/` - -[[alerts-api-get-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert to retrieve. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-get-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[alerts-api-get-example]] -==== Example - -Retrieve the alert object with the ID `41893910-6bca-11eb-9e0d-85d233e3ee35`: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/alerts/alert/41893910-6bca-11eb-9e0d-85d233e3ee35 --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "0a037d60-6b62-11eb-9e0d-85d233e3ee35", - "notifyWhen": "onActionGroupChange", - "params": { - "aggType": "avg", - }, - "consumer": "alerts", - "alertTypeId": "test.alert.type", - "schedule": { - "interval": "1m" - }, - "actions": [], - "tags": [], - "name": "test alert", - "enabled": true, - "throttle": null, - "apiKeyOwner": "elastic", - "createdBy": "elastic", - "updatedBy": "elastic", - "muteAll": false, - "mutedInstanceIds": [], - "updatedAt": "2021-02-10T05:37:19.086Z", - "createdAt": "2021-02-10T05:37:19.086Z", - "scheduledTaskId": "0b092d90-6b62-11eb-9e0d-85d233e3ee35", - "executionStatus": { - "lastExecutionDate": "2021-02-10T17:55:14.262Z", - "status": "ok" - } -} --------------------------------------------------- diff --git a/docs/api/alerting/legacy/health.asciidoc b/docs/api/alerting/legacy/health.asciidoc deleted file mode 100644 index de051f5eeedbb..0000000000000 --- a/docs/api/alerting/legacy/health.asciidoc +++ /dev/null @@ -1,95 +0,0 @@ -[[alerts-api-health]] -=== Legacy get Alerting framework health API -++++ -Legacy get Alerting framework health -++++ - -deprecated::[7.13.0,Use <> instead.] - -Retrieve the health status of the Alerting framework. - -[[alerts-api-health-request]] -==== Request - -`GET :/api/alerts/_health` - -`GET :/s//api/alerts/_health` - -[[alerts-api-health-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-health-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[alerts-api-health-example]] -==== Example - -Retrieve the health status of the Alerting framework: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/alerts/_health --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "isSufficientlySecure":true, - "hasPermanentEncryptionKey":true, - "alertingFrameworkHealth":{ - "decryptionHealth":{ - "status":"ok", - "timestamp":"2021-02-10T23:35:04.949Z" - }, - "executionHealth":{ - "status":"ok", - "timestamp":"2021-02-10T23:35:04.949Z" - }, - "readHealth":{ - "status":"ok", - "timestamp":"2021-02-10T23:35:04.949Z" - } - } -} --------------------------------------------------- - -The health API response contains the following properties: - -[cols="2*<"] -|=== - -| `isSufficientlySecure` -| Returns `false` if security is enabled, but TLS is not. - -| `hasPermanentEncryptionKey` -| Return the state `false` if Encrypted Saved Object plugin has not a permanent encryption Key. - -| `alertingFrameworkHealth` -| This state property has three substates that identify the health of the alerting framework API: `decryptionHealth`, `executionHealth`, and `readHealth`. - -|=== - -`alertingFrameworkHealth` consists of the following properties: - -[cols="2*<"] -|=== - -| `decryptionHealth` -| Returns the timestamp and status of the alert decryption: `ok`, `warn` or `error` . - -| `executionHealth` -| Returns the timestamp and status of the alert execution: `ok`, `warn` or `error`. - -| `readHealth` -| Returns the timestamp and status of the alert reading events: `ok`, `warn` or `error`. - -|=== diff --git a/docs/api/alerting/legacy/index.asciidoc b/docs/api/alerting/legacy/index.asciidoc deleted file mode 100644 index 48f37c06ff543..0000000000000 --- a/docs/api/alerting/legacy/index.asciidoc +++ /dev/null @@ -1,18 +0,0 @@ -[[alerts-api]] -=== Deprecated 7.x APIs - -These APIs are deprecated and will be removed in a future release. - -include::create.asciidoc[leveloffset=+1] -include::delete.asciidoc[leveloffset=+1] -include::disable.asciidoc[leveloffset=+1] -include::enable.asciidoc[leveloffset=+1] -include::find.asciidoc[leveloffset=+1] -include::get.asciidoc[leveloffset=+1] -include::health.asciidoc[leveloffset=+1] -include::list.asciidoc[leveloffset=+1] -include::mute.asciidoc[leveloffset=+1] -include::mute_all.asciidoc[leveloffset=+1] -include::unmute.asciidoc[leveloffset=+1] -include::unmute_all.asciidoc[leveloffset=+1] -include::update.asciidoc[leveloffset=+1] \ No newline at end of file diff --git a/docs/api/alerting/legacy/list.asciidoc b/docs/api/alerting/legacy/list.asciidoc deleted file mode 100644 index 07307797c4223..0000000000000 --- a/docs/api/alerting/legacy/list.asciidoc +++ /dev/null @@ -1,141 +0,0 @@ -[[alerts-api-list]] -=== Legacy list alert types API -++++ -Legacy list all alert types -++++ - -deprecated::[7.13.0,Use <> instead.] - -Retrieve a list of all alert types. - -[[alerts-api-list-request]] -==== Request - -`GET :/api/alerts/list_alert_types` - -`GET :/s//api/alerts/list_alert_types` - -[[alerts-api-list-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-list-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[alerts-api-list-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X GET api/alerts/list_alert_types --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id":".index-threshold", - "name":"Index threshold", - "actionGroups":[ - { - "id":"threshold met", - "name":"Threshold met" - }, - { - "id":"recovered", - "name":"Recovered" - } - ], - "recoveryActionGroup":{ - "id":"recovered", - "name":"Recovered" - }, - "defaultActionGroupId":"threshold met", - "actionVariables":{ - "context":[ - { - "name":"message", - "description":"A pre-constructed message for the alert." - }, - ], - "state":[], - "params":[ - { - "name":"threshold", - "description":"An array of values to use as the threshold; 'between' and 'notBetween' require two values, the others require one." - }, - { - "name":"index", - "description":"index" - }, - ] - }, - "producer":"stackAlerts", - "minimumLicenseRequired":"basic", - "isExportable":true, - "enabledInLicense":true, - "authorizedConsumers":{ - "alerts":{ - "read":true, - "all":true - }, - "stackAlerts":{ - "read":true, - "all":true - }, - "uptime":{ - "read":true, - "all":true - } - } - } -] --------------------------------------------------- - -Each alert type contains the following properties: - -[cols="2*<"] -|=== - -| `name` -| The descriptive name of the alert type. - -| `id` -| The unique ID of the alert type. - -| `minimumLicenseRequired` -| The license required to use the alert type. - -| `isExportable` -| Whether the rule type is exportable through the Saved Objects Management UI. - -| `enabledInLicense` -| Whether the alert type is enabled or disabled based on the license. - -| `actionGroups` -| An explicit list of groups for which the alert type can schedule actions, each with the action group's unique ID and human readable name. Alert `actions` validation will use this configuration to ensure that groups are valid. Use `kbn-i18n` to translate the names of the action group when registering the alert type. - -| `recoveryActionGroup` -| An action group to use when an alert instance goes from an active state, to an inactive one. Do not specify this action group under the `actionGroups` property. If `recoveryActionGroup` is not specified, the default `recovered` action group is used. - -| `defaultActionGroupId` -| The default ID for the alert type group. - -| `actionVariables` -| An explicit list of action variables that the alert type makes available via context and state in action parameter templates, and a short human readable description. The Alert UI will use this information to prompt users for these variables in action parameter editors. Use `kbn-i18n` to translate the descriptions. - -| `producer` -| The ID of the application producing this alert type. - -| `authorizedConsumers` -| The list of the plugins IDs that have access to the alert type. - -|=== diff --git a/docs/api/alerting/legacy/mute.asciidoc b/docs/api/alerting/legacy/mute.asciidoc deleted file mode 100644 index cf7adc446a2fd..0000000000000 --- a/docs/api/alerting/legacy/mute.asciidoc +++ /dev/null @@ -1,44 +0,0 @@ -[[alerts-api-mute]] -=== Legacy mute alert instance API -++++ -Legacy mute alert instance -++++ - -deprecated::[7.13.0,Use <> instead.] - -Mute an alert instance. - -[[alerts-api-mute-request]] -==== Request - -`POST :/api/alerts/alert//alert_instance//_mute` - -`POST :/s//api/alerts/alert//alert_instance//_mute` - -[[alerts-api-mute-path-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert whose instance you want to mute. - -`alert_instance_id`:: - (Required, string) The ID of the alert instance that you want to mute. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-mute-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Example - -Mute alert instance with ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/alerts/alert/41893910-6bca-11eb-9e0d-85d233e3ee35/alert_instance/dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2/_mute --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/legacy/mute_all.asciidoc b/docs/api/alerting/legacy/mute_all.asciidoc deleted file mode 100644 index bc865480340e2..0000000000000 --- a/docs/api/alerting/legacy/mute_all.asciidoc +++ /dev/null @@ -1,41 +0,0 @@ -[[alerts-api-mute-all]] -=== Legacy mute all alert instances API -++++ -Legacy mute all alert instances -++++ - -deprecated::[7.13.0,Use <> instead.] - -Mute all alert instances. - -[[alerts-api-mute-all-request]] -==== Request - -`POST :/api/alerts/alert//_mute_all` - -`POST :/s//api/alerts/alert//_mute_all` - -[[alerts-api-mute-all-path-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert whose instances you want to mute. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-mute-all-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Example - -Mute all alert instances with ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/alerts/alert/41893910-6bca-11eb-9e0d-85d233e3ee35/_mute_all --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/legacy/unmute.asciidoc b/docs/api/alerting/legacy/unmute.asciidoc deleted file mode 100644 index 300cf71b57a01..0000000000000 --- a/docs/api/alerting/legacy/unmute.asciidoc +++ /dev/null @@ -1,44 +0,0 @@ -[[alerts-api-unmute]] -=== Legacy unmute alert instance API -++++ -Legacy unmute alert instance -++++ - -deprecated::[7.13.0,Use <> instead.] - -Unmute an alert instance. - -[[alerts-api-unmute-request]] -==== Request - -`POST :/api/alerts/alert//alert_instance//_unmute` - -`POST :/s//api/alerts/alert//alert_instance//_unmute` - -[[alerts-api-unmute-path-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert whose instance you want to mute.. - -`alert_instance_id`:: - (Required, string) The ID of the alert instance that you want to unmute. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-unmute-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Example - -Unmute alert instance with ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/alerts/alert/41893910-6bca-11eb-9e0d-85d233e3ee35/alert_instance/dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2/_unmute --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/legacy/unmute_all.asciidoc b/docs/api/alerting/legacy/unmute_all.asciidoc deleted file mode 100644 index 3b0a7afe5f44d..0000000000000 --- a/docs/api/alerting/legacy/unmute_all.asciidoc +++ /dev/null @@ -1,41 +0,0 @@ -[[alerts-api-unmute-all]] -=== Legacy unmute all alert instances API -++++ -Legacy unmute all alert instances -++++ - -deprecated::[7.13.0,Use <> instead.] - -Unmute all alert instances. - -[[alerts-api-unmute-all-request]] -==== Request - -`POST :/api/alerts/alert//_unmute_all` - -`POST :/s//api/alerts/alert//_unmute_all` - -[[alerts-api-unmute-all-path-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert whose instances you want to unmute. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-unmute-all-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Example - -Unmute all alert instances with ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/alerts/alert/41893910-6bca-11eb-9e0d-85d233e3ee35/_unmute_all --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/legacy/update.asciidoc b/docs/api/alerting/legacy/update.asciidoc deleted file mode 100644 index b9cce995660e6..0000000000000 --- a/docs/api/alerting/legacy/update.asciidoc +++ /dev/null @@ -1,141 +0,0 @@ -[[alerts-api-update]] -=== Legacy update alert API -++++ -Legacy update alert -++++ - -deprecated::[7.13.0,Use <> instead.] - -Update the attributes for an existing alert. - -[[alerts-api-update-request]] -==== Request - -`PUT :/api/alerts/alert/` - -`PUT :/s//api/alerts/alert/` - -[[alerts-api-update-path-params]] -==== Path parameters - -`id`:: - (Required, string) The ID of the alert that you want to update. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[alerts-api-update-request-body]] -==== Request body - -`name`:: - (Required, string) A name to reference and search. - -`tags`:: - (Optional, string array) A list of keywords to reference and search. - -`schedule`:: - (Required, object) When to run this alert. Use one of the available schedule formats. -+ -._Schedule Formats_. -[%collapsible%open] -===== -A schedule uses a key: value format. {kib} currently supports the _Interval format_ , which specifies the interval in seconds, minutes, hours, or days at which to execute the alert. - -Example: `{ interval: "10s" }`, `{ interval: "5m" }`, `{ interval: "1h" }`, `{ interval: "1d" }`. - -===== - -`throttle`:: - (Optional, string) How often this alert should fire the same actions. This will prevent the alert from sending out the same notification over and over. For example, if an alert with a `schedule` of 1 minute stays in a triggered state for 90 minutes, setting a `throttle` of `10m` or `1h` will prevent it from sending 90 notifications during this period. - -`notifyWhen`:: - (Required, string) The condition for throttling the notification: `onActionGroupChange`, `onActiveAlert`, or `onThrottleInterval`. - -`params`:: - (Required, object) The parameters to pass to the alert type executor `params` value. This will also validate against the alert type params validator, if defined. - -`actions`:: - (Optional, object array) An array of the following action objects. -+ -.Properties of the action objects: -[%collapsible%open] -===== - `group`::: - (Required, string) Grouping actions is recommended for escalations for different types of alert instances. If you don't need this, set the value to `default`. - - `id`::: - (Required, string) The ID of the action that saved object executes. - - `actionTypeId`::: - (Required, string) The id of the <>. - - `params`::: - (Required, object) The map to the `params` that the <> will receive. `params` are handled as Mustache templates and passed a default set of context. -===== - - -[[alerts-api-update-errors-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[alerts-api-update-example]] -==== Example - -Update an alert with ID `ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74` with a different name: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/alerts/alert/ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 - -{ - "notifyWhen": "onActionGroupChange", - "params": { - "aggType": "avg", - }, - "schedule": { - "interval": "1m" - }, - "actions": [], - "tags": [], - "name": "new name", - "throttle": null, -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74", - "notifyWhen": "onActionGroupChange", - "params": { - "aggType": "avg", - }, - "consumer": "alerts", - "alertTypeId": "test.alert.type", - "schedule": { - "interval": "1m" - }, - "actions": [], - "tags": [], - "name": "new name", - "enabled": true, - "throttle": null, - "apiKeyOwner": "elastic", - "createdBy": "elastic", - "updatedBy": "elastic", - "muteAll": false, - "mutedInstanceIds": [], - "updatedAt": "2021-02-10T05:37:19.086Z", - "createdAt": "2021-02-10T05:37:19.086Z", - "scheduledTaskId": "0b092d90-6b62-11eb-9e0d-85d233e3ee35", - "executionStatus": { - "lastExecutionDate": "2021-02-10T17:55:14.262Z", - "status": "ok" - } -} --------------------------------------------------- diff --git a/docs/api/alerting/list_rule_types.asciidoc b/docs/api/alerting/list_rule_types.asciidoc deleted file mode 100644 index e7a7c1ad14063..0000000000000 --- a/docs/api/alerting/list_rule_types.asciidoc +++ /dev/null @@ -1,205 +0,0 @@ -[[list-rule-types-api]] -== Get rule types API -++++ -Get rule types -++++ - -Retrieve a list of rule types that the user is authorized to access. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - - -[[list-rule-types-api-request]] -=== {api-request-title} - -`GET :/api/alerting/rule_types` - -`GET :/s//api/alerting/rule_types` - -=== {api-prereq-title} - -If you have `read` privileges for one or more {kib} features, the API response -contains information about the appropriate rule types. For example, there are -rule types associated with the *Management* > *Stack Rules* feature, -*Analytics* > *Discover* and *{ml-app}* features, *{observability}*, and -*Security* features. To get rule types associated with the -*{stack-monitor-app}* feature, use the `monitoring_user` built-in role. - -For more details, refer to <>. - -=== {api-description-title} - -Each rule type includes a list of authorized consumer features. For each feature, -users are authorized to perform either `read` or `all` operations on rules of -that type. This enables you to determine which rule types you can read, create, -or modify. If you want to create or edit a rule in {kib}, some rule types are -limited to specific features and apps. - -[[list-rule-types-api-params]] -=== {api-path-parms-title} - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[[list-rule-types-response]] -=== {api-response-body-title} - -Each rule type has the following properties in the API response: - -`action_groups`:: -(array of objects) An explicit list of groups for which the rule type can -schedule actions, each with the action group's unique ID and human readable name. -Rule `actions` validation uses this configuration to ensure that groups are -valid. - -`action_variables`:: -(object) A list of action variables that the rule type makes available via -context and state in action parameter templates, and a short human readable -description. When you create a rule in {kib}, it uses this information to prompt -you for these variables in action parameter editors. - -`alerts`:: -(object) Details about alerts as data documents for this rule type, including any custom mappings. - -`authorized_consumers`:: -(object) The list of the plugins IDs that have access to the rule type. - -`category`:: -(string) The rule category, which is used by features such as category-specific maintenance windows. - -`default_action_group_id`:: -(string) The default ID for the rule type group. - -`does_set_recovery_context`:: -(boolean) Indicates whether the rule passes context variables to its recovery -action. - -`enabled_in_license`:: -(boolean) Indicates whether the rule type is enabled or disabled based on the -subscription. - -`has_alerts_mappings`:: -(boolean) Indicates whether the rule type has custom mappings for the alert data. - -// `has_fields_for_a_a_d`:: TBD - -`id`:: -(string) The unique identifier for the rule type. - -`is_exportable`:: -(boolean) Indicates whether the rule type is exportable in *{stack-manage-app}* -> *Saved Objects*. - -`minimum_license_required`:: -(string) The {subscriptions}[subscriptions] required to use the rule type. - -`name`:: -(string) The descriptive name of the rule type. - -`producer`:: -(string) An identifier for the application that produces this rule type. - -`recovery_action_group`:: -(object) An action group to use when an alert goes from an active state to an -inactive one. - -[[list-rule-types-api-codes]] -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[[list-rule-types-api-example]] -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -GET api/alerting/rule_types --------------------------------------------------- -// KIBANA - -For example, if you have `read` privileges for the {observability} {logs-app}, -the API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id":"logs.alert.document.count", - "name":"Log threshold", - "category": "observability", - "producer":"logs", - "alerts": { - "context": "observability.logs", - "mappings": { - "fieldMap": { - "kibana.alert.evaluation.threshold": { - "type": "scaled_float", - "scaling_factor": 100, - "required": false - }, - "kibana.alert.evaluation.value": { - "type": "scaled_float", - "scaling_factor": 100, - "required": false - }, - ... - } - }, - "useEcs": true, - "useLegacyAlerts": true - }, - "enabled_in_license":true, - "recovery_action_group":{ - "id":"recovered", - "name":"Recovered" - }, - "action_groups":[ - { - "id":"logs.threshold.fired", - "name":"Fired" - }, - { - "id":"recovered", - "name":"Recovered" - } - ], - "default_action_group_id":"logs.threshold.fired", - "minimum_license_required":"basic", - "is_exportable":true, - "rule_task_timeout":"5m", - "action_variables":{ - "context":[ - { - "name":"timestamp", - "description":"UTC timestamp of when the alert was triggered" - }, - { - "name":"matchingDocuments", - "description":"The number of log entries that matched the conditions provided" - }, - { - "name":"conditions", - "description":"The conditions that log entries needed to fulfill" - }, - ... - ], - "state":[], - "params":[] - }, - "authorized_consumers":{ - "logs":{"read":true,"all":false}, - "alerts":{"read":true,"all":false} - }, - "does_set_recovery_context":true, - "has_alerts_mappings": true, - "has_fields_for_a_a_d": true - }, - .... -] --------------------------------------------------- diff --git a/docs/api/alerting/mute_alert.asciidoc b/docs/api/alerting/mute_alert.asciidoc deleted file mode 100644 index ad6d87848dfee..0000000000000 --- a/docs/api/alerting/mute_alert.asciidoc +++ /dev/null @@ -1,56 +0,0 @@ -[[mute-alert-api]] -== Mute alert API -++++ -Mute alert -++++ - -Mute an alert. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[mute-alert-api-request]] -=== {api-request-title} - -`POST :/api/alerting/rule//alert//_mute` - -`POST :/s//api/alerting/rule//alert//_mute` - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rule. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. If the rule has `actions`, -you must also have `read` privileges for the *Management* > -*{connectors-feature}* feature. For more details, refer to -<>. - -[[mute-alert-api-path-params]] -=== {api-path-parms-title} - -`alert_id`:: - (Required, string) The ID of the alert that you want to mute. The `alert_id` is generated by the rule and might be any arbitrary string. - -`rule_id`:: - (Required, string) The ID of the rule whose alert you want to mute. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[mute-alert-api-response-codes]] -=== {api-response-codes-title} - -`204`:: - Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -POST api/alerting/rule/41893910-6bca-11eb-9e0d-85d233e3ee35/alert/dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2/_mute --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/mute_all_alerts.asciidoc b/docs/api/alerting/mute_all_alerts.asciidoc deleted file mode 100644 index b33d337d473ca..0000000000000 --- a/docs/api/alerting/mute_all_alerts.asciidoc +++ /dev/null @@ -1,58 +0,0 @@ -[[mute-all-alerts-api]] -== Mute all alerts API -++++ -Mute all alerts -++++ - -Mute all alerts. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[mute-all-alerts-api-request]] -=== {api-request-title} - -`POST :/api/alerting/rule//_mute_all` - -`POST :/s//api/alerting/rule//_mute_all` - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rule. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. If the rule has `actions`, -you must also have `read` privileges for the *Management* > -*{connectors-feature}* feature. For more details, refer to -<>. - -=== {api-description-title} - -This API snoozes the notifications for the rule indefinitely. The rule checks -continue to occur but alerts will not trigger any actions. - -[[mute-all-alerts-api-path-params]] -=== {api-path-parms-title} - -`id`:: - (Required, string) The ID of the rule whose alerts you want to mute. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[mute-all-alerts-api-response-codes]] -=== {api-response-codes-title} - -`204`:: - Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -POST api/alerting/rule/41893910-6bca-11eb-9e0d-85d233e3ee35/_mute_all --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/unmute_alert.asciidoc b/docs/api/alerting/unmute_alert.asciidoc deleted file mode 100644 index 81bb641b259f9..0000000000000 --- a/docs/api/alerting/unmute_alert.asciidoc +++ /dev/null @@ -1,56 +0,0 @@ -[[unmute-alert-api]] -== Unmute alert API -++++ -Unmute alert -++++ - -Unmute an alert. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[unmute-alert-api-request]] -=== {api-request-title} - -`POST :/api/alerting/rule//alert//_unmute` - -`POST :/s//api/alerting/rule//alert//_unmute` - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rule. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. If the rule has `actions`, -you must also have `read` privileges for the *Management* > -*{connectors-feature}* feature. For more details, refer to -<>. - -[[unmute-alert-api-path-params]] -=== {api-path-parms-title} - -`alert_id`:: - (Required, string) The ID of the alert that you want to unmute. The `alert_id` is generated by the rule and might be any arbitrary string. - -`rule_id`:: - (Required, string) The ID of the rule whose alert you want to mute. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[unmute-alert-api-response-codes]] -=== {api-response-codes-title} - -`204`:: - Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -POST api/alerting/rule/41893910-6bca-11eb-9e0d-85d233e3ee35/alert/dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2/_unmute --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/unmute_all_alerts.asciidoc b/docs/api/alerting/unmute_all_alerts.asciidoc deleted file mode 100644 index 0594727c71268..0000000000000 --- a/docs/api/alerting/unmute_all_alerts.asciidoc +++ /dev/null @@ -1,58 +0,0 @@ -[[unmute-all-alerts-api]] -== Unmute all alerts API -++++ -Unmute all alerts -++++ - -Unmute all alerts. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[unmute-all-alerts-api-all-request]] -=== {api-request-title} - -`POST :/api/alerting/rule//_unmute_all` - -`POST :/s//api/alerting/rule//_unmute_all` - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rule. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, and *Security* features. If the rule has `actions`, -you must also have `read` privileges for the *Management* > -*{connectors-feature}* feature. For more details, refer to -<>. - -=== {api-description-title} - -If the rule has its notifications snoozed indefinitely, this API cancels the -snooze. - -[[unmute-all-alerts-api-path-params]] -=== {api-path-parms-title} - -`id`:: - (Required, string) The ID of the rule whose alerts you want to unmute. - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[unmute-all-alerts-api-response-codes]] -=== {api-response-codes-title} - -`204`:: - Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -POST api/alerting/rule/41893910-6bca-11eb-9e0d-85d233e3ee35/_unmute_all --------------------------------------------------- -// KIBANA diff --git a/docs/api/alerting/update_rule.asciidoc b/docs/api/alerting/update_rule.asciidoc deleted file mode 100644 index 124adc79582fe..0000000000000 --- a/docs/api/alerting/update_rule.asciidoc +++ /dev/null @@ -1,197 +0,0 @@ -[[update-rule-api]] -== Update rule API -++++ -Update rule -++++ - -Update the attributes for an existing rule. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[open API specification]. -==== - -[[update-rule-api-request]] -=== {api-request-title} - -`PUT :/api/alerting/rule/` - -`PUT :/s//api/alerting/rule/` - -=== {api-prereq-title} - -You must have `all` privileges for the appropriate {kib} features, depending on -the `consumer` and `rule_type_id` of the rule you're updating. For example, the -*Management* > *Stack Rules* feature, *Analytics* > *Discover* and *{ml-app}* -features, *{observability}*, or *Security* features. If the rule has -`actions`, you must also have `read` privileges for the *Management* > -*{connectors-feature}* feature. For more details, refer to -<>. - -[[update-rule-api-path-params]] -=== {api-path-parms-title} - -`id`:: -(Required, string) The ID of the rule that you want to update. - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL, the default space is used. - -[role="child_attributes"] -[[update-rule-api-request-body]] -=== {api-request-body-title} - -`actions`:: -(Optional, object array) An array of action objects. The default value is an -empty array (`[]`). -+ -.Properties of the action objects: -[%collapsible%open] -===== -`group`::: -(Required, string) Grouping actions is recommended for escalations for different -types of alerts. If you don't need this, set the value to `default`. - -`id`::: -(Required, string) The identifier of the action. - -`params`::: -(Required, object) The map to the `params` that the -<> will receive. The `params` are handled as -Mustache templates and passed a default set of context. -===== - -`name`:: -(Required, string) A name to reference and search. - -`notify_when`:: -(Required, string) The condition for throttling the notification: -`onActionGroupChange`, `onActiveAlert`, or `onThrottleInterval`. - -`params`:: -(Required, object) The parameters to pass to the rule type executor `params` -value. This will also validate against the rule type params validator, if defined. - -`schedule`:: -(Required, object) When to run this rule. Use one of the available schedule formats. -+ -.Schedule formats -[%collapsible%open] -===== -A schedule uses a `key: value` format. {kib} currently supports the -_interval format_, which specifies the interval in seconds, minutes, hours, or -days at which to run the rule. For example: `{ "interval": "10s" }`, -`{ "interval": "5m" }`, `{ "interval": "1h" }`, or `{ "interval": "1d" }`. - -===== - -`tags`:: -(Optional, string array) A list of keywords to reference and search. The default -value is an empty array (`[]`). - -`throttle`:: -(Optional, string) How often this rule should fire the same actions. This will -prevent the rule from sending out the same notification over and over. For -example, if a rule with a `schedule` of 1 minute stays in a triggered state for -90 minutes, setting a `throttle` of `10m` or `1h` will prevent it from sending -90 notifications during this period. The default value is `null`. - -[[update-rule-api-response-codes]] -=== {api-response-codes-title} - -`200`:: -Indicates a successful call. - -[[update-rule-api-example]] -=== {api-examples-title} - -Update an index threshold rule with ID `ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74`: - -[source,sh] --------------------------------------------------- -PUT api/alerting/rule/ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 -{ - "notify_when": "onActionGroupChange", - "params": { - "index":[".test-index"], - "timeField":"@timestamp", - "groupBy":"top", - "aggType":"avg", - "timeWindowSize":5, - "timeWindowUnit":"m", - "thresholdComparator":">", - "threshold":[1000], - "aggField":"sheet.version", - "termField":"name.keyword", - "termSize":6 - }, - "schedule": { - "interval": "1m" - }, - "actions": [], - "tags": [], - "name": "new name", - "throttle": null -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74", - "consumer": "alerts", - "tags": [], - "name": "new name", - "enabled": true, - "throttle": null, - "schedule": { - "interval": "1m" - }, - "params": { - "index": [".updated-index"], - "timeField": "@timestamp", - "groupBy": "top", - "aggType": "avg", - "timeWindowSize": 5, - "timeWindowUnit": "m", - "thresholdComparator": ">", - "threshold": [1000], - "aggField": "sheet.version", - "termField": "name.keyword", - "termSize": 6 - }, - "api_key_owner": "elastic", - "created_by": "elastic", - "updated_by": "elastic", - "rule_type_id": ".index-threshold", - "scheduled_task_id": "4c5eda00-e74f-11ec-b72f-5b18752ff9ea", - "created_at": "2022-12-12T22:43:20.578Z", - "updated_at": "2022-12-12T22:44:21.783Z", - "notify_when": "onActionGroupChange", - "mute_all": false, - "muted_alert_ids": [], - "execution_status": { - "status": "ok", - "last_execution_date": "2022-12-12T22:43:21.723Z", - "last_duration": 125 - }, - "actions":[], - "last_run":{ - "alerts_count": { - "new": 0, - "ignored": 0, - "recovered": 0, - "active": 0 - }, - "outcome_msg" :null, - "warning": null, - "outcome": "succeeded" - }, - "next_run": "2022-12-12T22:44:21.653Z" -} --------------------------------------------------- diff --git a/docs/api/cases.asciidoc b/docs/api/cases.asciidoc index 4caef82f3207b..1798a44ac825e 100644 --- a/docs/api/cases.asciidoc +++ b/docs/api/cases.asciidoc @@ -1,57 +1,4 @@ [[cases-api]] == Cases APIs -You can create, manage, configure, and send cases to external systems with -these APIs: - -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> - -//ADD -include::cases/cases-api-add-comment.asciidoc[leveloffset=+1] -//CREATE -include::cases/cases-api-create.asciidoc[leveloffset=+1] -//DELETE -include::cases/cases-api-delete-cases.asciidoc[leveloffset=+1] -include::cases/cases-api-delete-comments.asciidoc[leveloffset=+1] -//FIND -include::cases/cases-api-find-case-activity.asciidoc[leveloffset=+1] -include::cases/cases-api-find-cases.asciidoc[leveloffset=+1] -include::cases/cases-api-find-connectors.asciidoc[leveloffset=+1] -//GET -include::cases/cases-api-get-alerts.asciidoc[leveloffset=+1] -include::cases/cases-api-get-case-activity.asciidoc[leveloffset=+1] -include::cases/cases-api-get-case.asciidoc[leveloffset=+1] -include::cases/cases-api-get-status.asciidoc[leveloffset=+1] -include::cases/cases-api-get-cases-by-alert.asciidoc[leveloffset=+1] -include::cases/cases-api-get-comments.asciidoc[leveloffset=+1] -include::cases/cases-api-get-configuration.asciidoc[leveloffset=+1] -include::cases/cases-api-get-reporters.asciidoc[leveloffset=+1] -include::cases/cases-api-get-tags.asciidoc[leveloffset=+1] -//PUSH -include::cases/cases-api-push.asciidoc[leveloffset=+1] -//SET -include::cases/cases-api-set-configuration.asciidoc[leveloffset=+1] -//UPDATE -include::cases/cases-api-update.asciidoc[leveloffset=+1] -include::cases/cases-api-update-comment.asciidoc[leveloffset=+1] -include::cases/cases-api-update-configuration.asciidoc[leveloffset=+1] +For the latest details, refer to {api-kibana}/group/endpoint-cases[case APIs]. diff --git a/docs/api/cases/cases-api-add-comment.asciidoc b/docs/api/cases/cases-api-add-comment.asciidoc deleted file mode 100644 index 28b8959d5a017..0000000000000 --- a/docs/api/cases/cases-api-add-comment.asciidoc +++ /dev/null @@ -1,182 +0,0 @@ -[[cases-api-add-comment]] -== Add comment to case API -++++ -Add comment -++++ - -Adds a comment or alert to a case. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`POST :/api/cases//comments` - -`POST :/s//api/cases//comments` - -=== {api-prereq-title} - -You must have `all` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the case you're updating. - -=== {api-description-title} - -NOTE: Each case can have a maximum of 1,000 alerts. - -=== {api-path-parms-title} - -``:: -(Required,string) The identifier for the case. To retrieve case IDs, use -<>. - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -[role="child_attributes"] -=== {api-request-body-title} - -`alertId`:: -(Required*, string or array of strings) The alert identifiers. It is required -only when `type` is `alert`. You can use an array of strings to add multiple -alerts to a case, provided that they all relate to the same rule; `index` must -also be an array with the same length or number of elements. Adding multiple -alerts in this manner is recommended rather than calling the API multiple times. -preview:[] - -`comment`:: -(Required*, string) The new comment. It is required only when `type` is `user`. - -`index`:: -(Required*, string or array of strings) The alert indices. It is required only -when `type` is `alert`. If you are adding multiple alerts to a case, use an array -of strings; the position of each index name in the array must match the position -of the corresponding alert identifier in the `alertId` array. preview:[] - -`owner`:: -(Required, string) The application that owns the case. Valid values are: -`cases`, `observability`, or `securitySolution`. - -`rule`:: -(Required*, object) The rule that is associated with the alerts. It is required -only when `type` is `alert`. preview:[] -+ -.Properties of `rule` -[%collapsible%open] -==== -`id`:: -(Required, string) The rule identifier. preview:[] - -`name`:: -(Required, string) The rule name. preview:[] - -==== - -`type`:: -(Required, string) The comment type, which must be `user` or `alert`. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Add a comment to case ID `293f1bc0-74f6-11ea-b83a-553aecdb28b6`: - -[source,sh] --------------------------------------------------- -POST api/cases/293f1bc0-74f6-11ea-b83a-553aecdb28b6/comments -{ - "type": "user", - "comment": "A new comment.", - "owner": "cases" -} --------------------------------------------------- -// KIBANA - -The API returns details about the case and its comments. For example: - -[source,json] --------------------------------------------------- -{ - "comments":[ - { - "id": "8af6ac20-74f6-11ea-b83a-553aecdb28b6", - "version": "WzIwNDMxLDFd", - "type": "user", - "owner": "cases", - "comment": "A new comment.", - "created_at": "2022-03-24T00:49:47.716Z", - "created_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "pushed_at": null, - "pushed_by": null, - "updated_at": null, - "updated_by": null - } - ], - "totalAlerts": 0, - "id": "293f1bc0-74f6-11ea-b83a-553aecdb28b6", - "version": "WzIzMzgsMV0=", - "totalComment": 1, - "title": "Case title 1", - "tags": ["tag 1"], - "description": "A case description.", - "settings": { - "syncAlerts": false - }, - "owner": "cases", - "duration": null, - "severity": "low", - "closed_at": null, - "closed_by": null, - "created_at": "2022-03-24T00:37:03.906Z", - "created_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "status": "open", - "updated_at": "2022-03-24T00:49:47.716Z", - "updated_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "connector": { - "id": "none", - "name": "none", - "type": ".none", - "fields": null - }, - "external_service": null -} --------------------------------------------------- - -Add an alert to the case: - -[source,sh] --------------------------------------------------- -POST api/cases/293f1bc0-74f6-11ea-b83a-553aecdb28b6/comments -{ - "alertId": "6b24c4dc44bc720cfc92797f3d61fff952f2b2627db1fb4f8cc49f4530c4ff42", - "index": ".internal.alerts-security.alerts-default-000001", - "type": "alert", - "owner": "cases", - "rule": { - "id":"94d80550-aaf4-11ec-985f-97e55adae8b9", - "name":"security_rule" - } -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/cases/cases-api-create.asciidoc b/docs/api/cases/cases-api-create.asciidoc deleted file mode 100644 index 2145acd360532..0000000000000 --- a/docs/api/cases/cases-api-create.asciidoc +++ /dev/null @@ -1,259 +0,0 @@ -[[cases-api-create]] -== Create case API -++++ -Create case -++++ - -Creates a case. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`POST :/api/cases` - -`POST :/s//api/cases` - -=== {api-prereq-title} - -You must have `all` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the case you're creating. - -=== {api-path-parms-title} - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -[role="child_attributes"] -=== {api-request-body-title} - -`assignees`:: -(Optional, array of objects) Array containing users that are assigned to the case. -+ -.Properties of assignee objects -[%collapsible%open] -===== -`uid`:: -(Required, string) A unique identifier for the user profile. These identifiers -can be found by using the -{ref}/security-api-suggest-user-profile.html[suggest user profile API]. -===== - -`connector`:: -(Required, object) An object that contains the connector configuration. -+ -.Properties of `connector` -[%collapsible%open] -==== -`fields`:: -(Required, object) An object containing the connector fields. To create a case -without a connector, specify `null`. If you want to omit any individual field, -specify `null` as its value. -+ -.Properties of `fields` -[%collapsible%open] -===== -For {ibm-r} connectors, specify: - -`issueTypes`::: -(Required, array of strings) The type of the incident. - -`severityCode`::: -(Required, string) The severity code of the incident. - -For {jira} connectors, specify: - -`issueType`::: -(Required, string) The type of the issue. - -`parent`::: -(Required, string) The key of the parent issue, when the issue type is `Sub-task`. - -`priority`::: -(Required, string) The priority of the issue. - -For {sn-itsm} connectors, specify: - -`category`::: -(Required, string) The category of the incident. - -`impact`::: -(Required, string) The effect an incident had on business. - -`severity`::: -(Required, string) The severity of the incident. - -`subcategory`::: -(Required, string) The subcategory of the incident. - -`urgency`::: -(Required, string) The extent to which the incident resolution can be delayed. - -For {sn-sir} connectors, specify: - -`category`::: -(Required, string) The category of the incident. - -`destIp`::: -(Required, string) A comma separated list of destination IPs. - -`malwareHash`::: -(Required, string) A comma separated list of malware hashes. - -`malwareUrl`::: -(Required, string) A comma separated list of malware URLs. - -`priority`::: -(Required, string) The priority of the incident. - -`sourceIp`::: -(Required, string) A comma separated list of source IPs. - -`subcategory`::: -(Required, string) The subcategory of the incident. - -For {swimlane} connectors, specify: - -`caseId`::: -(Required, string) The case ID. - -For {webhook-cm} connectors, specify `null`. -===== - -`id`:: -(Required, string) The identifier for the connector. To create a case without a -connector, use `none`. To retrieve connector IDs, use -<>. - -`name`:: -(Required, string) The name of the connector. To create a case without a -connector, use `none`. - -`type`:: -(Required, string) The type of the connector. Valid values are: `.cases-webhook`, -`.jira`, `.none`, `.resilient`,`.servicenow`, `.servicenow-sir`, and `.swimlane`. -To create a case without a connector, use `.none`. - -==== - -`description`:: -(Required, string) The description for the case. - -`owner`:: -(Required, string) The application that owns the case. Valid values are: -`cases`, `observability`, or `securitySolution`. This value affects -whether the case is visible in the {stack-manage-app}, {observability}, or -{security-app}. - -`settings`:: -(Required, object) -An object that contains the case settings. -+ -.Properties of `settings` -[%collapsible%open] -==== -`syncAlerts`:: -(Required, boolean) Turns alert syncing on or off. -==== - -`severity`:: -(Optional,string) The severity of the case. Valid values are: `critical`, `high`, -`low`, and `medium`. - -`tags`:: -(Required, string array) The words and phrases that help -categorize cases. It can be an empty array. - -`title`:: -(Required, string) A title for the case. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -POST api/cases -{ - "description": "A case description.", - "title": "Case title 1", - "tags": [ "tag 1" ], - "connector": { - "id": "131d4448-abe0-4789-939d-8ef60680b498", - "name": "My connector", - "type": ".jira", - "fields": { - "issueType": "10006", - "priority": "High", - "parent": null - } - }, - "settings": { - "syncAlerts": true - }, - "owner": "cases" -} --------------------------------------------------- -// KIBANA - -The API returns a JSON object that includes the user who created the case and -the case identifier, version, and creation time. For example: - -[source,json] --------------------------------------------------- -{ - "id": "66b9aa00-94fa-11ea-9f74-e7e108796192", <1> - "version": "WzUzMiwxXQ==", - "comments": [], - "totalComment": 0, - "totalAlerts": 0, - "title": "Case title 1", - "tags": [ "tag 1" ], - "assignees": [], - "settings": { - "syncAlerts": true - }, - "owner": "cases", - "description": "A case description.", - "duration": null, - "severity": "low", - "closed_at": null, - "closed_by": null, - "created_at": "2022-05-13T09:16:17.416Z", - "created_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "status": "open", - "updated_at": null, - "updated_by": null, - "connector": { - "id": "131d4448-abe0-4789-939d-8ef60680b498", <2> - "name": "My connector", - "type": ".jira", - "fields": { - "issueType": "10006", - "parent": null, - "priority": "High" - } - }, - "external_service": null <3> -} --------------------------------------------------- - -<1> The case identifier is also its saved object ID (`savedObjectId`), which is -used when pushing cases to external systems. -<2> The default connector used to push cases to external services. -<3> The `external_service` object stores information about the incident after it -is pushed to an external incident management system. \ No newline at end of file diff --git a/docs/api/cases/cases-api-delete-cases.asciidoc b/docs/api/cases/cases-api-delete-cases.asciidoc deleted file mode 100644 index abf518d212095..0000000000000 --- a/docs/api/cases/cases-api-delete-cases.asciidoc +++ /dev/null @@ -1,58 +0,0 @@ -[[cases-api-delete-cases]] -== Delete cases API -++++ -Delete cases -++++ - -Deletes one or more cases. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`DELETE :/api/cases?ids=["",""]` - -`DELETE :/s//api/cases?ids=["",""]` - -=== {api-prereq-title} - -You must have `read` or `all` privileges and the `delete` sub-feature privilege -for the *Cases* feature in the *Management*, *{observability}*, or *Security* -section of the <>, depending -on the `owner` of the cases you're deleting. - -=== {api-path-parms-title} - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-query-parms-title} - -`ids`:: -(Required, string) The cases that you want to remove. To retrieve case IDs, use -<>. -+ -NOTE: All non-ASCII characters must be URL encoded. - -=== {api-response-codes-title} - -`204`:: - Indicates a successful call. - -=== {api-examples-title} - -Delete cases with these IDs: - -* `2e3a54f0-6754-11ea-a1c2-e3a8bc9f7aca` -* `40b9a450-66a0-11ea-be1b-2bd3fef48984` - -[source,console] --------------------------------------------------- -DELETE api/cases?ids=%5B%222e3a54f0-6754-11ea-a1c2-e3a8bc9f7aca%22%2C%2240b9a450-66a0-11ea-be1b-2bd3fef48984%22%5D --------------------------------------------------- -// KIBANA diff --git a/docs/api/cases/cases-api-delete-comments.asciidoc b/docs/api/cases/cases-api-delete-comments.asciidoc deleted file mode 100644 index dc8fe0e120574..0000000000000 --- a/docs/api/cases/cases-api-delete-comments.asciidoc +++ /dev/null @@ -1,69 +0,0 @@ -[[cases-api-delete-comments]] -== Delete comments from case API -++++ -Delete comments -++++ - -Deletes one or all comments and alerts from a case. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`DELETE :/api/cases//comments` - -`DELETE :/api/cases//comments/` - -`DELETE :/s//api/cases//comments` - -`DELETE :/s//api/cases//comments/` - -=== {api-prereq-title} - -You must have `read` or `all` privileges and the `delete` sub-feature privilege -for the *Cases* feature in the *Management*, *{observability}*, or *Security* -section of the <>, depending -on the `owner` of the cases you're updating. - -=== {api-path-parms-title} - -``:: -(Required, string) The identifier for the case. To retrieve case IDs, use -<>. - -``:: -(Optional, string) The identifier for the comment. To retrieve comment IDs, use -<> or <>. If it is not specified, all -comments are deleted. - -:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-response-codes-title} - -`204`:: - Indicates a successful call. - -=== {api-examples-title} - -Delete all comments from case ID `9c235210-6834-11ea-a78c-6ffb38a34414`: - -[source,console] --------------------------------------------------- -DELETE api/cases/a18b38a0-71b0-11ea-a0b2-c51ea50a58e2/comments --------------------------------------------------- -// KIBANA - -Delete comment ID `71ec1870-725b-11ea-a0b2-c51ea50a58e2` from case ID -`a18b38a0-71b0-11ea-a0b2-c51ea50a58e2`: - -[source,sh] --------------------------------------------------- -DELETE api/cases/a18b38a0-71b0-11ea-a0b2-c51ea50a58e2/comments/71ec1870-725b-11ea-a0b2-c51ea50a58e2 --------------------------------------------------- -// KIBANA diff --git a/docs/api/cases/cases-api-find-case-activity.asciidoc b/docs/api/cases/cases-api-find-case-activity.asciidoc deleted file mode 100644 index d15e2a8bea9d5..0000000000000 --- a/docs/api/cases/cases-api-find-case-activity.asciidoc +++ /dev/null @@ -1,20 +0,0 @@ -[[cases-api-find-case-activity]] -== Find case activity API -++++ -Find case activity -++++ - -Finds user activity for a case. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases//user_actions/_find` - -`GET :/s//api/cases//user_actions/_find` - diff --git a/docs/api/cases/cases-api-find-cases.asciidoc b/docs/api/cases/cases-api-find-cases.asciidoc deleted file mode 100644 index 4a791a8ddb9d3..0000000000000 --- a/docs/api/cases/cases-api-find-cases.asciidoc +++ /dev/null @@ -1,171 +0,0 @@ -[[cases-api-find-cases]] -== Find cases API -++++ -Find cases -++++ - -Retrieves a paginated subset of cases. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases/_find` - -`GET :/s//api/cases/_find` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the cases you're seeking. - -=== {api-path-parms-title} - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-query-parms-title} - -`assignees`:: -(Optional, string or array of strings) Filters the returned cases by assignees. -Valid values are `none` or unique identifiers for the user profiles. These -identifiers can be found by using the -{ref}/security-api-suggest-user-profile.html[suggest user profile API]. - -`defaultSearchOperator`:: -(Optional, string) The default operator to use for the `simple_query_string`. -Defaults to `OR`. - -`from`:: -(Optional, string) Returns only cases that were created after a specific date. The date must be specified as a <> data range or date match expression. preview:[] - -`owner`:: -(Optional, string or array of strings) A filter to limit the retrieved cases to -a specific set of applications. Valid values are: `cases`, `observability`, -and `securitySolution`. If this parameter is omitted, the response contains all -cases that the user has access to read. - -`page`:: -(Optional, integer) The page number to return. Defaults to `1`. - -`perPage`:: -(Optional, integer) The number of rules to return per page. Defaults to `20`. - -`reporters`:: -(Optional, string or array of strings) Filters the returned cases by the -reporter's `username`. - -`search`:: -(Optional, string) An {es} -{ref}/query-dsl-simple-query-string-query.html[simple_query_string] query that -filters the objects in the response. - -`searchFields`:: -(Optional, string or array of strings) The fields to perform the -`simple_query_string` parsed query against. - -`severity`:: -(Optional,string) The severity of the case. Valid values are: `critical`, `high`, -`low`, and `medium`. - -`sortField`:: -(Optional, string) Determines which field is used to sort the results, -`createdAt` or `updatedAt`. Defaults to `createdAt`. -+ -NOTE: Even though the JSON case object uses `created_at` and `updated_at` -fields, you must use `createdAt` and `updatedAt` fields in the URL -query. - -`sortOrder`:: -(Optional, string) Determines the sort order, which can be `desc` or `asc`. -Defaults to `desc`. - -`status`:: -(Optional, string) Filters the returned cases by state, which can be `open`, -`in-progress`, or `closed`. - -`tags`:: -(Optional, string or array of strings) Filters the returned cases by tags. - -`to`:: -(Optional, string) Returns only cases that were created before a specific date. The date must be specified as a <> data range or date match expression. preview:[] - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Retrieve the first five cases with the `tag-1` tag, in ascending order by -last update time: - -[source,sh] --------------------------------------------------- -GET api/cases/_find?page=1&perPage=5&sortField=updatedAt&sortOrder=asc&tags=tag-1 --------------------------------------------------- -// KIBANA - -The API returns a JSON object listing the retrieved cases. For example: - -[source,json] --------------------------------------------------- -{ - "page": 1, - "per_page": 5, - "total": 1, - "cases": [ - { - "id": "abed3a70-71bd-11ea-a0b2-c51ea50a58e2", - "version": "WzExMCwxXQ==", - "comments": [], - "totalComment": 1, - "totalAlerts": 0, - "title": "Case title", - "tags": [ "tag-1" ], - "description": "Case description", - "settings": { "syncAlerts": true }, - "owner": "securitySolution", - "duration": null, <1> - "severity": "low", - "closed_at": null, - "closed_by": null, - "created_at": "2022-05-12T00:16:36.371Z", - "created_by": { - "email": "jdoe@email.com", - "full_name": "Jane Doe", - "username": "jdoe" - }, - "status": "open", - "updated_at": "2022-05-12T00:27:58.162Z", - "updated_by": { - "email": "jsmith@email.com", - "full_name": "Joe Smith", - "username": "jsmith" - }, - "assignees": [], - "connector": { - "id": "none", - "name": "none", - "type": ".none", - "fields": null - }, - "external_service": null - } - ], - "count_open_cases": 1, - "count_in_progress_cases":0, - "count_closed_cases": 0 -} --------------------------------------------------- -<1> Duration represents the elapsed time from the creation of the case to its -closure (in seconds). If the case has not been closed, the duration is set to -`null`. If the case was closed after less than half a second, the duration is -rounded down to zero. \ No newline at end of file diff --git a/docs/api/cases/cases-api-find-connectors.asciidoc b/docs/api/cases/cases-api-find-connectors.asciidoc deleted file mode 100644 index 7dac2f6f2e823..0000000000000 --- a/docs/api/cases/cases-api-find-connectors.asciidoc +++ /dev/null @@ -1,67 +0,0 @@ -[[cases-api-find-connectors]] -== Find connectors API -++++ -Find connectors -++++ - -Retrieves information about <>. - -In particular, only the connectors that are supported for use in cases are -returned. Refer to the list of supported external incident management systems in -<>. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases/configure/connectors/_find` - -`GET :/s//api/cases/configure/connectors/_find` - -=== {api-prereq-title} - -You must have `read` privileges for the *{connectors-feature}* feature in the -*Management* section of the -<>. - -=== {api-path-parms-title} - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -GET api/cases/configure/connectors/_find --------------------------------------------------- -// KIBANA - -The API returns a JSON object describing the connectors and their settings: - -[source,json] --------------------------------------------------- -[{ - "id":"61787f53-4eee-4741-8df6-8fe84fa616f7", - "actionTypeId": ".jira", - "name":"my-Jira", - "isMissingSecrets":false, - "config": { - "apiUrl":"https://elastic.atlassian.net/", - "projectKey":"ES" - }, - "isPreconfigured":false, - "isDeprecated": false, - "referencedByCount":0 -}] --------------------------------------------------- \ No newline at end of file diff --git a/docs/api/cases/cases-api-get-alerts.asciidoc b/docs/api/cases/cases-api-get-alerts.asciidoc deleted file mode 100644 index fea5b5f9a7354..0000000000000 --- a/docs/api/cases/cases-api-get-alerts.asciidoc +++ /dev/null @@ -1,66 +0,0 @@ -[[cases-api-get-alerts]] -== Get alerts attached to case API -++++ -Get alerts -++++ - -preview::[] - -Gets all alerts attached to a case. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases//alerts` - -`GET :/s//api/cases//alerts` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the cases you're seeking. - -=== {api-path-parms-title} - -``:: -(Required, string) The identifier for the case. To retrieve case IDs, use -<>. - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Return all alerts attached to case `a8b26350-0c55-11ed-918a-2d2edf3e58bc`: - -[source,sh] --------------------------------------------------- -GET api/cases/a8b26350-0c55-11ed-918a-2d2edf3e58bc/alerts --------------------------------------------------- -// KIBANA - -The API returns a JSON array listing the alerts. For example: - -[source,json] --------------------------------------------------- -[ - { - "id": "f6a7d0c3-d52d-432c-b2e6-447cd7fce04d", - "index": ".alerts-observability.logs.alerts-default", - "attached_at": "2022-07-25T20:09:40.963Z" - } -] --------------------------------------------------- diff --git a/docs/api/cases/cases-api-get-case-activity.asciidoc b/docs/api/cases/cases-api-get-case-activity.asciidoc deleted file mode 100644 index 2baa19ebf6985..0000000000000 --- a/docs/api/cases/cases-api-get-case-activity.asciidoc +++ /dev/null @@ -1,111 +0,0 @@ -[[cases-api-get-case-activity]] -== Get case activity API -++++ -Get case activity -++++ - -Returns all user activity for a case. - -deprecated::[8.1.0,Use <> instead.] - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases//user_actions` - -`GET :/s//api/cases//user_actions` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the case you're seeking. - -=== {api-path-parms-title} - -``:: -(Required, string) An identifier for the case to retrieve. Use -<> to retrieve case IDs. - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Gets all activity for case ID `22df07d0-03b1-11ed-920c-974bfa104448`: - -[source,sh] --------------------------------------------------- -GET api/cases/22df07d0-03b1-11ed-920c-974bfa104448/user_actions --------------------------------------------------- -// KIBANA - -The API returns a JSON object with all the activity for the case. For example: - -[source,json] --------------------------------------------------- -[ - { - "created_at":"2022-07-14T20:11:24.947Z", - "created_by":{ - "username":"elastic", - "email":null, - "full_name":null - }, - "owner":"cases", - "action":"create", - "payload":{ - "description":"A case description", - "title":"Case title 1", - "tags":["tag 1"], - "connector":{ - "name":"none", - "type":".none", - "fields":null, - "id":"none" - }, - "settings":{"syncAlerts":true}, - "owner":"cases", - "severity":"low", - "status":"open" - }, - "type":"create_case", - "action_id":"22fd3e30-03b1-11ed-920c-974bfa104448", - "case_id":"22df07d0-03b1-11ed-920c-974bfa104448", - "comment_id":null - }, - { - "created_at":"2022-07-14T20:12:53.354Z", - "created_by":{ - "username":"elastic", - "email":null, - "full_name":null - }, - "owner":"cases", - "action":"create", - "payload":{ - "comment":{ - "type":"user", - "owner":"cases", - "comment":"A new comment" - } - }, - "type":"comment", - "action_id":"57af14a0-03b1-11ed-920c-974bfa104448", - "case_id":"22df07d0-03b1-11ed-920c-974bfa104448", - "comment_id":"578608d0-03b1-11ed-920c-974bfa104448" - } -] --------------------------------------------------- \ No newline at end of file diff --git a/docs/api/cases/cases-api-get-case.asciidoc b/docs/api/cases/cases-api-get-case.asciidoc deleted file mode 100644 index fe2b4c54b85e5..0000000000000 --- a/docs/api/cases/cases-api-get-case.asciidoc +++ /dev/null @@ -1,103 +0,0 @@ -[[cases-api-get-case]] -== Get case API -++++ -Get case -++++ - -Returns information about a case. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases/` - -`GET :/s//api/cases/` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the case you're seeking. - -=== {api-path-parms-title} - -``:: -(Required, string) An identifier for the case to retrieve. Use -<> to retrieve case IDs. - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-query-parms-title} - -`includeComments`:: -(Optional, boolean) Determines whether case comments are returned. Defaults to -`true`. deprecated:[8.1.0, "The `includeComments` query parameter is deprecated and will be removed in a future release."] - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Returns case ID `31cdada0-02c1-11ed-85f2-4f7c222ca2fa`: - -[source,sh] --------------------------------------------------- -GET api/cases/31cdada0-02c1-11ed-85f2-4f7c222ca2fa --------------------------------------------------- -// KIBANA - -The API returns a JSON object with the retrieved case. For example: - -[source,json] --------------------------------------------------- -{ - "id":"31cdada0-02c1-11ed-85f2-4f7c222ca2fa", - "version":"WzM2LDFd", - "comments":[{ - "id":"2134c1d0-02c2-11ed-85f2-4f7c222ca2fa", - "version":"WzM3LDFd", - "type":"user", - "owner":"cases", - "comment":"A new comment", - "created_at":"2022-07-13T15:40:32.335Z", - "created_by":{"email":null,"full_name":null,"username":"elastic"}, - "pushed_at":null, - "pushed_by":null, - "updated_at":null, - "updated_by":null - }], - "totalComment":1, - "totalAlerts":0, - "title":"Case title 1", - "tags":["tag 1"], - "settings":{"syncAlerts":true}, - "owner":"cases", - "description":"A case description", - "duration":null, <1> - "severity":"low", - "closed_at":null, - "closed_by":null, - "created_at":"2022-07-13T15:33:50.604Z", - "created_by":{"username":"elastic","email":null,"full_name":null}, - "status":"open", - "updated_at":"2022-07-13T15:40:32.335Z", - "updated_by":{"full_name":null,"email":null,"username":"elastic"}, - "assignees":[{"uid":"u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0"}], - "connector":{"id":"none","name":"none","type":".none","fields":null}, - "external_service":null -} --------------------------------------------------- -<1> Duration represents the elapsed time from the creation of the case to its -closure (in seconds). If the case has not been closed, the duration is set to -`null`. If the case was closed after less than half a second, the duration is -rounded down to zero. \ No newline at end of file diff --git a/docs/api/cases/cases-api-get-cases-by-alert.asciidoc b/docs/api/cases/cases-api-get-cases-by-alert.asciidoc deleted file mode 100644 index 47a0c5973830a..0000000000000 --- a/docs/api/cases/cases-api-get-cases-by-alert.asciidoc +++ /dev/null @@ -1,75 +0,0 @@ -[[cases-api-get-cases-by-alert]] -== Get cases by alert API -++++ -Get cases by alert -++++ - -preview::[] - -Returns the cases associated with a specific alert. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - - -=== {api-request-title} - -`GET :/api/cases/alerts/` - -`GET :/s//api/cases/alerts/` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the cases you're seeking. - -=== {api-path-parms-title} - -``:: -(Required, string) The alert identifier. - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-query-parms-title} - -`owner`:: -(Optional, string or array of strings) A filter to limit the retrieved cases to -a specific set of applications. Valid values are: `cases`, `observability`, -and `securitySolution`. If this parameter is omitted, the response contains all -cases that the user has access to read. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Return cases associated with the alert ID -`09f0c261e39e36351d75995b78bb83673774d1bc2cca9df2d15f0e5c0a99a540`: - -[source,sh] --------------------------------------------------- -GET api/cases/alerts/09f0c261e39e36351d75995b78bb83673774d1bc2cca9df2d15f0e5c0a99a540 --------------------------------------------------- -// KIBANA - -The API returns a JSON array containing the identifier and title of the cases. -For example: - -[source,json] --------------------------------------------------- -[ - { - "id": "06116b80-e1c3-11ec-be9b-9b1838238ee6", - "title":"security_case" - } -] --------------------------------------------------- \ No newline at end of file diff --git a/docs/api/cases/cases-api-get-comments.asciidoc b/docs/api/cases/cases-api-get-comments.asciidoc deleted file mode 100644 index fb0e497f4ebf1..0000000000000 --- a/docs/api/cases/cases-api-get-comments.asciidoc +++ /dev/null @@ -1,86 +0,0 @@ -[[cases-api-get-comments]] -== Get comments API -++++ -Get comments -++++ - -Gets a comment or all comments for a case. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases//comments/` - -`GET :/s//api/cases//comments/` - -`GET :/api/cases//comments` deprecated:[8.1.0] - -`GET :/s//api/cases//comments` deprecated:[8.1.0] - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the cases with the comments you're seeking. - -=== {api-path-parms-title} - -``:: -(Required, string) The identifier for the case. To retrieve case IDs, use -<>. - -``:: -(Optional, string) The identifier for the comment. To retrieve comment IDs, use -<>. -+ -If it is not specified, all comments are retrieved. -deprecated:[8.1.0,The comment identifier will no longer be optional.] - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Retrieves comment ID `8048b460-fe2b-11ec-b15d-779a7c8bbcc3` from case ID -`ecbf8a20-fe2a-11ec-b15d-779a7c8bbcc3`: - -[source,sh] --------------------------------------------------- -GET api/cases/ecbf8a20-fe2a-11ec-b15d-779a7c8bbcc3/comments/8048b460-fe2b-11ec-b15d-779a7c8bbcc3 --------------------------------------------------- -// KIBANA - -The API returns the requested comment JSON object. For example: - -[source,json] --------------------------------------------------- -{ - "id":"8048b460-fe2b-11ec-b15d-779a7c8bbcc3", - "version":"WzIzLDFd", - "type":"user", - "owner":"cases", - "comment":"A new comment", - "created_at":"2022-07-07T19:32:13.104Z", - "created_by":{ - "email":null, - "full_name":null, - "username":"elastic" - }, - "pushed_at":null, - "pushed_by":null, - "updated_at":null, - "updated_by":null -} --------------------------------------------------- \ No newline at end of file diff --git a/docs/api/cases/cases-api-get-configuration.asciidoc b/docs/api/cases/cases-api-get-configuration.asciidoc deleted file mode 100644 index e78eaa634f716..0000000000000 --- a/docs/api/cases/cases-api-get-configuration.asciidoc +++ /dev/null @@ -1,101 +0,0 @@ -[[cases-get-configuration]] -== Get case configuration API -++++ -Get configuration -++++ - -Retrieves external connection details, such as the closure type and -default connector for cases. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases/configure` - -`GET :/s//api/cases/configure` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the case configuration. - -=== {api-path-parms-title} - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-query-parms-title} - -`owner`:: -(Optional, string or array of strings) A filter to limit the retrieved -details to a specific set of applications. Valid values are: `cases`, -`observability`, and `securitySolution`. If this parameter is omitted, the -response contains information for all applications that the user has access to -read. - -=== Response code - -`200`:: - Indicates a successful call. - -=== Example - -[source,sh] --------------------------------------------------- -GET api/cases/configure?owner=cases --------------------------------------------------- -// KIBANA - -The API returns the following type of information: - -[source,json] --------------------------------------------------- -[ - { - "closure_type": "close-by-user", - "owner": "cases", - "created_at": "2022-06-01T17:07:17.767Z", - "created_by": { - "email": "null", - "full_name": "null", - "username": "elastic" - }, - "updated_at": null, - "updated_by": null, - "connector": { - "id": "131d4448-abe0-4789-939d-8ef60680b498", - "name": "my-jira-connector", - "type": ".jira", - "fields": null - }, - "mappings": [ - { - "source": "title", - "target": "summary", - "action_type": "overwrite" - }, - { - "source": "description", - "target": "description", - "action_type": "overwrite" - }, - { - "source": "comments", - "target": "comments", - "action_type": "append" - } - ], - "version": "WzE3NywxXQ==", - "error": null, - "id": "7349772f-421a-4de3-b8bb-2d9b22ccee30" - } -] --------------------------------------------------- diff --git a/docs/api/cases/cases-api-get-reporters.asciidoc b/docs/api/cases/cases-api-get-reporters.asciidoc deleted file mode 100644 index 48f373c65986a..0000000000000 --- a/docs/api/cases/cases-api-get-reporters.asciidoc +++ /dev/null @@ -1,67 +0,0 @@ -[[cases-api-get-reporters]] -== Get reporters API -++++ -Get reporters -++++ - -Returns information about the users who opened cases. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - - -=== {api-request-title} - -`GET :/api/cases/reporters` - -`GET :/s/api/cases/reporters` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the cases. - -=== {api-description-title} - -The API returns information about the users as they existed at the time of the -case creation, including their name, full name, and email address. If any of -those details change thereafter or if a user is deleted, the information -returned by this API is unchanged. - -=== {api-query-parms-title} - -`owner`:: -(Optional, string or array of strings) A filter to limit the retrieved reporters -to a specific set of applications. If this parameter is omitted, the response -will contain all reporters from cases that the user has access to read. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Returns all case reporters: - -[source,sh] --------------------------------------------------- -GET api/cases/reporters --------------------------------------------------- -// KIBANA - -The API returns a JSON object with the retrieved reporters. For example: - -[source,json] --------------------------------------------------- -[ - {"username":"elastic","full_name":null,"email":null}, - {"username":"user1","full_name":"User 1","email":"user1@elastic.co"}, - {"username":"user2","full_name":"User 2","email":"user2@elastic.co"} -] --------------------------------------------------- diff --git a/docs/api/cases/cases-api-get-status.asciidoc b/docs/api/cases/cases-api-get-status.asciidoc deleted file mode 100644 index ce9205febae5a..0000000000000 --- a/docs/api/cases/cases-api-get-status.asciidoc +++ /dev/null @@ -1,66 +0,0 @@ -[[cases-api-get-status]] -== Get case status API -++++ -Get case status -++++ - -Returns the number of cases that are open, closed, and in progress. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -deprecated::[8.1.0] - -=== {api-request-title} - -`GET :/api/cases/status` - -`GET :/s//api/cases/status` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the cases you're seeking. - -=== {api-path-parms-title} - -:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-query-parms-title} - -`owner`:: -(Optional, string or array of strings) A filter to limit the retrieved case -statistics to a specific set of applications. Valid values are: `cases`, -`observability`, and `securitySolution`. If this parameter is omitted, the -response contains all cases that the user has access to read. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -GET api/cases/status --------------------------------------------------- -// KIBANA - -The API returns the following type of information: - -[source,json] --------------------------------------------------- -{ - "count_open_cases": 27, - "count_in_progress_cases": 50, - "count_closed_cases": 1198, -} --------------------------------------------------- diff --git a/docs/api/cases/cases-api-get-tags.asciidoc b/docs/api/cases/cases-api-get-tags.asciidoc deleted file mode 100644 index 993c7d88f538a..0000000000000 --- a/docs/api/cases/cases-api-get-tags.asciidoc +++ /dev/null @@ -1,66 +0,0 @@ -[[cases-api-get-tag]] -== Get tags API -++++ -Get tags -++++ - -Aggregates and returns a list of case tags. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`GET :/api/cases/tags` - -`GET :/s//api/cases/tags` - -=== {api-prereq-title} - -You must have `read` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the cases you're seeking. - -=== {api-path-parms-title} - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-query-parms-title} - -`owner`:: -(Optional, string or array of strings) A filter to limit the retrieved tags to a -specific set of applications. Valid values are: `cases`, `observability`, and -`securitySolution`. If this parameter is omitted, the response contains tags -from all cases that the user has access to read. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -[source,sh] --------------------------------------------------- -GET api/cases/tags --------------------------------------------------- -// KIBANA - -The API returns a JSON object with tags from all the cases that the user has -access to read. For example: - -[source,json] --------------------------------------------------- -[ - "observability", - "security", - "tag 1", - "tag 2" -] --------------------------------------------------- diff --git a/docs/api/cases/cases-api-push.asciidoc b/docs/api/cases/cases-api-push.asciidoc deleted file mode 100644 index e3bf2464d19b7..0000000000000 --- a/docs/api/cases/cases-api-push.asciidoc +++ /dev/null @@ -1,120 +0,0 @@ -[[cases-api-push]] -== Push case API -++++ -Push case -++++ - -Pushes a case to an external service. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`POST :/api/cases//connector//_push` - -`POST :/s//api/cases//connector//_push` - -=== {api-prereq-title} - -You must have `all` privileges for the *{connectors-feature}* feature in the -*Management* section of the -<>. You must also have `all` -privileges for the *Cases* feature in the *Management*, *{observability}*, or -*Security* section of the {kib} feature privileges, depending on the -`owner` of the case you're pushing. - -=== {api-path-parms-title} - -``:: -(Required, string) The identifier for the case. To retrieve case IDs, use -<>. - -``:: -(Required, string) The identifier for the connector. To retrieve connector IDs, -use <>. - -:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Push the case to an external service: - -[source,sh] --------------------------------------------------- -POST api/cases/b917f300-0ed9-11ed-bd18-65557fe66949/connector/09f8c0b0-0eda-11ed-bd18-65557fe66949/_push -{} --------------------------------------------------- -// KIBANA - -The API returns a JSON object representing the pushed case. For example: - -[source,json] --------------------------------------------------- -{ - "id": "b917f300-0ed9-11ed-bd18-65557fe66949", - "version": "WzE3NjgsM10=", - "comments": [], - "totalComment": 0, - "totalAlerts": 0, - "description": "A case description.", - "title": "Case title 1", - "tags": [ - "tag 1" - ], - "settings": { - "syncAlerts": true - }, - "owner": "cases", - "duration": null, - "severity": "low", - "closed_at": null, - "closed_by": null, - "created_at": "2022-07-29T00:59:39.444Z", - "created_by": { - "username": "elastic", - "email": null, - "full_name": null - }, - "status": "open", - "updated_at": "2022-07-29T01:20:58.436Z", - "updated_by": { - "username": "elastic", - "full_name": null, - "email": null - }, - "connector": { - "id": "09f8c0b0-0eda-11ed-bd18-65557fe66949", - "name": "My connector", - "type": ".jira", - "fields": { - "issueType": "10006", - "parent": null, - "priority": "Low" - } - }, - "external_service": { - "pushed_at": "2022-07-29T01:20:58.436Z", - "pushed_by": { - "username": "elastic", - "full_name": null, - "email": null - }, - "connector_name": "My connector", - "external_id": "71926", - "external_title": "ES-554", - "external_url": "https://cases.jira.com", - "connector_id": "09f8c0b0-0eda-11ed-bd18-65557fe66949" - } -} --------------------------------------------------- diff --git a/docs/api/cases/cases-api-set-configuration.asciidoc b/docs/api/cases/cases-api-set-configuration.asciidoc deleted file mode 100644 index 6941dd05427d0..0000000000000 --- a/docs/api/cases/cases-api-set-configuration.asciidoc +++ /dev/null @@ -1,170 +0,0 @@ -[[cases-api-set-configuration]] -== Set case configuration API -++++ -Set configuration -++++ - -Sets external connection details, such as the closure type and -default connector for cases. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`POST :/api/cases/configure` - -`POST :/s//api/cases/configure` - -=== {api-prereq-title} - -You must have `all` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the case configuration. - -=== {api-description-title} - -Connectors are used to interface with external systems. You must create a -connector before you can use it in your cases. Refer to <>. - -If you set a default connector, it is automatically selected when you create -cases in {kib}. If you use the <>, however, -you must still specify all of the connector details. - -=== {api-path-parms-title} - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -[role="child_attributes"] -=== {api-request-body-title} - -`closure_type`:: -(Required, string) Specifies whether a case is automatically closed when it is -pushed to external systems. -+ --- -Valid values are: - -* `close-by-pushing`: Cases are automatically closed when they are pushed. -* `close-by-user`: Cases are not automatically closed. --- - -`connector`:: -(Required, object) An object that contains the connector configuration. -+ -.Properties of `connector` -[%collapsible%open] -==== -`fields`:: -(Required, object) An object that contains the connector fields. -+ --- -TIP: The fields specified in the case configuration are not used and are not -propagated to individual cases, therefore it is recommended to set it to `null`. --- - -`id`:: -(Required, string) The identifier for the connector. If you do not want a -default connector, use `none`. To retrieve connector IDs, use -<>. - -`name`:: -(Required, string) The name of the connector. If you do not want a default -connector, use `none`. To retrieve connector names, use -<>. - -`type`:: -(Required, string) The type of the connector. Valid values are: `.cases-webhook`, -`.jira`, `.none`, `.resilient`,`.servicenow`, `.servicenow-sir`, and `.swimlane`. -==== - -`owner`:: -(Required, string) The application that owns the case configuration. Valid -values are: `cases`, `observability`, or `securitySolution`. This value affects -whether you're setting case configuration details for {stack-manage-app}, -{observability}, or {security-app}. - -`settings`:: -(Optional, object) -An object that contains the case settings. -+ -.Properties of `settings` -[%collapsible%open] -==== -`syncAlerts`:: -(Required, boolean) Turns alert syncing on or off. -==== - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Sets the closure type and default connector for cases in **{stack-manage-app}**: - -[source,sh] --------------------------------------------------- -POST api/cases/configure -{ - "owner": "cases", - "connector": { - "id": "5e656730-e1ca-11ec-be9b-9b1838238ee6", - "name": "my-jira-connector", - "type": ".jira", - "fields": null, - }, - "closure_type": "close-by-user" -} --------------------------------------------------- - -The API returns the following response: - -[source,json] --------------------------------------------------- -{ - "closure_type": "close-by-user", - "owner": "cases", - "created_at": "2022-06-01T17:07:17.767Z", - "created_by": { - "username": "elastic", - "email": null, - "full_name": null - }, - "updated_at": null, - "updated_by": null, - "connector": { - "id": "5e656730-e1ca-11ec-be9b-9b1838238ee6", - "name": "my-jira-connector", - "type": ".jira", - "fields": null - }, - "mappings": [ - { - "source": "title", - "target": "summary", - "action_type": "overwrite" - }, - { - "source": "description", - "target": "description", - "action_type": "overwrite" - }, - { - "source": "comments", - "target": "comments", - "action_type": "append" - } - ], - "version": "WzIwNzMsMV0=", - "error": null, - "id": "4a97a440-e1cd-11ec-be9b-9b1838238ee6" -} --------------------------------------------------- diff --git a/docs/api/cases/cases-api-update-comment.asciidoc b/docs/api/cases/cases-api-update-comment.asciidoc deleted file mode 100644 index fc8d97e779fd0..0000000000000 --- a/docs/api/cases/cases-api-update-comment.asciidoc +++ /dev/null @@ -1,197 +0,0 @@ -[[cases-api-update-comment]] -== Update case comment API -++++ -Update comment -++++ - -Updates a comment or alert in a case. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`PATCH :/api/cases//comments` - -`PATCH :/s//api/cases//comments` - -=== {api-prereq-title} - -You must have `all` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the case you're updating. - -=== {api-path-parms-title} - -``:: -The identifier for the case. To retrieve case IDs, use -<>. - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -[role="child_attributes"] -=== {api-request-body-title} - -`alertId`:: -(Required*, string or array of strings) The alert identifiers. It is -required only when `type` is `alert`. If you are adding multiple alerts to a -case, use an array of strings; `index` must also be an array with the same -length or number of elements in that case. Addings multiple alerts in this manner -is recommended rather than calling the API multiple times. - -`comment`:: -(Required*, string) The updated comment. It is required only when `type` is -`user`. - -`id`:: -(Required, string) The identifier for the comment. To retrieve comment IDs, use -<>. - -`index`:: -(Required*, string or array of strings) The alert indices. It is required only -when `type` is `alert`. If you are adding multiple alerts to a case, use an -array of strings; `alertId` must also be an array with the same length or number -of elements. preview:[] - -`owner`:: -(Required, string) The application that owns the case. It can be `cases`, -`observability`, or `securitySolution`. -+ -NOTE: You cannot change the owner of a comment. - -`rule`:: -(Required*, object) -The rule that is associated with the alert. It is required only when `type` is -`alert`. preview:[] -+ -.Properties of `rule` -[%collapsible%open] -==== -`id`:: -(Required, string) The rule identifier. preview:[] - -`name`:: -(Required, string) The rule name. preview:[] - -==== - -`type`:: -(Required, string) The comment type, which must be `user` or `alert`. -+ -NOTE: You cannot change the comment type. - -`version`:: -(Required, string) The current comment version. To retrieve version values, use -<>. - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Update comment ID `8af6ac20-74f6-11ea-b83a-553aecdb28b6` (associated with case -ID `293f1bc0-74f6-11ea-b83a-553aecdb28b6`): - -[source,sh] --------------------------------------------------- -PATCH api/cases/293f1bc0-74f6-11ea-b83a-553aecdb28b6/comments -{ - "id": "8af6ac20-74f6-11ea-b83a-553aecdb28b6", - "version": "Wzk1LDFd", - "type": "user", - "comment": "An updated comment." -} --------------------------------------------------- -// KIBANA - -The API returns details about the case and its comments. For example: - -[source,json] --------------------------------------------------- -{ - "comments":[{ - "id": "8af6ac20-74f6-11ea-b83a-553aecdb28b6", - "version": "WzIwNjM3LDFd", - "comment": "An updated comment.", - "type": "user", - "owner": "cases", - "created_at": "2022-03-24T00:37:10.832Z", - "created_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "pushed_at": null, - "pushed_by": null, - "updated_at": "2022-03-24T01:27:06.210Z", - "updated_by": { - "email": null, - "full_name": null, - "username": "elastic" - } - } - ], - "totalAlerts": 0, - "id": "293f1bc0-74f6-11ea-b83a-553aecdb28b6", - "version": "WzIwNjM2LDFd", - "totalComment": 1, - "title": "Case title 1", - "tags": ["tag 1"], - "description": "A case description.", - "settings": {"syncAlerts":false}, - "owner": "cases", - "duration": null, - "severity": "low", - "closed_at": null, - "closed_by": null, - "created_at": "2022-03-24T00:37:03.906Z", - "created_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "status": "open", - "updated_at": "2022-03-24T01:27:06.210Z", - "updated_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "connector": { - "id": "none", - "name": "none", - "type": ".none", - "fields": null - }, - "external_service": null -} --------------------------------------------------- - -Update an alert in the case: - -[source,sh] --------------------------------------------------- -PATCH api/cases/293f1bc0-74f6-11ea-b83a-553aecdb28b6/comments -{ - "id": "73362370-ab1a-11ec-985f-97e55adae8b9", - "version": "WzMwNDgsMV0=", - "type": "alert", - "owner": "cases", - "alertId": "c8789278659fdf88b7bf7709b90a082be070d0ba4c23c9c4b552e476c2a667c4", - "index": ".internal.alerts-security.alerts-default-000001", - "rule": - { - "id":"94d80550-aaf4-11ec-985f-97e55adae8b9", - "name":"security_rule" - } -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/cases/cases-api-update-configuration.asciidoc b/docs/api/cases/cases-api-update-configuration.asciidoc deleted file mode 100644 index 57c803eb53bde..0000000000000 --- a/docs/api/cases/cases-api-update-configuration.asciidoc +++ /dev/null @@ -1,136 +0,0 @@ -[[cases-api-update-configuration]] -== Update case configuration API -++++ -Update configuration -++++ - -Updates external connection details, such as the closure type and default -connector for cases. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`PATCH :/api/cases/configure/` - -`PATCH :/s//api/cases/configure/` - -=== {api-prereq-title} - -You must have `all` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the case configuration. - -=== {api-description-title} - -Connectors are used to interface with external systems. You must create a -connector before you can it in your cases. Refer to <>. - -=== {api-path-parms-title} - -``:: -The identifier for the configuration. To retrieve the configuration IDs, use -<>. - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -[role="child_attributes"] -=== Request body - -`closure_type`:: -(Optional, string) Determines whether a case is automatically closed when it is -pushed to external systems. Valid values are: -+ --- -* `close-by-pushing`: Cases are automatically closed when they -are pushed. -* `close-by-user`: Cases are not automatically closed. --- - -`connector`:: -(Optional, object) An object that contains the connector configuration. -+ -.Properties of `connector` -[%collapsible%open] -==== -`fields`:: -(Required, object) An object that contains the connector fields. -+ --- -TIP: The fields specified in the case configuration are not used and are not -propagated to individual cases, therefore it is recommended to set it to `null`. --- - -`id`:: -(Required, string) The identifier for the connector. To retrieve connector IDs, -use <>. - -`name`:: -(Required, string) The name of the connector. - -`type`:: -(Required, string) The type of the connector. Valid values are: `.cases-webhook`, -`.jira`, `.none`, `.resilient`,`.servicenow`, `.servicenow-sir`, and `.swimlane`. -==== - -`version`:: -(Required, string) The version of the connector. To retrieve the version value, -use <>. - -=== Response code - -`200`:: - Indicates a successful call. - -=== Example - -Change the closure type configuration option: - -[source,sh] --------------------------------------------------- -PATCH api/cases/configure/3297a0f0-b5ec-11ec-b141-0fdb20a7f9a9 -{ - "closure_type": "close-by-pushing", - "version": "WzIwMiwxXQ==" -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,json] --------------------------------------------------- -{ - "closure_type": "close-by-pushing", - "owner": "cases", - "created_at": "2022-06-01T17:07:17.767Z", - "created_by": { - "email": "null", - "full_name": "null", - "username": "elastic" - }, - "updated_at": "2022-06-01T19:58:48.169Z", - "updated_by": { - "email": "null", - "full_name": "null", - "username": "elastic" - }, - "connector": { - "id": "none", - "name": "none", - "type": ".none", - "fields": null - }, - "mappings": [], - "version": "WzkwNiw1XQ==", - "error": null, - "id": "3297a0f0-b5ec-11ec-b141-0fdb20a7f9a9" -} --------------------------------------------------- diff --git a/docs/api/cases/cases-api-update.asciidoc b/docs/api/cases/cases-api-update.asciidoc deleted file mode 100644 index 46c5ac7763600..0000000000000 --- a/docs/api/cases/cases-api-update.asciidoc +++ /dev/null @@ -1,289 +0,0 @@ -[[cases-api-update]] -== Update cases API -++++ -Update cases -++++ - -Updates one or more cases. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[open API specification]. -==== - -=== {api-request-title} - -`PATCH :/api/cases` - -`PATCH :/s//api/cases` - -=== {api-prereq-title} - -You must have `all` privileges for the *Cases* feature in the *Management*, -*{observability}*, or *Security* section of the -<>, depending on the -`owner` of the cases you're updating. - -=== {api-path-parms-title} - -``:: -(Optional, string) An identifier for the space. If it is not specified, the -default space is used. - -[role="child_attributes"] -=== {api-request-body-title} - -`cases`:: -(Required, array of objects) Array containing one or more case objects. -+ -.Properties of `cases` objects -[%collapsible%open] -==== - -`assignees`:: -(Optional, array of objects) Array containing users that are assigned to the case. -+ -.Properties of assignee objects -[%collapsible%open] -===== -`uid`:: -(Required, string) A unique identifier for the user profile. These identifiers -can be found by using the -{ref}/security-api-suggest-user-profile.html[suggest user profile API]. -===== - -`connector`:: -(Optional, object) An object that contains the connector configuration. -+ -.Properties of `connector` -[%collapsible%open] -===== -`fields`:: -(Required, object) An object containing the connector fields. To remove the -connector, specify `null`. If you want to omit any individual field, specify -`null` as its value. -+ -.Properties of `fields` -[%collapsible%open] -======= -For {ibm-r} connectors, specify: - -`issueTypes`::: -(Required, array of strings) The issue types of the issue. - -`severityCode`::: -(Required, string) The severity code of the issue. - -For {jira} connectors, specify: - -`issueType`::: -(Required, string) The issue type of the issue. - -`parent`::: -(Required, string) The key of the parent issue, when the issue type is -`Sub-task`. - -`priority`::: -(Required, string) The priority of the issue. - -For {sn-itsm} connectors, specify: - -`category`::: -(Required, string) The category of the incident. - -`impact`::: -(Required, string) The effect an incident had on business. - -`severity`::: -(Required, string) The severity of the incident. - -`subcategory`::: -(Required, string) The subcategory of the incident. - -`urgency`::: -(Required, string) The extent to which the incident resolution can be delayed. - -For {sn-sir} connectors, specify: - -`category`::: -(Required, string) The category of the incident. - -`destIp`::: -(Required, string) A comma separated list of destination IPs. - -`malwareHash`::: -(Required, string) A comma separated list of malware hashes. - -`malwareUrl`::: -(Required, string) A comma separated list of malware URLs. - -`priority`::: -(Required, string) The priority of the incident. - -`sourceIp`::: -(Required, string) A comma separated list of source IPs. - -`subcategory`::: -(Required, string) The subcategory of the incident. - -For {swimlane} connectors, specify: - -`caseId`::: -(Required, string) The identifier for the case. - -For {webhook-cm} connectors, specify `null`. -======= - -`id`:: -(Required, string) The identifier for the connector. To remove the connector, -use `none`. To retrieve connector IDs, use <>). - -`name`:: -(Required, string) The name of the connector. To remove the connector, use -`none`. - -`type`:: -(Required, string) The type of the connector. Valid values are: `.cases-webhook`, -`.jira`, `.none`, `.resilient`,`.servicenow`, `.servicenow-sir`, and `.swimlane`. -To remove the connector, use `.none`. - -===== - -`description`:: -(Optional, string) The updated case description. - -`id`:: -(Required, string) The identifier for the case. - -`settings`:: -(Optional, object) -An object that contains the case settings. -+ -.Properties of `settings` -[%collapsible%open] -===== -`syncAlerts`:: -(Required, boolean) Turn on or off synching with alerts. -===== - -`severity`:: -(Optional,string) The severity of the case. Valid values are: `critical`, `high`, -`low`, and `medium`. - -`status`:: -(Optional, string) The case status. Valid values are: `closed`, `in-progress`, -and `open`. - -`tags`:: -(Optional, string array) The words and phrases that help categorize cases. - -`title`:: -(Optional, string) A title for the case. - -`version`:: -(Required, string) The current version of the case. To determine this value, use -<> or <>. -==== - -=== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -=== {api-examples-title} - -Update the description, tags, and connector of case ID -`a18b38a0-71b0-11ea-a0b2-c51ea50a58e2`: - -[source,sh] --------------------------------------------------- -PATCH api/cases -{ - "cases": [ - { - "id": "a18b38a0-71b0-11ea-a0b2-c51ea50a58e2", - "version": "WzIzLDFd", - "connector": { - "id": "131d4448-abe0-4789-939d-8ef60680b498", - "name": "My connector", - "type": ".jira", - "fields": { - "issueType": "10006", - "priority": null, - "parent": null - } - }, - "description": "A new description.", - "tags": [ "tag-1", "tag-2" ], - "assignees": [], - "settings": { - "syncAlerts": true - } - } - ] -} --------------------------------------------------- -// KIBANA - -The API returns the updated case with a new `version` value. For example: - -[source,json] --------------------------------------------------- -[ - { - "id": "66b9aa00-94fa-11ea-9f74-e7e108796192", - "version": "WzU0OCwxXQ==", - "comments": [], - "totalComment": 0, - "totalAlerts": 0, - "title": "Case title 1", - "tags": [ "tag-1", "tag-2" ], - "settings": { - "syncAlerts": true - }, - "owner": "cases", - "description": "A new description.", - "duration": null, - "severity": "low", - "closed_at": null, - "closed_by": null, - "created_at": "2022-05-13T09:16:17.416Z", - "created_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "status": "open", - "updated_at": "2022-05-13T09:48:33.043Z", - "updated_by": { - "email": null, - "full_name": null, - "username": "elastic" - }, - "connector": { - "id": "131d4448-abe0-4789-939d-8ef60680b498", - "name": "My connector", - "type": ".jira", - "fields": { - "issueType": "10006", - "parent": null, - "priority": null, - } - }, - "external_service": { - "external_title": "IS-4", - "pushed_by": { - "full_name": null, - "email": null, - "username": "elastic" - }, - "external_url": "https://hms.atlassian.net/browse/IS-4", - "pushed_at": "2022-05-13T09:20:40.672Z", - "connector_id": "05da469f-1fde-4058-99a3-91e4807e2de8", - "external_id": "10003", - "connector_name": "Jira" - } - } -] --------------------------------------------------- diff --git a/docs/api/dashboard-api.asciidoc b/docs/api/dashboard-api.asciidoc index e8d0a829d178d..60df46b899f14 100644 --- a/docs/api/dashboard-api.asciidoc +++ b/docs/api/dashboard-api.asciidoc @@ -1,7 +1,7 @@ [[dashboard-api]] == Import and export dashboard APIs -deprecated::[7.15.0,Both of these APIs have been deprecated in favor of <> and <>.] +deprecated::[7.15.0,Both of these APIs have been deprecated in favor of the {api-kibana}/group/endpoint-saved-objects[saved objects API].] Import and export dashboards with the corresponding saved objects, such as visualizations, saved searches, and data views. diff --git a/docs/api/dashboard/export-dashboard.asciidoc b/docs/api/dashboard/export-dashboard.asciidoc index 3a20eff0a54d2..675834a0f5561 100644 --- a/docs/api/dashboard/export-dashboard.asciidoc +++ b/docs/api/dashboard/export-dashboard.asciidoc @@ -4,7 +4,7 @@ Export dashboard ++++ -deprecated::[7.15.0,Use <> instead.] +deprecated::[7.15.0,Use the {api-kibana}/group/endpoint-saved-objects[saved objects API] instead.] Export dashboards and corresponding saved objects. diff --git a/docs/api/dashboard/import-dashboard.asciidoc b/docs/api/dashboard/import-dashboard.asciidoc index e4817d6cb7ee9..e4bdb3abce989 100644 --- a/docs/api/dashboard/import-dashboard.asciidoc +++ b/docs/api/dashboard/import-dashboard.asciidoc @@ -4,7 +4,7 @@ Import dashboard ++++ -deprecated::[7.15.0,Use <> instead.] +deprecated::[7.15.0,Use the {api-kibana}/group/endpoint-saved-objects[saved objects API] instead.] Import dashboards and corresponding saved objects. diff --git a/docs/api/data-views.asciidoc b/docs/api/data-views.asciidoc index 918101ebb0031..62d1546bdfd45 100644 --- a/docs/api/data-views.asciidoc +++ b/docs/api/data-views.asciidoc @@ -3,46 +3,10 @@ Manage data views, formerly known as {kib} index patterns. +For the latest details, refer to {api-kibana}/group/endpoint-data-views[data view APIs]. + WARNING: Do not write documents directly to the `.kibana` index. When you write directly to the `.kibana` index, the data becomes corrupted and permanently breaks future {kib} versions. WARNING: Use the data views APIs for managing data views instead of lower-level <>. -The following data views APIs are available: - -* Data views - ** <> to retrieve a list of data views - ** <> to retrieve a single data view - ** <> to create data view - ** <> to partially updated data view - ** <> to delete a data view - ** <> to preview a data view reference swap - ** <> to perform a data view reference swap -* Default data views - ** <> to retrieve a default data view - ** <> to set a default data view -* Fields - ** <> to change field metadata, such as `count`, `customLabel` and `format` -* Runtime fields - ** <> to retrieve a runtime field - ** <> to create a runtime field - ** <> to create or update a runtime field - ** <> to partially update an existing runtime field - ** <> to delete a runtime field - -include::data-views/get-all.asciidoc[] -include::data-views/get.asciidoc[] -include::data-views/create.asciidoc[] -include::data-views/update.asciidoc[] -include::data-views/delete.asciidoc[] -include::data-views/swap_references_preview.asciidoc[] -include::data-views/swap_references.asciidoc[] -include::data-views/default-get.asciidoc[] -include::data-views/default-set.asciidoc[] -include::data-views/update-fields.asciidoc[] -include::data-views/runtime-fields/get.asciidoc[] -include::data-views/runtime-fields/create.asciidoc[] -include::data-views/runtime-fields/upsert.asciidoc[] -include::data-views/runtime-fields/update.asciidoc[] -include::data-views/runtime-fields/delete.asciidoc[] - diff --git a/docs/api/data-views/create.asciidoc b/docs/api/data-views/create.asciidoc deleted file mode 100644 index 4a91d957abf12..0000000000000 --- a/docs/api/data-views/create.asciidoc +++ /dev/null @@ -1,264 +0,0 @@ -[[data-views-api-create]] -=== Create data view API -++++ -Create data view -++++ - -Create data views. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-api-create-request]] -==== Request - -`POST :/api/data_views/data_view` - -`POST :/s//api/data_views/data_view` - - -[[data-views-api-create-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - - -[[data-views-api-create-body-params]] -==== Request body - -`override`:: (Optional, boolean) Overrides an existing data view if a -data view with the provided title already exists. The default is `false`. - -`data_view`:: (Required, object) The data view object. All fields are optional. - - -[[data-views-api-create-request-codes]] -==== Response code - -`200`:: - Indicates a successful call. - - -[[data-views-api-create-example]] -==== Examples - -To explore the data in the `logstash-*` indices, create a {data-source}: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view -{ - "data_view": { - "title": "logstash-*", - "name": "My Logstash Data View" - } -} --------------------------------------------------- -// KIBANA - -To create custom field formats, use the `data_view.fieldFormats` property: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view -{ - "data_view": { - "title": "logstash-*", - "name": "My Logstash data view 2", - "fieldFormats": { - "event_time": { - "id": "date_nanos" - }, - "machine.ram": { - "id": "number", - "params": { - "pattern": "0,0.[000] b" - } - } - } - } -} --------------------------------------------------- -// KIBANA - -To create custom labels, use the `data_view.fieldAttrs` property: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view -{ - "data_view": { - "title": "logstash-*", - "name": "My Logstash data view 3", - "fieldAttrs": { - "utc_time": { - "customLabel": "Time (UTC)" - } - } - } -} --------------------------------------------------- -// KIBANA - -To create a {data-source} with {ref}/runtime-search-request.html[runtime fields], use the `data_view.runtimeFieldMap` property: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view -{ - "data_view": { - "title": "logstash-*", - "name": "My Logstash data view 3", - "runtimeFieldMap": { - "runtime_shape_name": { - "type": "keyword", - "script": { - "source": "emit(doc['shape_name'].value)" - } - } - } - } -} --------------------------------------------------- -// KIBANA - -To create {data-sources} based on {ref}/xpack-rollup.html[rollup indices], use the `data_view.type` and `data_view.typeMeta` properties : - -deprecated::[8.11.0,'Rollups are deprecated and will be removed in a future version. Use {ref}/downsampling.html[downsampling] instead.'] - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view -{ - "data_view": { - "title": "logstash-*", - "name": "My Logstash rollup data view", - "type": "rollup", - "typeMeta": { - "params": { - "rollup_index": "rollup_logstash" - }, - "aggs": { - "terms": { - "geo.dest": { "agg": "terms" }, - "extension.keyword": { "agg": "terms" }, - "geo.src": { "agg": "terms" }, - "machine.os.keyword": { "agg": "terms" } - }, - "date_histogram": { - "@timestamp": { - "agg": "date_histogram", - "fixed_interval": "20m", - "delay": "10m", - "time_zone": "UTC" - } - }, - "avg": { - "memory": { "agg": "avg" }, - "bytes": { "agg": "avg" } - }, - "max": { "memory": { "agg": "max" } }, - "min": { "memory": { "agg": "min" } }, - "sum": { "memory": { "agg": "sum" } }, - "value_count": { "memory": { "agg": "value_count" } }, - "histogram": { - "machine.ram": { - "agg": "histogram", - "interval": 5 - } - } - } - } - } -} --------------------------------------------------- -// KIBANA - -The API returns the {data-source} object: - -[source,sh] --------------------------------------------------- -{ - "data_view": {...} -} --------------------------------------------------- - - -[[data-views-api-properties]] - -==== Properties of the `data_view` object: - -`title`:: -(Optional, string) Comma-separated list of data streams, indices, and aliases that you want to search. Supports wildcards -(`*`). - -`name`:: -(Optional, string) The {data-source} name. - -`id`:: -(Optional, string) Saved object ID. - -`type`:: -(Optional, string) When set to `rollup`, identifies the rollup {data-sources}. - -`typeMeta`:: -(Optional, object) When you use rollup indices, contains the field list for the rollup -{data-source} API endpoints. -+ -.Properties of the typeMeta objects: -[%collapsible%open] -===== -`aggs`::: -(Required, object) A map of rollup restrictions by aggregation type and field name. - -`params`::: -(Required, object) Properties for retrieving rollup fields. -===== - -`timeFieldName`:: -(Optional, string) Timestamp field name, which you use for time-based {data-sources}. - -`sourceFilters`:: -(Optional, string[]) Array of field names you want to filter out in <>. - -`fieldAttrs`:: -(Optional, object) Map of field attributes by field name. -+ -.Properties of the fieldAttrs[fieldName] objects: -[%collapsible%open] -===== -`customLabel`:: -(Optional, string) Custom label for the field. - -`customDescription`:: -(Optional, string) Custom description for the field. Max length is 300 characters. - -`count`:: -(Optional, number) Popularity count for the field. -===== - -`runtimeFieldMap`:: -(Optional, object) Map of runtime field definitions by field name. -+ -.Properties of the runtimeFieldMap[fieldName] objects: -[%collapsible%open] -===== -`type`::: -(Required, string) Mapping type of the runtime field. For more information, check {ref}/mapping-types.html[Field data types]. - -`script.source`::: -(Required, string) Script of the runtime field. -===== - -`fieldFormats`:: -(Optional, object) Map of field formats by field name. - -`allowNoIndex`:: -(Optional, boolean) Allows the {data-source} saved object to exist before the data is available. - -`namespaces`:: -(Optional, string[]) Array of {kibana-ref}/xpack-spaces.html[space] IDs for sharing the {data-source} between multiple spaces. diff --git a/docs/api/data-views/default-get.asciidoc b/docs/api/data-views/default-get.asciidoc deleted file mode 100644 index acb3472ba6bc5..0000000000000 --- a/docs/api/data-views/default-get.asciidoc +++ /dev/null @@ -1,65 +0,0 @@ -[[data-views-api-default-get]] -=== Get default data view API -++++ -Get default data view -++++ - -Retrieve a default data view ID. Kibana UI uses the default data view unless user picks a different one. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-api-default-get-request]] -==== Request - -`GET :/api/data_views/default` - -`GET :/s//api/data_views/default` - - -[[data-views-api-default-get-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - - -[[data-views-api-default-get-codes]] -==== Response code - -`200`:: -Indicates a successful call. - - -[[data-views-api-default-get-example]] -==== Example - -Retrieve the default data view id: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/data_views/default --------------------------------------------------- -// KIBANA - -The API returns an ID of a default data view: - -[source,sh] --------------------------------------------------- -{ - "data_view_id": "..." -} --------------------------------------------------- - -In case there is no default data view, the API returns: - -[source,sh] --------------------------------------------------- -{ - "data_view_id": null -} --------------------------------------------------- - diff --git a/docs/api/data-views/default-set.asciidoc b/docs/api/data-views/default-set.asciidoc deleted file mode 100644 index 747e8021985a4..0000000000000 --- a/docs/api/data-views/default-set.asciidoc +++ /dev/null @@ -1,93 +0,0 @@ -[[data-views-api-default-set]] -=== Set default data view API -++++ -Set default data view -++++ - -Set a default data view ID. Kibana UI will use the default data view unless user picks a different one. -The API doesn't validate if given `data_view_id` is a valid id. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-api-default-set-request]] -==== Request - -`POST :/api/data_views/default` - -`POST :/s//api/data_views/default` - - -[[data-views-api-default-set-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - - -[[data-views-api-default-set-body]] -==== Request body - -`data_view_id`:: (Required, `string` or `null`) Sets a default data view id. Use `null` to unset a default data view. - -`force`:: (Optional, boolean) Updates existing default data view id. The default is `false`. - - - -[[data-views-api-default-set-codes]] -==== Response code - -`200`:: -Indicates a successful call. - - -[[data-views-api-default-set-example]] -==== Example - -Set the default data view id if none is set: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/default -{ - "data_view_id": "..." -} --------------------------------------------------- -// KIBANA - - -Upsert the default data view: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/default -{ - "data_view_id": "...", - "force": true -} --------------------------------------------------- -// KIBANA - -Unset the default data view: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/default -{ - "data_view_id": null, - "force": true -} --------------------------------------------------- -// KIBANA - -The API returns: - -[source,sh] --------------------------------------------------- -{ - "acknowledged": true -} --------------------------------------------------- diff --git a/docs/api/data-views/delete.asciidoc b/docs/api/data-views/delete.asciidoc deleted file mode 100644 index a79e8fe12a417..0000000000000 --- a/docs/api/data-views/delete.asciidoc +++ /dev/null @@ -1,50 +0,0 @@ -[[data-views-api-delete]] -=== Delete data view API -++++ -Delete data view -++++ - -Delete data views. - -WARNING: Once you delete a data view, _it cannot be recovered_. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-api-delete-request]] -==== Request - -`DELETE :/api/data_views/data_view/` - -`DELETE :/s//api/data_views/data_view/` - - -[[data-views-api-delete-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`id`:: - (Required, string) The ID of the data view you want to delete. - - -[[data-views-api-delete-response-codes]] -==== Response code - -`200`:: - Indicates that data view is deleted. Returns an empty response body. - - -==== Example - -Delete a data view object with the `my-view` ID: - -[source,sh] --------------------------------------------------- -$ curl -X DELETE api/data_views/data_view/my-view --------------------------------------------------- -// KIBANA diff --git a/docs/api/data-views/get-all.asciidoc b/docs/api/data-views/get-all.asciidoc deleted file mode 100644 index a4e30b1951495..0000000000000 --- a/docs/api/data-views/get-all.asciidoc +++ /dev/null @@ -1,66 +0,0 @@ -[[data-views-api-get-all]] -=== Get all data views API -++++ -Get all data views -++++ - -Retrieve a list of all data views. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - - -[[data-views-api-get-all-request]] -==== Request - -`GET :/api/data_views` - -`GET :/s//api/data_views` - - -[[data-views-api-get-all-codes]] -==== Response code - -`200`:: -Indicates a successful call. - - -[[data-views-api-get-all-example]] -==== Example - -Retrieve the list of data views: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/data_views --------------------------------------------------- -// KIBANA - -The API returns a list of data views: - -[source,sh] --------------------------------------------------- -{ - "data_view": [ - { - "id": "e9e024f0-d098-11ec-bbe9-c753adcb34bc", - "namespaces": [ - "default" - ], - "title": "tmp*", - "type": "rollup", - "typeMeta": {} - }, - { - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "namespaces": [ - "default" - ], - "title": "kibana_sample_data_logs" - } - ] -} --------------------------------------------------- diff --git a/docs/api/data-views/get.asciidoc b/docs/api/data-views/get.asciidoc deleted file mode 100644 index 50d186fa557be..0000000000000 --- a/docs/api/data-views/get.asciidoc +++ /dev/null @@ -1,74 +0,0 @@ -[[data-views-api-get]] -=== Get data view API -++++ -Get data view -++++ - -Retrieve a single data view by ID. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-api-get-request]] -==== Request - -`GET :/api/data_views/data_view/` - -`GET :/s//api/data_views/data_view/` - - -[[data-views-api-get-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`id`:: -(Required, string) The ID of the data view you want to retrieve. - - -[[data-views-api-get-codes]] -==== Response code - -`200`:: -Indicates a successful call. - -`404`:: -The specified data view and ID doesn't exist. - - -[[data-views-api-get-example]] -==== Example - -Retrieve the data view object with the `my-view` ID: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/data_views/data_view/my-view --------------------------------------------------- -// KIBANA - -The API returns a data view object: - -[source,sh] --------------------------------------------------- -{ - "data_view": { - "id": "my-view", - "version": "...", - "title": "...", - "type": "...", - "timeFieldName": "...", - "sourceFilters": [], - "fields": {}, - "typeMeta": {}, - "fieldFormats": {}, - "fieldAttrs": {}, - "runtimeFieldMap" {}, - "allowNoIndex: "..." - } -} --------------------------------------------------- diff --git a/docs/api/data-views/runtime-fields/create.asciidoc b/docs/api/data-views/runtime-fields/create.asciidoc deleted file mode 100644 index 93db449e43434..0000000000000 --- a/docs/api/data-views/runtime-fields/create.asciidoc +++ /dev/null @@ -1,61 +0,0 @@ -[[data-views-runtime-field-api-create]] -=== Create runtime field API -++++ -Create runtime field -++++ - -Create a runtime field - -[[data-views-runtime-field-create-request]] -==== Request - -`POST :/api/data_views/data_view//runtime_field` - -`POST :/s//api/data_views/data_view//runtime_field` - -[[data-views-runtime-field-create-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`data_view_id`:: -(Required, string) The ID of the data view. - -[[data-views-runtime-field-create-body]] -==== Request body - -`name`:: (Required, string) The name for a runtime field. - -`runtimeField`:: (Required, object) The runtime field definition object. - - -[[data-views-runtime-field-create-example]] -==== Examples - -Create a runtime field on a data view: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view//runtime_field -{ - "name": "runtimeFoo", - "runtimeField": { - "type": "long", - "script": { - "source": "emit(doc["foo"].value)" - } - } -} --------------------------------------------------- -// KIBANA - -The API returns created runtime field object array and updated data view object: - -[source,sh] --------------------------------------------------- -{ - "data_view": {...}, - "fields": [...] -} --------------------------------------------------- diff --git a/docs/api/data-views/runtime-fields/delete.asciidoc b/docs/api/data-views/runtime-fields/delete.asciidoc deleted file mode 100644 index 8c6e2fa186106..0000000000000 --- a/docs/api/data-views/runtime-fields/delete.asciidoc +++ /dev/null @@ -1,39 +0,0 @@ -[[data-views-runtime-field-api-delete]] -=== Delete runtime field API -++++ -Delete runtime field -++++ - -Delete a runtime field from a data view. - -[[data-views-runtime-field-api-delete-request]] -==== Request - -`DELETE :/api/data_views/data_view//runtime_field/` - -`DELETE :/s//api/data_views/data_view//runtime_field/` - - -[[data-views-runtime-field-api-delete-path-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`data_view_id`:: -(Required, string) The ID of the data view your want to delete a runtime field from. - -`name`:: -(Required, string) The name of the runtime field you want to delete. - - - -==== Example - -Delete a runtime field from a data view: - -[source,sh] --------------------------------------------------- -$ curl -X DELETE api/data_views/data_view//runtime_field/ --------------------------------------------------- -// KIBANA diff --git a/docs/api/data-views/runtime-fields/get.asciidoc b/docs/api/data-views/runtime-fields/get.asciidoc deleted file mode 100644 index b472e8ebb4305..0000000000000 --- a/docs/api/data-views/runtime-fields/get.asciidoc +++ /dev/null @@ -1,59 +0,0 @@ -[[data-views-runtime-field-api-get]] -=== Get runtime field API -++++ -Get runtime field -++++ - -Get a runtime field - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-runtime-field-get-request]] -==== Request - -`GET :/api/data_views/data_view//runtime_field/` - -`GET :/s//api/data_views/data_view//runtime_field/` - - -[[data-views-runtime-field-get-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`data_view_id`:: -(Required, string) The ID of the data view. - -`name`:: -(Required, string) The name of the runtime field you want to retrieve. - - -[[data-views-runtime-field-get-example]] -==== Example - -Retrieve a runtime field named `foo` of data view with the `my-view` ID: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/data_views/data_view/my-view/runtime_field/foo --------------------------------------------------- -// KIBANA - -The API returns a runtime `field` object array, and a `runtimeField` definition object: - -[source,sh] --------------------------------------------------- -{ - "fields": [ - ... - ], - "runtimeField": { - ... - } -} --------------------------------------------------- diff --git a/docs/api/data-views/runtime-fields/update.asciidoc b/docs/api/data-views/runtime-fields/update.asciidoc deleted file mode 100644 index ad37d5b59af5a..0000000000000 --- a/docs/api/data-views/runtime-fields/update.asciidoc +++ /dev/null @@ -1,71 +0,0 @@ -[[data-views-runtime-field-api-update]] -=== Update runtime field API -++++ -Update runtime field -++++ - -Update an existing runtime field - - -[[data-views-runtime-field-update-request]] -==== Request - -`POST :/api/data_views/data_view//runtime_field/` - -`POST :/s//api/data_views/data_view//runtime_field/` - - -[[data-views-runtime-field-update-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`data_view_id`:: -(Required, string) The ID of the data view. - -`name`:: -(Required, string) The name of the runtime field you want to update. - - -[[data-views-runtime-field-update-body]] -==== Request body - -`runtimeField`:: (Required, object) The runtime field definition object. - -You can update following fields: - -* `type` -* `script` - - - - -[[data-views-runtime-field-update-example]] -==== Examples - -Update an existing runtime field on a data view: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view//runtime_field/ -{ - "runtimeField": { - "script": { - "source": "emit(doc["bar"].value)" - } - } -} --------------------------------------------------- -// KIBANA - -The API returns updated runtime field object array and updated data view object: - -[source,sh] --------------------------------------------------- -{ - "data_view": {...}, - "fields": [...] -} --------------------------------------------------- - diff --git a/docs/api/data-views/runtime-fields/upsert.asciidoc b/docs/api/data-views/runtime-fields/upsert.asciidoc deleted file mode 100644 index e0d587649ff4e..0000000000000 --- a/docs/api/data-views/runtime-fields/upsert.asciidoc +++ /dev/null @@ -1,66 +0,0 @@ -[[data-views-runtime-field-api-upsert]] -=== Upsert runtime field API -++++ -Upsert runtime field -++++ - -Create or update an existing runtime field - - -[[data-views-runtime-field-upsert-request]] -==== Request - -`PUT :/api/data_views/data_view//runtime_field` - -`PUT :/s//api/data_views/data_view//runtime_field` - - -[[data-views-runtime-field-upsert-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`data_view_id`:: -(Required, string) The ID of the data view. - - -[[data-views-runtime-field-upsert-body]] -==== Request body - -`name`:: (Required, string) The name for a new runtime field or a name of an existing runtime field. - -`runtimeField`:: (Required, object) The runtime field definition object. - - - -[[data-views-runtime-field-upsert-example]] -==== Examples - -Create or update an existing runtime field on a data view: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/data_views/data_view//runtime_field -{ - "name": "runtimeFoo", - "runtimeField": { - "type": "long", - "script": { - "source": "emit(doc["foo"].value)" - } - } -} --------------------------------------------------- -// KIBANA - -The API returns created or updated runtime field object array and updated data view object: - -[source,sh] --------------------------------------------------- -{ - "data_view": {...}, - "fields": [...] -} --------------------------------------------------- - diff --git a/docs/api/data-views/swap_references.asciidoc b/docs/api/data-views/swap_references.asciidoc deleted file mode 100644 index 26f6f9aada21a..0000000000000 --- a/docs/api/data-views/swap_references.asciidoc +++ /dev/null @@ -1,84 +0,0 @@ -[[data-views-api-swap-references]] -=== Swap references data view API -++++ -Swap references -++++ - -Swap saved object references - -[WARNING] -==== -Misuse can break large numbers of saved objects! Practicing with a backup is recommended. -==== - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-api-swap-references-request]] -==== Request - -`POST :/api/data_views/swap_references` - -`POST :/s//api/data_views/swap_references` - - -[[data-views-api-swap-references-request-body]] -==== Request body - -`fromId`:: -(Required, string) Saved object reference to change. - -`toId`:: -(Required, string) New saved object reference value to replace the old. - -`delete`:: - (Optional, boolean) Deletes referenced saved object if all references are removed. - -`fromType`:: - (Optional, string) Specify the type of the saved object reference to alter. Default is `index-pattern` for data view. - -`forId`:: -(Optional, string or string[]) Limit the affected saved objects to one or more by IDs. - -`forType`:: - (Optional, string) Limit the affected saved objects by type. - -[[data-views-api-swap-references-errors-codes]] -==== Response code - -`200`:: -Indicates a successful call. - -[[data-views-api-swap-references-example]] -==== Examples - -Swap references to data view id "abcd-efg" with "xyz-123": - -[source,sh] --------------------------------------------------- -$ curl -X api/data_views/swap_references -{ - "fromId" : "abcd-efg", - "toId" : "xyz-123", - "delete" : true // optional, removes data view which is no longer referenced -} - --------------------------------------------------- -// KIBANA - -The API returns a list of affected saved objects: - -[source,sh] --------------------------------------------------- -{ - result: [{ id: "123", type: "visualization" }], - deleteStatus: { - remainingRefs: 0, - deletePerformed: true - } -} --------------------------------------------------- - diff --git a/docs/api/data-views/swap_references_preview.asciidoc b/docs/api/data-views/swap_references_preview.asciidoc deleted file mode 100644 index 16581045aaa35..0000000000000 --- a/docs/api/data-views/swap_references_preview.asciidoc +++ /dev/null @@ -1,74 +0,0 @@ -[[data-views-api-swap-references-preview]] -=== Swap references preview data view API -++++ -Swap references preview -++++ - -Swap saved object references preview - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-api-swap-references-preview-request]] -==== Request - -`POST :/api/data_views/swap_references/_preview` - -`POST :/s//api/data_views/swap_references/_preview` - - -[[data-views-api-swap-references-preview-request-body]] -==== Request body - -`fromId`:: -(Required, string) Saved object reference to change. - -`toId`:: -(Required, string) New saved object reference value to replace the old. - -`delete`:: - (Optional, boolean) Deletes referenced saved object if all references are removed. - -`fromType`:: - (Optional, string) Specify the type of the saved object reference to alter. Default is `index-pattern` for data view. - -`forId`:: -(Optional, string or string[]) Limit the affected saved objects to one or more by IDs. - -`forType`:: - (Optional, string) Limit the affected saved objects by type. - -[[data-views-api-swap-references-preview-errors-codes]] -==== Response code - -`200`:: -Indicates a successful call. - -[[data-views-api-swap-references-preview-example]] -==== Examples - -Preview swapping references to data view id "abcd-efg" with "xyz-123": - -[source,sh] --------------------------------------------------- -$ curl -X api/data_views/swap_references/_preview -{ - "fromId" : "abcd-efg", - "toId" : "xyz-123" -} - --------------------------------------------------- -// KIBANA - -The API returns a list of affected saved objects: - -[source,sh] --------------------------------------------------- -{ - result: [{ id: "123", type: "visualization" }], -} --------------------------------------------------- - diff --git a/docs/api/data-views/update-fields.asciidoc b/docs/api/data-views/update-fields.asciidoc deleted file mode 100644 index 4821262d1dda8..0000000000000 --- a/docs/api/data-views/update-fields.asciidoc +++ /dev/null @@ -1,154 +0,0 @@ -[[data-views-fields-api-update]] -=== Update data view fields API -++++ -Update data view fields metadata -++++ - -Update fields presentation metadata, such as `count`, -`customLabel`, `customDescription`, and `format`. You can update multiple fields in one request. Updates -are merged with persisted metadata. To remove existing metadata, specify `null` as the value. - - -[[data-views-fields-api-update-request]] -==== Request - -`POST :/api/data_views/data_view//fields` - -`POST :/s//api/data_views/data_view//fields` - - -[[data-views-fields-api-update-path-params]] -==== Path parameters - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`id`:: -(Required, string) The ID of the data view fields you want to update. - - -[[data-views-fields-api-update-request-body]] -==== Request body - -`fields`:: -(Required, object) the field object - - - -[[data-views-fields-api-update-errors-codes]] -==== Response code - -`200`:: -Indicates a successful call. - - -[[data-views-fields-api-update-example]] -==== Examples - -Set popularity `count` for field `foo`: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view/my-view/fields -{ - "fields": { - "foo": { - "count": 123 - } - } -} --------------------------------------------------- -// KIBANA - -Change a simple field format: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view/my-view/fields -{ - "fields": { - "foo": { - "format": { - "id": "bytes" - } - } - } -} --------------------------------------------------- -// KIBANA - -Change a complex field format: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view/my-view/fields -{ - "fields": { - "foo": { - "format": { - "id": "static_lookup", - "params": { - "lookupEntries": [ - { - "key": "1", - "value": "100" - }, - { - "key": "2", - "value": "200" - } - ], - "unknownKeyValue": "5000" - } - } - } - } -} --------------------------------------------------- -// KIBANA - -Update multiple metadata fields in one request: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view/my-view/fields -{ - "fields": { - "foo": { - "count": 123, - "customLabel": "Foo" - }, - "bar": { - "customLabel": "Bar", - "customDescription": "Bar Custom description" - } - } -} --------------------------------------------------- -// KIBANA - -Use `null` value to delete metadata: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view/my-pattern/fields -{ - "fields": { - "foo": { - "customLabel": null - } - } -} --------------------------------------------------- -// KIBANA - -The endpoint returns the updated data view object: - -[source,sh] --------------------------------------------------- -{ - "data_view": { - - } -} --------------------------------------------------- diff --git a/docs/api/data-views/update.asciidoc b/docs/api/data-views/update.asciidoc deleted file mode 100644 index e1ad5908b8d93..0000000000000 --- a/docs/api/data-views/update.asciidoc +++ /dev/null @@ -1,125 +0,0 @@ -[[data-views-api-update]] -=== Update data view API -++++ -Update data view -++++ - -Update part of an data view. Only the specified fields are updated in the -data view. Unspecified fields stay as they are persisted. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/src/plugins/data_views/docs/openapi[open API specification]. -==== - -[[data-views-api-update-request]] -==== Request - -`POST :/api/data_views/data_view/` - -`POST :/s//api/data_views/data_view/` - - -[[data-views-api-update-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`id`:: - (Required, string) The ID of the data view you want to update. - - -[[data-views-api-update-request-body]] -==== Request body - -`refresh_fields`:: (Optional, boolean) Reloads the data view fields after -the data view is updated. The default is `false`. - -`data_view`:: - (Required, object) The data view fields you want to update. -+ - -You can partially update the following fields: - -* `title` -* `name` -* `timeFieldName` -* `fields` -* `sourceFilters` -* `fieldFormatMap` -* `type` -* `typeMeta` - - -[[data-views-api-update-errors-codes]] -==== Response code - -`200`:: - Indicates a successful call. - - -[[data-views-api-update-example]] -==== Examples - -Update a title of the `` data view: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view/my-view -{ - "data_view": { - "title": "some-other-view-*" - } -} --------------------------------------------------- -// KIBANA - -Customize the update behavior: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view/my-view -{ - "refresh_fields": true, - "data_view": { - "fields": {} - } -} --------------------------------------------------- -// KIBANA - - -All update fields are optional, but you can specify the following fields: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/data_views/data_view/my-view -{ - "data_view": { - "title": "...", - "name": "...", - "timeFieldName": "...", - "sourceFilters": [], - "fieldFormats": {}, - "type": "...", - "typeMeta": {}, - "fields": {}, - "runtimeFieldMap": {} - } -} --------------------------------------------------- -// KIBANA - -The API returns the updated data view object: - -[source,sh] --------------------------------------------------- -{ - "data_view": { - - } -} --------------------------------------------------- - diff --git a/docs/api/index-patterns/create.asciidoc b/docs/api/index-patterns/create.asciidoc index 0e91254336456..21b03ab4bb294 100644 --- a/docs/api/index-patterns/create.asciidoc +++ b/docs/api/index-patterns/create.asciidoc @@ -4,7 +4,7 @@ Create index pattern ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Create {kib} index patterns. diff --git a/docs/api/index-patterns/default-get.asciidoc b/docs/api/index-patterns/default-get.asciidoc index fb27ef000c6a0..f000d09188c87 100644 --- a/docs/api/index-patterns/default-get.asciidoc +++ b/docs/api/index-patterns/default-get.asciidoc @@ -4,7 +4,7 @@ Get default index pattern ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Retrieve a default index pattern ID. Kibana UI uses default index pattern unless user picks a different one. diff --git a/docs/api/index-patterns/default-set.asciidoc b/docs/api/index-patterns/default-set.asciidoc index 3a9e91001d36e..0df2be0bcd16b 100644 --- a/docs/api/index-patterns/default-set.asciidoc +++ b/docs/api/index-patterns/default-set.asciidoc @@ -4,7 +4,7 @@ Set default index pattern ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Set a default index pattern ID. Kibana UI will use default index pattern unless user picks a different one. The API doesn't validate if given `index_pattern_id` is a valid id. diff --git a/docs/api/index-patterns/get.asciidoc b/docs/api/index-patterns/get.asciidoc index 3ae3eb4a84eb5..d627a3efe4a1c 100644 --- a/docs/api/index-patterns/get.asciidoc +++ b/docs/api/index-patterns/get.asciidoc @@ -4,7 +4,7 @@ Get index pattern ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Retrieve a single {kib} index pattern by ID. diff --git a/docs/api/index-patterns/runtime-fields/create.asciidoc b/docs/api/index-patterns/runtime-fields/create.asciidoc index bd50a5a66dcb6..f1d1182bb83ac 100644 --- a/docs/api/index-patterns/runtime-fields/create.asciidoc +++ b/docs/api/index-patterns/runtime-fields/create.asciidoc @@ -4,7 +4,7 @@ Create runtime field ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Create a runtime field diff --git a/docs/api/index-patterns/runtime-fields/delete.asciidoc b/docs/api/index-patterns/runtime-fields/delete.asciidoc index 838954abe8b3f..5eac2058ecea7 100644 --- a/docs/api/index-patterns/runtime-fields/delete.asciidoc +++ b/docs/api/index-patterns/runtime-fields/delete.asciidoc @@ -4,7 +4,7 @@ Delete runtime field ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API]instead.] experimental[] Delete a runtime field from an index pattern. diff --git a/docs/api/index-patterns/runtime-fields/get.asciidoc b/docs/api/index-patterns/runtime-fields/get.asciidoc index 155267fa40e44..f087ee3e4c650 100644 --- a/docs/api/index-patterns/runtime-fields/get.asciidoc +++ b/docs/api/index-patterns/runtime-fields/get.asciidoc @@ -4,7 +4,7 @@ Get runtime field ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Get a runtime field diff --git a/docs/api/index-patterns/runtime-fields/update.asciidoc b/docs/api/index-patterns/runtime-fields/update.asciidoc index 9879b8b457329..5862e9a33cf20 100644 --- a/docs/api/index-patterns/runtime-fields/update.asciidoc +++ b/docs/api/index-patterns/runtime-fields/update.asciidoc @@ -4,7 +4,7 @@ Update runtime field ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Update an existing runtime field diff --git a/docs/api/index-patterns/runtime-fields/upsert.asciidoc b/docs/api/index-patterns/runtime-fields/upsert.asciidoc index cd15f8c63b5d8..b62ba4cd57659 100644 --- a/docs/api/index-patterns/runtime-fields/upsert.asciidoc +++ b/docs/api/index-patterns/runtime-fields/upsert.asciidoc @@ -4,7 +4,7 @@ Upsert runtime field ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Create or update an existing runtime field diff --git a/docs/api/index-patterns/update-fields.asciidoc b/docs/api/index-patterns/update-fields.asciidoc index e2655d557e929..78cc6c80ae79b 100644 --- a/docs/api/index-patterns/update-fields.asciidoc +++ b/docs/api/index-patterns/update-fields.asciidoc @@ -4,7 +4,7 @@ Update index pattern fields metadata ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Update fields presentation metadata, such as `count`, `customLabel`, and `format`. You can update multiple fields in one request. Updates diff --git a/docs/api/index-patterns/update.asciidoc b/docs/api/index-patterns/update.asciidoc index 809c01500b7f9..7c7b5f913e6d0 100644 --- a/docs/api/index-patterns/update.asciidoc +++ b/docs/api/index-patterns/update.asciidoc @@ -4,7 +4,7 @@ Update index pattern ++++ -deprecated::[8.0.0,Use <> instead.] +deprecated::[8.0.0,Use the {api-kibana}/group/endpoint-data-views[data views API] instead.] experimental[] Update part of an index pattern. Only the specified fields are updated in the index pattern. Unspecified fields stay as they are persisted. diff --git a/docs/api/machine-learning.asciidoc b/docs/api/machine-learning.asciidoc index 265896e6340df..33abb719da9f0 100644 --- a/docs/api/machine-learning.asciidoc +++ b/docs/api/machine-learning.asciidoc @@ -1,11 +1,4 @@ [[machine-learning-api]] == {ml-cap} APIs -//Manage {kib} saved objects, including dashboards, visualizations, and more. - -The following {ml} API is available: - -* <> -//to retrieve a single {kib} saved object by ID - -include::machine-learning/sync.asciidoc[] +For the latest details, refer to {api-kibana}/group/endpoint-ml[machine learning APIs]. diff --git a/docs/api/machine-learning/sync.asciidoc b/docs/api/machine-learning/sync.asciidoc deleted file mode 100644 index bd65ce56dd5d1..0000000000000 --- a/docs/api/machine-learning/sync.asciidoc +++ /dev/null @@ -1,95 +0,0 @@ -[[machine-learning-api-sync]] -=== Sync {ml} saved objects API -++++ -Sync {ml} saved objects -++++ - -Synchronizes {kib} saved objects for {ml} jobs and trained models. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/ml/common/openapi[open API specification]. -==== - -[[machine-learning-api-sync-request]] -==== {api-request-title} - -`GET :/api/ml/saved_objects/sync` - -`GET :/s//api/ml/saved_objects/sync` - -[[machine-learning-api-sync-prereq]] -==== {api-prereq-title} - -You must have `all` privileges for the *Machine Learning* feature in the *Analytics* section of the -<>. - -[[machine-learning-api-sync-desc]] -==== {api-description-title} - -This API runs automatically when you start {kib} and periodically thereafter. - -[[machine-learning-api-sync-path-params]] -==== {api-path-parms-title} - -`space_id`:: -(Optional, string) An identifier for the space. If `space_id` is not provided in -the URL the default space is used. - -[[machine-learning-api-sync-query-params]] -==== {api-query-parms-title} - -`simulate`:: -(Optional, boolean) When `true`, simulates the synchronization by only returning -the list actions that _would_ be performed. - -[[machine-learning-api-sync-response-body]] -==== {api-response-body-title} - -`datafeedsAdded`:: -(array) If a saved object for an {anomaly-job} is missing a {dfeed} identifier, -it is added. This list contains the {dfeed} identifiers and indicates whether -the synchronization was successful. - -`datafeedsRemoved`:: -(array) If a saved object for an anomaly detection job references a datafeed -that no longer exists, it is deleted. This list contains the {dfeed} identifiers -and indicates whether the synchronization was successful. - -`savedObjectsCreated`:: -(array) If saved objects are missing for {ml} jobs or trained models, they are -created. This list contains the job and model identifiers and indicates whether -the synchronization was successful. - -`savedObjectsDeleted`:: -(array) If saved objects exist for {ml} jobs or trained models that no longer -exist, they are deleted. This list contains the job and model identifiers and -indicates whether the synchronization was successful. - -[[machine-learning-api-sync-codes]] -==== {api-response-codes-title} - -`200`:: - Indicates a successful call. - -[[machine-learning-api-sync-example]] -==== {api-examples-title} - -Retrieve the list of {ml} saved objects that require synchronization: - -[source,sh] --------------------------------------------------- -GET api/ml/saved_objects/sync?simulate=true --------------------------------------------------- -// KIBANA - -If there are two jobs that need to be synchronized, for example, the API returns -the following response: - -[source,sh] --------------------------------------------------- -{"savedObjectsCreated":{"anomaly_detector":{"myjob1":{"success":true},"myjob2":{"success":true}}},"savedObjectsDeleted":{},"datafeedsAdded":{},"datafeedsRemoved":{}} --------------------------------------------------- - -To perform the synchronization, re-run the API and omit the `simulate` parameter. \ No newline at end of file diff --git a/docs/api/role-management/put-bulk.asciidoc b/docs/api/role-management/put-bulk.asciidoc index e41b836e26357..a11de47167e05 100644 --- a/docs/api/role-management/put-bulk.asciidoc +++ b/docs/api/role-management/put-bulk.asciidoc @@ -189,7 +189,7 @@ Grant full access to all features in the Default space for `my_kibana_role_1` an [source,sh] -------------------------------------------------- -$ curl -X PUT api/security/role +$ curl -X POST api/security/roles { "roles": { "my_kibana_role_1": { diff --git a/docs/api/saved-objects.asciidoc b/docs/api/saved-objects.asciidoc index c2f630c91cdb8..b8e7f00f54872 100644 --- a/docs/api/saved-objects.asciidoc +++ b/docs/api/saved-objects.asciidoc @@ -3,56 +3,7 @@ Manage {kib} saved objects, including dashboards, visualizations, and more. +For the latest details, refer to the {api-kibana}/group/endpoint-saved-objects[saved object API]. + WARNING: Do not write documents directly to the `.kibana` index. When you write directly to the `.kibana` index, the data becomes corrupted and permanently breaks future {kib} versions. - -The following saved objects APIs are available: - -* <> to retrieve sets of saved objects that you want to import into {kib} - -* <> to create sets of {kib} saved objects from a file created by the export API - -* <> to resolve errors from the import API - -* <> to rotate the encryption key for encrypted saved objects - -deprecated::[8.7.0,Use <> for managing data views] - -* <> to retrieve a single {kib} saved object by ID - -* <> to retrieve a single {kib} saved object by ID, using any legacy URL alias if it exists - -* <> to retrieve multiple {kib} saved objects by ID - -* <> to retrieve multiple {kib} saved objects by ID, using any legacy URL aliases if they exist - -* <> to retrieve a paginated set of {kib} saved objects by various conditions - -* <> to create {kib} saved objects - -* <> to create multiple {kib} saved objects - -* <> to update the attributes for existing {kib} saved objects - -* <> to update the attributes for multiple existing {kib} saved objects - -* <> to remove {kib} saved objects - -* <> to remove multiple {kib} saved objects - -include::saved-objects/export.asciidoc[] -include::saved-objects/import.asciidoc[] -include::saved-objects/resolve_import_errors.asciidoc[] -include::saved-objects/rotate_encryption_key.asciidoc[] -include::saved-objects/get.asciidoc[] -include::saved-objects/bulk_get.asciidoc[] -include::saved-objects/find.asciidoc[] -include::saved-objects/create.asciidoc[] -include::saved-objects/bulk_create.asciidoc[] -include::saved-objects/update.asciidoc[] -include::saved-objects/bulk_update.asciidoc[] -include::saved-objects/delete.asciidoc[] -include::saved-objects/bulk_delete.asciidoc[] -include::saved-objects/resolve.asciidoc[] -include::saved-objects/bulk_resolve.asciidoc[] - diff --git a/docs/api/saved-objects/bulk_create.asciidoc b/docs/api/saved-objects/bulk_create.asciidoc deleted file mode 100644 index 1e56735fa52a2..0000000000000 --- a/docs/api/saved-objects/bulk_create.asciidoc +++ /dev/null @@ -1,149 +0,0 @@ -[[saved-objects-api-bulk-create]] -=== Bulk create saved objects API -++++ -Bulk create saved objects -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Create multiple {kib} saved objects. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-bulk-create-request]] -==== Request - -`POST :/api/saved_objects/_bulk_create` - -`POST :/s//api/saved_objects/_bulk_create` - - -[[saved-objects-api-bulk-create-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL the default space is used. - -[[saved-objects-api-bulk-create-query-params]] -==== Query parameters - -`overwrite`:: - (Optional, boolean) When `true`, overwrites the document with the same ID. - -[[saved-objects-api-bulk-create-request-body]] -==== Request body - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`. - -`id`:: - (Optional, string) Specifies an ID instead of using a randomly generated ID. - -`attributes`:: - (Required, object) The data that you want to create. - -`references`:: - (Optional, array) Objects with `name`, `id`, and `type` properties that describe the other saved objects in the referenced object. To refer to the other saved object, use `name` in the attributes. Never use `id` to refer to the other saved object. `id` can be automatically updated during migrations, import, or export. - -`initialNamespaces`:: - (Optional, string array) Identifiers for the <> in which this object is created. If this is provided, the - object is created only in the explicitly defined spaces. If this is not provided, the object is created in the current space - (default behavior). -* For shareable object types (registered with `namespaceType: 'multiple'`): this option can be used to specify one or more spaces, including -the "All spaces" identifier (`'*'`). -* For isolated object types (registered with `namespaceType: 'single'` or `namespaceType: 'multiple-isolated'`): this option can only be -used to specify a single space, and the "All spaces" identifier (`'*'`) is not allowed. -* For global object types (registered with `namespaceType: 'agnostic'`): this option cannot be used. - -`version`:: - (Optional, number) Specifies the version. - -[[saved-objects-api-bulk-create-response-body]] -==== Response body - -`saved_objects`:: - (array) Top-level property the contains objects that represent the response for each of the requested objects. The order of the objects in the response is identical to the order of the objects in the request. - -Saved objects that are unable to persist are replaced with an error object. - -[[saved-objects-api-bulk-create-codes]] -==== Response code - -`200`:: - Indicates a successful call. Note, this HTTP response code indicates that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. See the example below for details. - -[[saved-objects-api-bulk-create-example]] -==== Example - -Create a {data-source} with the `my-pattern` ID, and a dashboard with the `my-dashboard` ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_bulk_create -[ - { - "type": "index-pattern", - "id": "my-pattern", - "attributes": { - "title": "my-pattern-*" - } - }, - { - "type": "dashboard", - "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", - "attributes": { - "title": "Look at my dashboard" - } - } -] --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "saved_objects": [ - { - "id": "my-pattern", - "type": "index-pattern", - "version": 1, - "attributes": { - "title": "my-pattern-*" - } - }, - { - "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", - "type": "dashboard", - "error": { - "statusCode": 409, - "message": "Saved object [dashboard/be3733a0-9efe-11e7-acb3-3dab96693fab] conflict" - } - } - ] -} --------------------------------------------------- - -There is already a saved object with the `my-dashboard` ID, so only the {data-source} is created. - -[[saved-objects-api-bulk-create-conflict-errors]] -==== Conflict errors - -Starting in {kib} 8.0, saved objects can exist in multiple spaces. As a result, you may encounter different types of conflict errors when -attempting to create an object: - -* *Regular conflict*: This is a 409 error without any metadata. It means an object of that type/ID already exists. This can be - overridden by using the `overwrite: true` option. -* *Unresolvable conflict*: This is a 409 error with `isNotOverwritable: true` in its metadata. It means an object of that type/ID already - exists in a different space, and it cannot be overridden with the given parameters. To successfully overwrite this object, you must do so - in at least one space where it exists. You can specify that using the `space_id` path parameter _or_ the `initialNamespaces` parameter. -* *Alias conflict*: This is a 409 error with a `spacesWithConflictingAliases` string array in its metadata. It means a conflicting - <> for this type/ID exists in the space(s) where you attempted to create this object. A conflicting - legacy URL alias is one that points to a different type/ID. To successfully create this object, you need to first use the - <> API to disable the problematic legacy URL alias(es). diff --git a/docs/api/saved-objects/bulk_delete.asciidoc b/docs/api/saved-objects/bulk_delete.asciidoc deleted file mode 100644 index dc1c218467a65..0000000000000 --- a/docs/api/saved-objects/bulk_delete.asciidoc +++ /dev/null @@ -1,115 +0,0 @@ -[[saved-objects-api-bulk-delete]] -=== Bulk delete object API -++++ -Bulk delete objects -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Remove multiple {kib} saved objects. - -WARNING: Once you delete a saved object, _it cannot be recovered_. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -==== Request - -`POST :/api/saved_objects/_bulk_delete` - -`POST :/s//api/saved_objects/_bulk_delete` - -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -==== Request body - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. - -`id`:: - (Required, string) The object ID to remove. - -==== Query parameters - -`force`:: - (Optional, boolean) When true, force delete objects that exist in multiple namespaces. Note that the option applies to the whole request. Use the <> to specify per-object delete behavior. -+ -TIP: Use this if you attempted to delete objects and received an HTTP 400 error with the following message: _"Unable to delete saved object that exists in multiple namespaces, use the `force` option to delete it anyway"_ -+ -WARNING: When you bulk delete objects that exist in multiple namespaces, the API also deletes <> that reference the object. These requests are batched to minimise the impact but they can place a heavy load on {kib}. Make sure you limit the number of objects that exist in multiple namespaces in a single bulk delete operation. - -==== Response code -`200`:: - Indicates a successful call. Note, this HTTP response code indicates that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. Refer to the example below for details. - -==== Response body - -`statuses`:: - (array) Top-level property that contains objects that represent the response for each of the requested objects. The order of the objects in the response is identical to the order of the objects in the request. - -Saved objects that cannot be removed will include an error object. - -==== Example - -Delete three saved objects, where one of them does not exist and one exists in multiple namespaces: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_bulk_delete -[ - { - type: 'visualization', - id: 'not an id', - }, - { - type: 'dashboard', - id: 'be3733a0-9efe-11e7-acb3-3dab96693fab', - { - type: 'index-pattern', - id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - } -] --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "statuses": [ - { - "success": false, - "id": "not an id", - "type": "visualization", - "error": { - "statusCode": 404, - "error": "Not Found", - "message": "Saved object [visualization/not an id] not found", - }, - }, - { - "success": true, - "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", - "type": "dashboard", - }, - { - "success": false, - "id": "d3d7af60-4c81-11e8-b3d7-01146121b73d", - "type": "index-pattern", - "error": { - "statusCode": 400, - "error": "Bad Request", - "message": "Unable to delete saved object id: d3d7af60-4c81-11e8-b3d7-01146121b73d, type: index-pattern that exists in multiple namespaces, use the \"force\" option to delete all saved objects: Bad Request", - }, - } - ] -} --------------------------------------------------- diff --git a/docs/api/saved-objects/bulk_get.asciidoc b/docs/api/saved-objects/bulk_get.asciidoc deleted file mode 100644 index 9807d7b499400..0000000000000 --- a/docs/api/saved-objects/bulk_get.asciidoc +++ /dev/null @@ -1,114 +0,0 @@ -[[saved-objects-api-bulk-get]] -=== Bulk get objects API -++++ -Bulk get objects -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Retrieve multiple {kib} saved objects by ID. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-bulk-get-request]] -==== Request - -`POST :/api/saved_objects/_bulk_get` - -`POST :/s//api/saved_objects/_bulk_get` - -[[saved-objects-api-bulk-get-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[saved-objects-api-bulk-get-request-body]] -==== Request Body - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. - -`id`:: - (Required, string) ID of the retrieved object. The ID includes the {kib} unique identifier or a custom identifier. - -`fields`:: - (Optional, array) The fields to return in the `attributes` key of the object response. - -`namespaces`:: - (Optional, string array) Identifiers for the <> in which to search for this object. If this is provided, the object - is searched for only in the explicitly defined spaces. If this is not provided, the object is searched for in the current space (default - behavior). -* For shareable object types (registered with `namespaceType: 'multiple'`): this option can be used to specify one or more spaces, including -the "All spaces" identifier (`'*'`). -* For isolated object types (registered with `namespaceType: 'single'` or `namespaceType: 'multiple-isolated'`): this option can only be -used to specify a single space, and the "All spaces" identifier (`'*'`) is not allowed. -* For global object types (registered with `namespaceType: 'agnostic'`): this option cannot be used. - -[[saved-objects-api-bulk-get-response-body]] -==== Response body - -`saved_objects`:: - (array) Top-level property containing objects that represent the response for each of the requested objects. The order of the objects in the response is identical to the order of the objects in the request. - -Saved objects that are unable to persist are replaced with an error object. - -[[saved-objects-api-bulk-get-body-codes]] -==== Response code - -`200`:: - Indicates a successful call. Note, this HTTP response code indicates that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. See the example below for details. - -[[saved-objects-api-bulk-get-body-example]] -==== Example - -Retrieve a {data-source} with the `my-pattern` ID, and a dashboard with the `my-dashboard` ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_bulk_get -[ - { - "type": "index-pattern", - "id": "my-pattern" - }, - { - "type": "dashboard", - "id": "be3733a0-9efe-11e7-acb3-3dab96693fab" - } -] --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "saved_objects": [ - { - "id": "my-pattern", - "type": "index-pattern", - "version": 1, - "attributes": { - "title": "my-pattern-*" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "error": { - "statusCode": 404, - "message": "Not found" - } - } - ] -} --------------------------------------------------- - -Only the {data-source} exists. diff --git a/docs/api/saved-objects/bulk_resolve.asciidoc b/docs/api/saved-objects/bulk_resolve.asciidoc deleted file mode 100644 index 6908b0f7b7dd0..0000000000000 --- a/docs/api/saved-objects/bulk_resolve.asciidoc +++ /dev/null @@ -1,196 +0,0 @@ -[[saved-objects-api-bulk-resolve]] -=== Bulk resolve objects API -++++ -Bulk resolve objects -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Retrieve multiple {kib} saved objects by ID, using any legacy URL aliases if they exist. - -Under certain circumstances, when Kibana is upgraded, saved object migrations may necessitate regenerating some object IDs to enable new -features. When an object's ID is regenerated, a legacy URL alias is created for that object, preserving its old ID. In such a scenario, that -object can be retrieved via the Bulk Resolve API using either its new ID or its old ID. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-bulk-resolve-request]] -==== Request - -`POST :/api/saved_objects/_bulk_resolve` - -`POST :/s//api/saved_objects/_bulk_resolve` - -[[saved-objects-api-bulk-resolve-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[saved-objects-api-bulk-resolve-request-body]] -==== Request Body - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. - -`id`:: - (Required, string) ID of the retrieved object. The ID includes the {kib} unique identifier or a custom identifier. - -[[saved-objects-api-bulk-resolve-response-body]] -==== Response body - -`resolved_objects`:: - (array) Top-level property containing objects that represent the response for each of the requested objects. The order of the objects in the response is identical to the order of the objects in the request. - -Saved objects that {kib} fails to find are replaced with an error object and an "exactMatch" outcome. The rationale behind the outcome is -that "exactMatch" is the default outcome, and the outcome only changes if an alias is found. This behavior is unique to `_bulk_resolve`; the -<> will return only an HTTP error instead. - -[[saved-objects-api-bulk-resolve-body-codes]] -==== Response code - -`200`:: - Indicates a successful call. Note, this HTTP response code indicates that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. See the example below for details. - -[[saved-objects-api-bulk-resolve-body-example]] -==== Example - -Retrieve an index pattern with the `my-pattern` ID, and a dashboard with the `my-dashboard` ID: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_bulk_resolve -[ - { - "type": "index-pattern", - "id": "my-pattern" - }, - { - "type": "dashboard", - "id": "be3733a0-9efe-11e7-acb3-3dab96693fab" - } -] --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "resolved_objects": [ - { - "saved_object": { - "id": "my-pattern", - "type": "index-pattern", - "version": 1, - "attributes": { - "title": "my-pattern-*" - } - }, - "outcome": "exactMatch" - }, - { - "saved_object": { - "id": "my-dashboard", - "type": "dashboard", - "error": { - "statusCode": 404, - "message": "Not found" - } - }, - "outcome": "exactMatch" - } - ] -} --------------------------------------------------- - -Only the index pattern exists, the dashboard was not found. - -[NOTE] -==== -In addition to `saved_object`, several fields can be returned: - -* `outcome` (required string) -- One of the following values: - - `"exactMatch"` -- One document exactly matched the given ID. - - `"aliasMatch"` -- One document with a legacy URL alias matched the given ID; in this case the `saved_object.id` field is different than - the given ID. - - `"conflict"` -- Two documents matched the given ID, one was an exact match and another with a legacy URL alias; in this case the - `saved_object` object is the exact match, and the `saved_object.id` field is the same as the given ID. -* `alias_target_id` (optional string) -- If the `outcome` is `"aliasMatch"` or `"conflict"`, the response will also include the - `alias_target_id` field. This means that an alias was found for another object, and it describes that other object's ID. -* `alias_purpose` (optional string) -- If the `outcome` is `"aliasMatch"` or `"conflict"`, the response will also include the - `alias_purpose` field. This indicates why the alias was created, and it can be used to change the client behavior accordingly. One of the - following values: `"savedObjectConversion"`, `"savedObjectImport"` - -Client-side code uses these fields to behave differently depending on the `outcome` -- <>. -==== - -Retrieve a dashboard object in the `testspace` by ID: - -[source,sh] --------------------------------------------------- -$ curl -X GET s/testspace/api/saved_objects/resolve/dashboard/7adfa750-4c81-11e8-b3d7-01146121b73d --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "resolved_objects": [ - { - "saved_object": { - "id": "7adfa750-4c81-11e8-b3d7-01146121b73d", - "type": "dashboard", - "updated_at": "2019-07-23T00:11:07.059Z", - "version": "WzQ0LDFd", - "attributes": { - "title": "[Flights] Global Flight Dashboard", - "hits": 0, - "description": "Analyze mock flight data for ES-Air, Logstash Airways, Kibana Airlines and JetBeats", - "panelsJSON": "[ . . . ]", - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "version": 1, - "timeRestore": true, - "timeTo": "now", - "timeFrom": "now-24h", - "refreshInterval": { - "display": "15 minutes", - "pause": false, - "section": 2, - "value": 900000 - }, - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}" - } - }, - "references": [ - { - "name": "panel_0", - "type": "visualization", - "id": "aeb212e0-4c84-11e8-b3d7-01146121b73d" - }, - . . . - { - "name": "panel_18", - "type": "visualization", - "id": "ed78a660-53a0-11e8-acbd-0be0ad9d822b" - } - ], - "migrationVersion": { - "dashboard": "7.0.0" - } - }, - "outcome": "conflict", - "alias_target_id": "05becb88-e214-439a-a2ac-15fc783b5d01" - } - ] -} --------------------------------------------------- diff --git a/docs/api/saved-objects/bulk_update.asciidoc b/docs/api/saved-objects/bulk_update.asciidoc deleted file mode 100644 index dfc16f87c9d4c..0000000000000 --- a/docs/api/saved-objects/bulk_update.asciidoc +++ /dev/null @@ -1,120 +0,0 @@ -[[saved-objects-api-bulk-update]] -=== Bulk update object API -++++ -Bulk update objects -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Update the attributes for multiple existing {kib} saved objects. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-bulk-update-request]] -==== Request - -`PUT :/api/saved_objects/_bulk_update` - -`PUT :/s//api/saved_objects/_bulk_update` - -[[saved-objects-api-bulk-update-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[saved-objects-api-bulk-update-request-body]] -==== Request body - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. - -`id`:: - (Required, string) The object ID to update. - -`attributes`:: - (Required, object) The data to persist. -+ -WARNING: When you update, attributes are not validated, which allows you to pass arbitrary and ill-formed data into the API and break {kib}. Make sure any data that you send to the API is properly formed. - -`references`:: - (Optional, array) Objects with `name`, `id`, and `type` properties that describe the other saved objects this object references. To refer to the other saved object, use `name` in the attributes, but never the `id`, which automatically updates during migrations or import/export. - -`version`:: - (Optional, number) Ensures the version matches that of the persisted object. - -`namespace`:: (Optional, string) Identifier for the space in which to update this object. If this is defined, it will supersede the space ID that is in the URL. - -[[saved-objects-api-bulk-update-codes]] -==== Response code - -`200`:: - Indicates a successful call. Note, this HTTP response code indicates that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. Refer to the example below for details. - -[[saved-objects-api-bulk-update-example]] -==== Example - -Update three saved objects, where one of them does not exist: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/saved_objects/_bulk_update -[ - { - type: 'visualization', - id: 'not an id', - attributes: { - title: 'An existing visualization', - }, - }, - { - type: 'dashboard', - id: 'be3733a0-9efe-11e7-acb3-3dab96693fab', - attributes: { - title: 'An existing dashboard', - }, - { - type: 'index-pattern', - id: 'logstash-*', - attributes: { title: 'my-logstash-pattern' } - } -] --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "type": "visualization", - "id": "not an id", - "error": { - "statusCode": 404, - "error": "Not Found", - "message": "Saved object [visualization/not an id] not found", - }, - }, - { - "type": "dashboard", - "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", - "version": 2, - "attributes": { - "title": "An existing dashboard", - }, - }, - { - "type": "index-pattern", - "id": "logstash-*", - "attributes": { - "title": "my-logstash-pattern", - } - } -] --------------------------------------------------- diff --git a/docs/api/saved-objects/create.asciidoc b/docs/api/saved-objects/create.asciidoc deleted file mode 100644 index 154a58bb72025..0000000000000 --- a/docs/api/saved-objects/create.asciidoc +++ /dev/null @@ -1,114 +0,0 @@ -[[saved-objects-api-create]] -=== Create saved objects API -++++ -Create saved objects -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Create {kib} saved objects. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-create-request]] -==== Request - -`POST :/api/saved_objects/` - -`POST :/api/saved_objects//` - -`POST :/s//api/saved_objects/` - -`POST :/s//api/saved_objects//` - -[[saved-objects-api-create-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -``:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`. - -``:: - (Optional, string) Specifies an ID instead of using a randomly generated ID. - -[[saved-objects-api-create-query-params]] -==== Query parameters - -`overwrite`:: - (Optional, boolean) When true, overwrites the document with the same ID. - -[[saved-objects-api-create-request-body]] -==== Request body - -`attributes`:: - (Required, object) The data that you want to create. -+ -WARNING: When you create saved objects, attributes are not validated, which allows you to pass -arbitrary and ill-formed data into the API that can break {kib}. Make sure -any data that you send to the API is properly formed. - -`references`:: - (Optional, array) Objects with `name`, `id`, and `type` properties that describe the other saved objects that this object references. Use `name` in attributes to refer to the other saved object, but never the `id`, which can update automatically during migrations or import/export. - -`initialNamespaces`:: - (Optional, string array) Identifiers for the <> in which this object is created. If this is provided, the - object is created only in the explicitly defined spaces. If this is not provided, the object is created in the current space - (default behavior). -* For shareable object types (registered with `namespaceType: 'multiple'`): this option can be used to specify one or more spaces, including -the "All spaces" identifier (`'*'`). -* For isolated object types (registered with `namespaceType: 'single'` or `namespaceType: 'multiple-isolated'`): this option can only be -used to specify a single space, and the "All spaces" identifier (`'*'`) is not allowed. -* For global object types (registered with `namespaceType: 'agnostic'): this option cannot be used. - -[[saved-objects-api-create-request-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -`409`:: - Indicates a <>. - -[[saved-objects-api-create-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X POST api/index_patterns/index-pattern/my-pattern -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "attributes": { - "title": "my-pattern-*" - } -}' --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "my-pattern", <1> - "type": "index-pattern", - "version": 1, - "attributes": { - "title": "my-pattern-*" - } -} --------------------------------------------------- - -<1> When `my-pattern` is unspecified in the path, a unique ID is automatically generated. - -[[saved-objects-api-create-conflict-errors]] -==== Conflict errors - -Starting in {kib} 8.0, saved objects can exist in multiple spaces. As a result, you may encounter different types of conflict errors when -attempting to create an object. If you encounter a 409 error that cannot be overridden by using the `overwrite: true` option, you are likely -hitting a different type of conflict error. The Create API response is limited and does not include additional metadata. You can get more -details about this error by using the <> instead. diff --git a/docs/api/saved-objects/delete.asciidoc b/docs/api/saved-objects/delete.asciidoc deleted file mode 100644 index 6a335ae3323d0..0000000000000 --- a/docs/api/saved-objects/delete.asciidoc +++ /dev/null @@ -1,60 +0,0 @@ -[[saved-objects-api-delete]] -=== Delete object API -++++ -Delete object -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Remove {kib} saved objects. - -WARNING: Once you delete a saved object, _it cannot be recovered_. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-delete-request]] -==== Request - -`DELETE :/api/saved_objects//` - -`DELETE :/s//api/saved_objects//` - -[[saved-objects-api-delete-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. - -`id`:: - (Required, string) The object ID that you want to remove. - -[[saved-objects-api-delete-query-params]] -==== Query parameters - -`force`:: - (Optional, boolean) When true, forces an object to be deleted if it exists in multiple namespaces. -+ -TIP: Use this if you attempted to delete an object and received an HTTP 400 error with the following message: _"Unable to delete saved object that exists in multiple namespaces, use the `force` option to delete it anyway"_ - -[[saved-objects-api-delete-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Example - -Delete a {data-source} object with the `my-pattern` ID: - -[source,sh] --------------------------------------------------- -$ curl -X DELETE api/index_patterns/index-pattern/my-pattern --------------------------------------------------- -// KIBANA diff --git a/docs/api/saved-objects/export.asciidoc b/docs/api/saved-objects/export.asciidoc deleted file mode 100644 index 237e54af3444b..0000000000000 --- a/docs/api/saved-objects/export.asciidoc +++ /dev/null @@ -1,142 +0,0 @@ -[[saved-objects-api-export]] -=== Export objects API -++++ -Export objects -++++ - -experimental[] Retrieve sets of saved objects that you want to import into {kib}. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-export-request]] -==== Request - -`POST :/api/saved_objects/_export` - -`POST :/s//api/saved_objects/_export` - -[[saved-objects-api-export-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[saved-objects-api-export-request-request-body]] -==== Request body - -`type`:: - (Optional, array|string) The saved object types to include in the export. Use `*` to export all the types. - -`objects`:: - (Optional, array) A list of objects to export. - -`includeReferencesDeep`:: - (Optional, boolean) Includes all of the referenced objects in the exported objects. - -`excludeExportDetails`:: - (Optional, boolean) Do not add export details entry at the end of the stream. - -TIP: You must include `type` or `objects` in the request body. - -NOTE: The <> configuration setting -limits the number of saved objects which may be exported. - -[[saved-objects-api-export-request-response-body]] -==== Response body - -The format of the response body is newline delimited JSON. Each exported object is exported as a valid JSON record and separated by the newline character '\n'. - -When `excludeExportDetails=false` (the default) we append an export result details record at the end of the file after all the saved object records. The export result details object has the following format: - -[source,json] --------------------------------------------------- -{ - "exportedCount": 27, - "missingRefCount": 2, - "missingReferences": [ - { "id": "an-id", "type": "visualisation"}, - { "id": "another-id", "type": "index-pattern"} - ] -} --------------------------------------------------- - -[[export-objects-api-create-request-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[ssaved-objects-api-create-example]] -==== Examples - -Export all {data-source} saved objects: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_export -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "type": "index-pattern" -}' --------------------------------------------------- -// KIBANA - -Export all {data-source} saved objects and exclude the export summary from the stream: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_export -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "type": "index-pattern", - "excludeExportDetails": true -}' --------------------------------------------------- -// KIBANA - -Export a specific saved object: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_export -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "objects": [ - { - "type": "dashboard", - "id": "be3733a0-9efe-11e7-acb3-3dab96693fab" - } - ] -}' --------------------------------------------------- -// KIBANA - -Export a specific saved object and it's related objects: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_export -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "objects": [ - { - "type": "dashboard", - "id": "be3733a0-9efe-11e7-acb3-3dab96693fab" - } - ], - "includeReferencesDeep": true -}' --------------------------------------------------- -// KIBANA - -Export all exportable saved objects and their related objects: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_export -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d ' -{ - "type": "*", - "includeReferencesDeep": true -}' --------------------------------------------------- -// KIBANA \ No newline at end of file diff --git a/docs/api/saved-objects/find.asciidoc b/docs/api/saved-objects/find.asciidoc deleted file mode 100644 index 8efc20cb11a90..0000000000000 --- a/docs/api/saved-objects/find.asciidoc +++ /dev/null @@ -1,127 +0,0 @@ -[[saved-objects-api-find]] -=== Find objects API -++++ -Find objects -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Retrieve a paginated set of {kib} saved objects by various conditions. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-find-request]] -==== Request - -`GET :/api/saved_objects/_find` - -`GET :/s//api/saved_objects/_find` - -[[saved-objects-api-find-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -[[saved-objects-api-find-query-params]] -==== Query Parameters - -`type`:: - (Required, array|string) The saved object types to include in the export. - -`per_page`:: - (Optional, number) The number of objects to return per page. - -`page`:: - (Optional, number) The page of objects to return. - -`search`:: - (Optional, string) An Elasticsearch {ref}/query-dsl-simple-query-string-query.html[simple_query_string] query that filters the objects in the response. - -`default_search_operator`:: - (Optional, string) The default operator to use for the `simple_query_string`. - -`search_fields`:: - (Optional, array|string) The fields to perform the `simple_query_string` parsed query against. - -`fields`:: - (Optional, array|string) The fields to return in the `attributes` key of the response. - -`sort_field`:: - (Optional, string) Sorts the response. Includes "root" and "type" fields. "root" fields exist for all saved objects, such as "updated_at". - "type" fields are specific to an object type, such as fields returned in the `attributes` key of the response. When a single type is - defined in the `type` parameter, the "root" and "type" fields are allowed, and validity checks are made in that order. When multiple types - are defined in the `type` parameter, only "root" fields are allowed. - -`has_reference`:: - (Optional, object) Filters to objects that have a relationship with the type and ID combination. - -`has_reference_operator`:: - (Optional, string) The operator to use for the `has_reference` parameter. Either `OR` or `AND`. Defaults to `OR`. - -`has_no_reference`:: - (Optional, object) Filters to objects that do not have a relationship with the type and ID combination. - -`has_no_reference_operator`:: - (Optional, string) The operator to use for the `has_no_reference` parameter. Either `OR` or `AND`. Defaults to `OR`. - -`filter`:: - (Optional, string) The filter is a KQL string with the caveat that if you filter with an attribute from your saved object type, - it should look like that: `savedObjectType.attributes.title: "myTitle"`. However, If you use a root attribute of a saved - object such as `updated_at`, you will have to define your filter like that: `savedObjectType.updated_at > 2018-12-22`. - -`aggs`:: - (Optional, string) **experimental** An aggregation structure, serialized as a string. The field format is similar to `filter`, meaning - that to use a saved object type attribute in the aggregation, the `savedObjectType.attributes.title`: "myTitle"` format - must be used. For root fields, the syntax is `savedObjectType.rootField` - -NOTE: As objects change in {kib}, the results on each page of the response also -change. Use the find API for traditional paginated results, but avoid using it to export large amounts of data. - -[[saved-objects-api-find-request-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Examples - -Find {data-sources} with titles that start with `my`: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/saved_objects/_find?type=index-pattern&search_fields=title&search=my* --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "total": 1, - "data": [ - { - "id": "my-pattern", - "type": "index-pattern", - "version": 1, - "attributes": { - "title": "my-pattern-*" - } - } - ] -} --------------------------------------------------- - -For parameters that accept multiple values (e.g. `fields`), repeat the -query parameter for each value: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/saved_objects/_find?fields=id&fields=title --------------------------------------------------- -// KIBANA diff --git a/docs/api/saved-objects/get.asciidoc b/docs/api/saved-objects/get.asciidoc deleted file mode 100644 index 2e7a5f949832b..0000000000000 --- a/docs/api/saved-objects/get.asciidoc +++ /dev/null @@ -1,122 +0,0 @@ -[[saved-objects-api-get]] -=== Get object API -++++ -Get object -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Retrieve a single {kib} saved object by ID. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-get-request]] -==== Request - -`GET :/api/saved_objects//` - -`GET :/s//api/saved_objects//` - -[[saved-objects-api-get-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. - -`id`:: - (Required, string) The ID of the object to retrieve. - -[[saved-objects-api-get-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[saved-objects-api-get-example]] -==== Example - -Retrieve the {data-source} object with the `my-pattern` ID: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/index_patterns/index-pattern/my-pattern --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "my-pattern", - "type": "index-pattern", - "version": 1, - "attributes": { - "title": "my-pattern-*" - } -} --------------------------------------------------- - -Retrieve a dashboard object in the `testspace` by ID: - -[source,sh] --------------------------------------------------- -$ curl -X GET s/testspace/api/saved_objects/dashboard/7adfa750-4c81-11e8-b3d7-01146121b73d --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "7adfa750-4c81-11e8-b3d7-01146121b73d", - "type": "dashboard", - "updated_at": "2019-07-23T00:11:07.059Z", - "version": "WzQ0LDFd", - "attributes": { - "title": "[Flights] Global Flight Dashboard", - "hits": 0, - "description": "Analyze mock flight data for ES-Air, Logstash Airways, Kibana Airlines and JetBeats", - "panelsJSON": "[ . . . ]", - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "version": 1, - "timeRestore": true, - "timeTo": "now", - "timeFrom": "now-24h", - "refreshInterval": { - "display": "15 minutes", - "pause": false, - "section": 2, - "value": 900000 - }, - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}" - } - }, - "references": [ - { - "name": "panel_0", - "type": "visualization", - "id": "aeb212e0-4c84-11e8-b3d7-01146121b73d" - }, - . . . - { - "name": "panel_18", - "type": "visualization", - "id": "ed78a660-53a0-11e8-acbd-0be0ad9d822b" - } - ], - "migrationVersion": { - "dashboard": "7.0.0" - } -} --------------------------------------------------- diff --git a/docs/api/saved-objects/import.asciidoc b/docs/api/saved-objects/import.asciidoc deleted file mode 100644 index 85a03c8b1a3a3..0000000000000 --- a/docs/api/saved-objects/import.asciidoc +++ /dev/null @@ -1,399 +0,0 @@ -[[saved-objects-api-import]] -=== Import objects API -++++ -Import objects -++++ - -experimental[] Create sets of {kib} saved objects from a file created by the export API. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -==== Compatibility across versions -Saved objects can only be imported into the same version, a newer minor on the same major, or the next major. Exported saved objects are not backwards compatible and cannot be imported into an older version of {kib}. See the table below for compatibility examples: - -|======= -| Exporting version | Importing version | Compatible? -| 6.7.x | 6.8.x | Yes -| 6.x.x | 7.x.x | Yes -| 7.x.x | 8.x.x | Yes -| 7.1.x | 7.15.x | Yes -| 7.x.x | 6.x.x | No -| 7.15.x | 7.1.x | No -| 6.x.x | 8.x.x | No -|======= - -[[saved-objects-api-import-request]] -==== Request - -`POST :/api/saved_objects/_import` - -`POST :/s//api/saved_objects/_import` - -[[saved-objects-api-import-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the <>. If `space_id` is not provided in the URL, the default space is used. - -[[saved-objects-api-import-query-params]] -==== Query parameters - -`createNewCopies`:: - (Optional, boolean) Creates copies of saved objects, regenerates each object ID, and resets the origin. When used, potential conflict - errors are avoided. -+ -NOTE: This option cannot be used with the `overwrite` and `compatibilityMode` options. - -`overwrite`:: - (Optional, boolean) Overwrites saved objects when they already exist. When used, potential conflict errors are automatically resolved by - overwriting the destination object. -+ -NOTE: This option cannot be used with the `createNewCopies` option. - -`compatibilityMode`:: - (Optional, boolean) Applies various adjustments to the saved objects that are being imported to maintain compatibility between different {kib} - versions. Use this option only if you encounter issues with imported saved objects. -+ -NOTE: This option cannot be used with the `createNewCopies` option. - -[[saved-objects-api-import-request-body]] -==== Request body - -The request body must include the multipart/form-data type. - -`file`:: - A file exported using the export API. -+ -NOTE: The <> configuration setting -limits the number of saved objects which may be included in this file. Similarly, the -<> setting limits the overall -size of the file that can be imported. - -[[saved-objects-api-import-response-body]] -==== Response body - -`success`:: - (boolean) Indicates when the import was successfully completed. When set to `false`, some objects may not have been created. For - additional information, refer to the `errors` and `successResults` properties. - -`successCount`:: - (number) Indicates the number of successfully imported records. - -`errors`:: - (Optional, array) Indicates the import was unsuccessful and specifies the objects that failed to import. -+ -NOTE: One object may result in multiple errors, which requires separate steps to resolve. For instance, a `missing_references` error and -`conflict` error). - -`successResults`:: - (Optional, array) Indicates the objects that are successfully imported, with any metadata if applicable. -+ -NOTE: Objects are only created when all resolvable errors are addressed, including conflicts and missing references. For information on how -to resolve errors, refer to the <>. - -[[saved-objects-api-import-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[saved-objects-api-import-example]] -==== Examples - -[[saved-objects-api-import-example-1]] -===== Successful import with `createNewCopies` enabled - -Import a {data-source} and dashboard: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_import?createNewCopies=true -H "kbn-xsrf: true" --form file=@file.ndjson --------------------------------------------------- -// KIBANA - -The `file.ndjson` file contains the following: - -[source,sh] --------------------------------------------------- -{"type":"index-pattern","id":"my-pattern","attributes":{"title":"my-pattern-*"}} -{"type":"dashboard","id":"my-dashboard","attributes":{"title":"Look at my dashboard"}} --------------------------------------------------- - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "success": true, - "successCount": 2, - "successResults": [ - { - "id": "my-pattern", - "type": "index-pattern", - "destinationId": "4aba3770-0d04-45e1-9e34-4cf0fd2165ae", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "destinationId": "c31d1eca-9bc0-4a81-b5f9-30c442824c48", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] -} --------------------------------------------------- - -The result indicates a successful import, and both objects are created. Since these objects are created as new copies, each entry in the -`successResults` array includes a `destinationId` attribute. - -[[saved-objects-api-import-example-2]] -===== Successful import with `createNewCopies` disabled - -Import a {data-source} and dashboard: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_import -H "kbn-xsrf: true" --form file=@file.ndjson --------------------------------------------------- -// KIBANA - -The `file.ndjson` file contains the following: - -[source,sh] --------------------------------------------------- -{"type":"index-pattern","id":"my-pattern","attributes":{"title":"my-pattern-*"}} -{"type":"dashboard","id":"my-dashboard","attributes":{"title":"Look at my dashboard"}} --------------------------------------------------- - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "success": true, - "successCount": 2, - "successResults": [ - { - "id": "my-pattern", - "type": "index-pattern", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] -} --------------------------------------------------- - -The result indicates a successful import, and both objects are created. - -[[saved-objects-api-import-example-3]] -===== Failed import with conflict errors - -Import a {data-source}, visualization, *Canvas* workpad, and dashboard that include saved objects: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_import -H "kbn-xsrf: true" --form file=@file.ndjson --------------------------------------------------- -// KIBANA - -The `file.ndjson` file contains the following: - -[source,sh] --------------------------------------------------- -{"type":"index-pattern","id":"my-pattern","attributes":{"title":"my-pattern-*"}} -{"type":"visualization","id":"my-vis","attributes":{"title":"Look at my visualization"}} -{"type":"canvas-workpad","id":"my-canvas","attributes":{"name":"Look at my canvas"}} -{"type":"dashboard","id":"my-dashboard","attributes":{"title":"Look at my dashboard"}} --------------------------------------------------- - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "success": false, - "successCount": 1, - "errors": [ - { - "id": "my-pattern", - "type": "index-pattern", - "title": "my-pattern-*", - "error": { - "type": "conflict" - }, - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - }, - { - "id": "my-visualization", - "type": "my-vis", - "title": "Look at my visualization", - "error": { - "type": "conflict", - "destinationId": "another-vis" - }, - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "title": "Look at my canvas", - "error": { - "type": "ambiguous_conflict", - "destinations": [ - { - "id": "another-canvas", - "title": "Look at another canvas", - "updatedAt": "2020-07-08T16:36:32.377Z" - }, - { - "id": "yet-another-canvas", - "title": "Look at yet another canvas", - "updatedAt": "2020-07-05T12:29:54.849Z" - } - ] - }, - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - } - ], - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] -} --------------------------------------------------- - -The result indicates an unsuccessful import because the {data-source}, visualization, *Canvas* workpad, and dashboard resulted in a conflict -error: - -* A {data-source} with the same ID already exists, which resulted in a conflict error. To resolve the error, overwrite the existing object, -or skip the object. - -* A visualization with a different ID, but the same origin already exists, which resulted in a conflict error. The `destinationId` field -contains the `id` of the other visualization, which caused the conflict. The behavior is added to make sure that new objects that can be -shared between <> behave in a similar way as legacy non-shareable objects. When a shareable object is exported and then -imported into a new space, it retains its origin so that the conflicts are encountered as expected. To resolve, overwrite the specified -destination object, or skip the object. - -* Two *Canvas* workpads with different IDs, but the same origin, already exist, which resulted in a conflict error. The `destinations` array -describes the other workpads which caused the conflict. When a shareable object is exported, imported into a new space, then shared to -another space where an object of the same origin exists, the conflict error occurs. To resolve, pick a destination object to overwrite, or -skip the object. - -Objects are created when the error is resolved using the <>. - -[[saved-objects-api-import-example-4]] -===== Failed import with missing reference errors - -Import a visualization and dashboard when the {data-source} for the visualization doesn't exist: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_import -H "kbn-xsrf: true" --form file=@file.ndjson --------------------------------------------------- -// KIBANA - -The `file.ndjson` file contains the following: - -[source,sh] --------------------------------------------------- -{"type":"visualization","id":"my-vis","attributes":{"title":"Look at my visualization"},"references":[{"name":"ref_0","type":"index-pattern","id":"my-pattern-*"}]} -{"type":"search","id":"my-search","attributes":{"title":"Look at my search"},"references":[{"name":"ref_0","type":"index-pattern","id":"another-pattern-*"}]} -{"type":"dashboard","id":"my-dashboard","attributes":{"title":"Look at my dashboard"},"references":[{"name":"ref_0","type":"visualization","id":"my-vis"},{"name":"ref_1","type":"search","id":"my-search"}]} --------------------------------------------------- - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "success": false, - "successCount": 1, - "errors": [ - { - "id": "my-vis", - "type": "visualization", - "title": "Look at my visualization", - "error": { - "type": "missing_references", - "references": [ - { - "type": "index-pattern", - "id": "my-pattern-*" - } - ] - }, - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-search", - "type": "search", - "title": "Look at my search", - "error": { - "type": "missing_references", - "references": [ - { - "type": "index-pattern", - "id": "another-pattern-*" - } - ] - }, - "meta": { - "icon": "searchApp", - "title": "Look at my search" - } - } - ], - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] -} --------------------------------------------------- - -The result indicates an unsuccessful import because the visualization and search resulted in a missing references error. - -Objects are created when the errors are resolved using the <>. diff --git a/docs/api/saved-objects/resolve.asciidoc b/docs/api/saved-objects/resolve.asciidoc deleted file mode 100644 index 7d9176145fbcc..0000000000000 --- a/docs/api/saved-objects/resolve.asciidoc +++ /dev/null @@ -1,152 +0,0 @@ -[[saved-objects-api-resolve]] -=== Resolve object API -++++ -Resolve object -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Retrieve a single {kib} saved object by ID, using any legacy URL alias if it exists. - -Under certain circumstances, when Kibana is upgraded, saved object migrations may necessitate regenerating some object IDs to enable new -features. When an object's ID is regenerated, a legacy URL alias is created for that object, preserving its old ID. In such a scenario, that -object can be retrieved via the Resolve API using either its new ID or its old ID. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-resolve-request]] -==== Request - -`GET :/api/saved_objects/resolve//` - -`GET :/s//api/saved_objects/resolve//` - -[[saved-objects-api-resolve-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. - -`id`:: - (Required, string) The ID of the object to retrieve. - -[[saved-objects-api-resolve-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[saved-objects-api-resolve-example]] -==== Example - -Retrieve the {data-source} object with the `my-pattern` ID: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/saved_objects/resolve/index-pattern/my-pattern --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "saved_object": { - "id": "my-pattern", - "type": "index-pattern", - "version": 1, - "attributes": { - "title": "my-pattern-*" - } - }, - "outcome": "exactMatch" -} --------------------------------------------------- - -[NOTE] -==== -In addition to `saved_object`, several fields can be returned: - -* `outcome` (required string) -- One of the following values: - - `"exactMatch"` -- One document exactly matched the given ID. - - `"aliasMatch"` -- One document with a legacy URL alias matched the given ID; in this case the `saved_object.id` field is different than - the given ID. - - `"conflict"` -- Two documents matched the given ID, one was an exact match and another with a legacy URL alias; in this case the - `saved_object` object is the exact match, and the `saved_object.id` field is the same as the given ID. -* `alias_target_id` (optional string) -- If the `outcome` is `"aliasMatch"` or `"conflict"`, the response will also include the - `alias_target_id` field. This means that an alias was found for another object, and it describes that other object's ID. -* `alias_purpose` (optional string) -- If the `outcome` is `"aliasMatch"` or `"conflict"`, the response will also include the - `alias_purpose` field. This indicates why the alias was created, and it can be used to change the client behavior accordingly. One of the - following values: `"savedObjectConversion"`, `"savedObjectImport"` - -Client-side code uses these fields to behave differently depending on the `outcome` -- <>. -==== - -Retrieve a dashboard object in the `testspace` by ID: - -[source,sh] --------------------------------------------------- -$ curl -X GET s/testspace/api/saved_objects/resolve/dashboard/7adfa750-4c81-11e8-b3d7-01146121b73d --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "saved_object": { - "id": "7adfa750-4c81-11e8-b3d7-01146121b73d", - "type": "dashboard", - "updated_at": "2019-07-23T00:11:07.059Z", - "version": "WzQ0LDFd", - "attributes": { - "title": "[Flights] Global Flight Dashboard", - "hits": 0, - "description": "Analyze mock flight data for ES-Air, Logstash Airways, Kibana Airlines and JetBeats", - "panelsJSON": "[ . . . ]", - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "version": 1, - "timeRestore": true, - "timeTo": "now", - "timeFrom": "now-24h", - "refreshInterval": { - "display": "15 minutes", - "pause": false, - "section": 2, - "value": 900000 - }, - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}" - } - }, - "references": [ - { - "name": "panel_0", - "type": "visualization", - "id": "aeb212e0-4c84-11e8-b3d7-01146121b73d" - }, - . . . - { - "name": "panel_18", - "type": "visualization", - "id": "ed78a660-53a0-11e8-acbd-0be0ad9d822b" - } - ], - "migrationVersion": { - "dashboard": "7.0.0" - } - }, - "outcome": "conflict", - "alias_target_id": "05becb88-e214-439a-a2ac-15fc783b5d01" -} --------------------------------------------------- diff --git a/docs/api/saved-objects/resolve_import_errors.asciidoc b/docs/api/saved-objects/resolve_import_errors.asciidoc deleted file mode 100644 index f537eaa1d4de5..0000000000000 --- a/docs/api/saved-objects/resolve_import_errors.asciidoc +++ /dev/null @@ -1,245 +0,0 @@ -[[saved-objects-api-resolve-import-errors]] -=== Resolve import errors API -++++ -Resolve import errors -++++ - -experimental[] Resolve errors from the <>. - -To resolve errors, you can: - -* Retry certain saved objects - -* Overwrite specific saved objects - -* Change references to different saved objects - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-resolve-import-errors-request]] -==== Request - -`POST :/api/saved_objects/_resolve_import_errors` - -`POST :/s//api/saved_objects/_resolve_import_errors` - -[[saved-objects-api-resolve-import-errors-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the <>. When `space_id` is unspecified in the URL, the default space is used. - -[[saved-objects-api-resolve-import-errors-query-params]] -==== Query parameters - -`createNewCopies`:: - (Optional, boolean) Creates copies of the saved objects, regenerates each object ID, and resets the origin. When enabled during the - initial import, also enable when resolving import errors. - -`compatibilityMode`:: - (Optional, boolean) Applies various adjustments to the saved objects that are being imported to maintain compatibility between different {kib} - versions. When enabled during the initial import, also enable when resolving import errors. -+ -NOTE: This option cannot be used with the `createNewCopies` option. - -[[saved-objects-api-resolve-import-errors-request-body]] -==== Request body - -The request body must include the multipart/form-data type. - -`file`:: - The same file given to the import API. - -`retries`:: - (Required, array) The retry operations, which can specify how to resolve different types of errors. -+ -.Properties of `` -[%collapsible%open] -===== - `type`::: - (Required, string) The saved object type. - `id`::: - (Required, string) The saved object ID. - `overwrite`::: - (Optional, boolean) When set to `true`, the source object overwrites the conflicting destination object. When set to `false`, does - nothing. - `destinationId`::: - (Optional, string) Specifies the destination ID that the imported object should have, if different from the current ID. - `replaceReferences`::: - (Optional, array) A list of `type`, `from`, and `to` used to change the object references. - `ignoreMissingReferences`::: - (Optional, boolean) When set to `true`, ignores missing reference errors. When set to `false`, does nothing. -===== - -[[saved-objects-api-resolve-import-errors-response-body]] -==== Response body - -`success`:: - (boolean) Indicates a successful import. When set to `false`, some objects may not have been created. For additional information, refer to - the `errors` and `successResults` properties. - -`successCount`:: - (number) Indicates the number of successfully resolved records. - -`errors`:: - (Optional, array) Specifies the objects that failed to resolve. -+ -NOTE: One object can result in multiple errors, which requires separate steps to resolve. For instance, a `missing_references` error and a -`conflict` error. - -`successResults`:: - (Optional, array) Indicates the objects that are successfully imported, with any metadata if applicable. -+ -NOTE: Objects are only created when all resolvable errors are addressed, including conflict and missing references. To resolve errors, refer -to the <>. - -[[saved-objects-api-resolve-import-errors-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[saved-objects-api-resolve-import-errors-example]] -==== Examples - -[[saved-objects-api-resolve-import-errors-example-1]] -===== Resolve conflict errors - -This example builds upon the <>. - -Resolve conflict errors for a {data-source}, visualization, and *Canvas* workpad by overwriting the existing saved objects: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_resolve_import_errors -H "kbn-xsrf: true" --form file=@file.ndjson --form retries='[{"type":"index-pattern","id":"my-pattern","overwrite":true},{"type":"visualization","id":"my-vis","overwrite":true,"destinationId":"another-vis"},{"type":"canvas","id":"my-canvas","overwrite":true,"destinationId":"yet-another-canvas"},{"type":"dashboard","id":"my-dashboard"}]' --------------------------------------------------- -// KIBANA - -The `file.ndjson` file contains the following: - -[source,sh] --------------------------------------------------- -{"type":"index-pattern","id":"my-pattern","attributes":{"title":"my-pattern-*"}} -{"type":"visualization","id":"my-vis","attributes":{"title":"Look at my visualization"}} -{"type":"canvas-workpad","id":"my-canvas","attributes":{"name":"Look at my canvas"}} -{"type":"dashboard","id":"my-dashboard","attributes":{"title":"Look at my dashboard"}} --------------------------------------------------- - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "success": true, - "successCount": 4, - "successResults": [ - { - "id": "my-pattern", - "type": "index-pattern", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - }, - { - "id": "my-vis", - "type": "visualization", - "destinationId": "another-vis", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "destinationId": "yet-another-canvas", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] -} --------------------------------------------------- - -The result indicates a successful import, and all four objects were created. - -TIP: If a prior import attempt resulted in resolvable errors, you must include a retry for each object you want to import, including any -that were returned in the `successResults` array. In this example, we retried importing the dashboard accordingly. - -[[saved-objects-api-resolve-import-errors-example-2]] -===== Resolve missing reference errors - -This example builds upon the <>. - -Resolve a missing reference error for a visualization by replacing the {data-source} with another, and resolve a missing reference error for -a search by ignoring it: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/saved_objects/_resolve_import_errors -H "kbn-xsrf: true" --form file=@file.ndjson --form retries='[{"type":"visualization","id":"my-vis","replaceReferences":[{"type":"index-pattern","from":"my-pattern-*","to":"existing-pattern"}]},{"type":"search","id":"my-search","ignoreMissingReferences":true},{"type":"dashboard","id":"my-dashboard"}]' --------------------------------------------------- -// KIBANA - -The `file.ndjson` file contains the following: - -[source,sh] --------------------------------------------------- -{"type":"visualization","id":"my-vis","attributes":{"title":"Look at my visualization"},"references":[{"name":"ref_0","type":"index-pattern","id":"my-pattern-*"}]} -{"type":"search","id":"my-search","attributes":{"title":"Look at my search"},"references":[{"name":"ref_0","type":"index-pattern","id":"another-pattern-*"}]} -{"type":"dashboard","id":"my-dashboard","attributes":{"title":"Look at my dashboard"},"references":[{"name":"ref_0","type":"visualization","id":"my-vis"}]} --------------------------------------------------- - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "success": true, - "successCount": 3, - "successResults": [ - { - "id": "my-vis", - "type": "visualization", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-search", - "type": "search", - "meta": { - "icon": "searchApp", - "title": "Look at my search" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] -} --------------------------------------------------- - -The result indicates a successful import, and all three objects were created. - -TIP: If a prior import attempt resulted in resolvable errors, you must include a retry for each object you want to import, including any -that were returned in the `successResults` array. In this example, we retried importing the dashboard accordingly. diff --git a/docs/api/saved-objects/rotate_encryption_key.asciidoc b/docs/api/saved-objects/rotate_encryption_key.asciidoc deleted file mode 100644 index 8b45ee7175599..0000000000000 --- a/docs/api/saved-objects/rotate_encryption_key.asciidoc +++ /dev/null @@ -1,116 +0,0 @@ -[role="xpack"] -[[saved-objects-api-rotate-encryption-key]] -=== Rotate encryption key API -++++ -Rotate encryption key -++++ - -experimental[] Rotate the encryption key for encrypted saved objects. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -If a saved object cannot be decrypted using the primary encryption key, then {kib} will attempt to decrypt it using the specified <>. In most of the cases this overhead is negligible, but if you're dealing with a large number of saved objects and experiencing performance issues, you may want to rotate the encryption key. - -[IMPORTANT] -============================================================================ -Bulk key rotation can consume a considerable amount of resources and hence only user with a `superuser` role can trigger it. -============================================================================ - -[[saved-objects-api-rotate-encryption-key-request]] -==== Request - -`POST :/api/encrypted_saved_objects/_rotate_key` - -[[saved-objects-api-rotate-encryption-key-request-query-params]] -==== Query parameters - -`type`:: -(Optional, string) Limits encryption key rotation only to the saved objects with the specified type. By default, {kib} tries to rotate the encryption key for all saved object types that may contain encrypted attributes. - -`batch_size`:: -(Optional, number) Specifies a maximum number of saved objects that {kib} can process in a single batch. Bulk key rotation is an iterative process since {kib} may not be able to fetch and process all required saved objects in one go and splits processing into consequent batches. By default, the batch size is 10000, which is also a maximum allowed value. - -[[saved-objects-api-rotate-encryption-key-response-body]] -==== Response body - -`total`:: -(number) Indicates the total number of _all_ encrypted saved objects (optionally filtered by the requested `type`), regardless of the key {kib} used for encryption. - -`successful`:: -(number) Indicates the total number of _all_ encrypted saved objects (optionally filtered by the requested `type`), regardless of the key {kib} used for encryption. -+ -NOTE: In most cases, `total` will be greater than `successful` even if `failed` is zero. The reason is that {kib} may not need or may not be able to rotate encryption keys for all encrypted saved objects. - -`failed`:: -(number) Indicates the number of the saved objects that were still encrypted with one of the old encryption keys that {kib} failed to re-encrypt with the primary key. - -[[saved-objects-api-rotate-encryption-key-response-codes]] -==== Response code - -`200`:: -Indicates a successful call. - -`400`:: -Indicates that either query parameters are wrong or <> aren't configured. - -`429`:: -Indicates that key rotation is already in progress. - -[[saved-objects-api-rotate-encryption-key-example]] -==== Examples - -[[saved-objects-api-rotate-encryption-key-example-1]] -===== Encryption key rotation with default parameters - -[source,sh] --------------------------------------------------- -$ curl -X POST /api/encrypted_saved_objects/_rotate_key --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "total": 1000, - "successful": 300, - "failed": 0 -} --------------------------------------------------- - -The result indicates that the encryption key was successfully rotated for 300 out of 1000 saved objects with encrypted attributes, and 700 of the saved objects either didn't require key rotation, or were encrypted with an unknown encryption key. - -[[saved-objects-api-rotate-encryption-key-example-2]] -===== Encryption key rotation for the specific type with reduce batch size - -[IMPORTANT] -============================================================================ -Default parameters are optimized for speed. Change the parameters only when necessary. However, if you're experiencing any issues with this API, you may want to decrease a batch size or rotate the encryption keys for the specific types only. In this case, you may need to run key rotation multiple times in a row. -============================================================================ - -In this example, key rotation is performed for all saved objects with the `alert` type in batches of 5000. - -[source,sh] --------------------------------------------------- -$ curl -X POST /api/encrypted_saved_objects/_rotate_key?type=alert&batch_size=5000 --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "total": 100, - "successful": 100, - "failed": 0 -} --------------------------------------------------- - -The result indicates that the encryption key was successfully rotated for all 100 saved objects with the `alert` type. - diff --git a/docs/api/saved-objects/update.asciidoc b/docs/api/saved-objects/update.asciidoc deleted file mode 100644 index 28e8956edb528..0000000000000 --- a/docs/api/saved-objects/update.asciidoc +++ /dev/null @@ -1,97 +0,0 @@ -[[saved-objects-api-update]] -=== Update object API -++++ -Update object -++++ - -deprecated::[8.7.0, To be removed in an upcoming version] - -Update the attributes for existing {kib} saved objects. - -[NOTE] -==== -For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/packages/core/saved-objects/docs/openapi[open API specification]. -==== - -[[saved-objects-api-update-request]] -==== Request - -`PUT :/api/saved_objects//` - -`PUT :/s//api/saved_objects//` - -[[saved-objects-api-update-path-params]] -==== Path parameters - -`space_id`:: - (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. - -`type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. - -`id`:: - (Required, string) The object ID to update. - -[[saved-objects-api-update-request-body]] -==== Request body - -`attributes`:: - (Required, object) The data to persist. -+ -WARNING: When you update, attributes are not validated, which allows you to pass arbitrary and ill-formed data into the API and break {kib}. Make sure any data that you send to the API is properly formed. - -`references`:: - (Optional, array) Objects with `name`, `id`, and `type` properties that describe the other saved objects this object references. To refer to the other saved object, use `name` in the attributes, but never the `id`, which automatically updates during migrations or import/export. - -`upsert`:: - (Optional, object) If specified, will create the document with the given upsert attributes if it doesn't exist. - -[[saved-objects-api-update-errors-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -`404`:: - Indicates the object was not found. - -`409`:: - Indicates a <>. - -[[saved-objects-api-update-example]] -==== Example - -Update an existing {data-source} object,`my-pattern`, with a different title: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/index_patterns/index-pattern/my-pattern -{ - "attributes": { - "title": "some-other-pattern-*" - } -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "my-pattern", - "type": "index-pattern", - "version": 2, - "attributes": { - "title": "some-other-pattern-*" - } -} --------------------------------------------------- - -[[saved-objects-api-update-conflict-errors]] -==== Conflict errors - -Starting in {kib} 8.0, saved objects can exist in multiple spaces. As a result, you may encounter a 409 *alias conflict* error when using -the `upsert` option. The Update API response is limited and does not include additional metadata. You can get more details about this error -by using the <> instead. diff --git a/docs/api/synthetics/monitors/delete-monitor-api.asciidoc b/docs/api/synthetics/monitors/delete-monitor-api.asciidoc index 8730cc272a446..70861fcd60a36 100644 --- a/docs/api/synthetics/monitors/delete-monitor-api.asciidoc +++ b/docs/api/synthetics/monitors/delete-monitor-api.asciidoc @@ -8,9 +8,9 @@ Deletes one or more monitors from the Synthetics app. === {api-request-title} -`DELETE :/api/synthetics/monitors` +`DELETE :/api/synthetics/monitors/` -`DELETE :/s//api/synthetics/monitors` +`DELETE :/s//api/synthetics/monitors/` === {api-prereq-title} @@ -20,6 +20,26 @@ You must have `all` privileges for the *Synthetics* feature in the *{observabili You must have `all` privileges for the *Synthetics* feature in the *{observability}* section of the <>. + +[[delete-monitor-api-path-params]] +=== {api-path-parms-title} + +`config_id`:: +(Required, string) The ID of the monitor that you want to delete. + + +Here is an example of a DELETE request to delete a monitor by ID: + +[source,sh] +-------------------------------------------------- +DELETE /api/synthetics/monitors/monitor1-id +-------------------------------------------------- + +==== Bulk Delete Monitors + +You can delete multiple monitors by sending a list of config ids to a DELETE request to the `/api/synthetics/monitors` endpoint. + + [[monitors-delete-request-body]] ==== Request Body diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index e51f77d096adf..1f4f516e59167 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -571,7 +571,7 @@ security and spaces filtering. |{kib-repo}blob/{branch}/x-pack/plugins/observability_solution/entity_manager/README.md[entityManager] -|This plugin provides access to observed asset data, such as information about hosts, pods, containers, services, and more. +|This plugin provides access to observed entity data, such as information about hosts, pods, containers, services, and more. |{kib-repo}blob/{branch}/x-pack/plugins/event_log/README.md[eventLog] @@ -795,6 +795,10 @@ Elastic. It uses Chromium and Puppeteer underneath to run the browser in headless mode. +|{kib-repo}blob/{branch}/x-pack/plugins/search_assistant/README.md[searchAssistant] +|This holds the Search AI Assistant which targets Search users and Serverless Elasticsearch. + + |{kib-repo}blob/{branch}/x-pack/plugins/search_connectors/README.mdx[searchConnectors] |This plugin contains common assets and endpoints for the use of connectors in Kibana. Primarily used by the enterprise_search and serverless_search plugins. @@ -803,6 +807,10 @@ It uses Chromium and Puppeteer underneath to run the browser in headless mode. |The Search Homepage is a shared homepage for elasticsearch users. +|{kib-repo}blob/{branch}/x-pack/plugins/search_indices/README.mdx[searchIndices] +|The Search Indices plugin is a shared set of pages for elasticsearch users across stack and serverless search solutions. + + |{kib-repo}blob/{branch}/x-pack/plugins/search_inference_endpoints/README.md[searchInferenceEndpoints] |The Inference Endpoints is a tool used to manage inference endpoints diff --git a/docs/management/advanced-options.asciidoc b/docs/management/advanced-options.asciidoc index 4a88d33c83e5d..3e8cc1e8b109b 100644 --- a/docs/management/advanced-options.asciidoc +++ b/docs/management/advanced-options.asciidoc @@ -209,7 +209,7 @@ The default refresh interval for the time filter. Example: The default selection in the time filter. [[truncate-maxheight]]`truncate:maxHeight`:: -The maximum height that a cell occupies in a table. Set to 0 to disable +deprecated:[8.16.0]The maximum height that a cell occupies in a table. Set to 0 to disable truncation. [[enableESQL]]`enableESQL`:: diff --git a/docs/management/connectors/action-types/bedrock.asciidoc b/docs/management/connectors/action-types/bedrock.asciidoc index ab08e697daa53..8f0728a034615 100644 --- a/docs/management/connectors/action-types/bedrock.asciidoc +++ b/docs/management/connectors/action-types/bedrock.asciidoc @@ -9,7 +9,7 @@ :frontmatter-tags-user-goals: [configure] -The {bedrock} connector uses https://github.com/axios/axios[axios] to send a POST request to {bedrock}. The connector uses the <> to send the request. +The {bedrock} connector uses https://github.com/axios/axios[axios] to send a POST request to {bedrock}. [float] [[define-bedrock-ui]] @@ -37,8 +37,7 @@ Secret:: The secret for authentication. [[bedrock-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/bedrock-params.png[{bedrock} params test] diff --git a/docs/management/connectors/action-types/cases-webhook.asciidoc b/docs/management/connectors/action-types/cases-webhook.asciidoc index 3d5bfecffcb3b..e68b820101b8f 100644 --- a/docs/management/connectors/action-types/cases-webhook.asciidoc +++ b/docs/management/connectors/action-types/cases-webhook.asciidoc @@ -192,8 +192,7 @@ The username for HTTP basic authentication. [[cases-webhook-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/cases-webhook-test.gif[{webhook-cm} params test] diff --git a/docs/management/connectors/action-types/d3security.asciidoc b/docs/management/connectors/action-types/d3security.asciidoc index 76152365f76cd..5eb23cc356a95 100644 --- a/docs/management/connectors/action-types/d3security.asciidoc +++ b/docs/management/connectors/action-types/d3security.asciidoc @@ -8,7 +8,7 @@ :frontmatter-tags-content-type: [how-to] :frontmatter-tags-user-goals: [configure] -The D3 Security connector uses https://github.com/axios/axios[axios] to send a POST request to a D3 Security endpoint. The connector uses the <> to send the request. You can use the connector for rule actions. +The D3 Security connector uses https://github.com/axios/axios[axios] to send a POST request to a D3 Security endpoint. You can use the connector for rule actions. To create this connector, you must first configure a webhook key in your D3 SOAR environment. For configuration tips, refer to <>. @@ -35,8 +35,7 @@ Token:: The D3 Security token. [[d3security-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/d3security-params-test.png[D3 Security params test] diff --git a/docs/management/connectors/action-types/gemini.asciidoc b/docs/management/connectors/action-types/gemini.asciidoc index 610fb4ad48f15..2371015975d92 100644 --- a/docs/management/connectors/action-types/gemini.asciidoc +++ b/docs/management/connectors/action-types/gemini.asciidoc @@ -9,7 +9,7 @@ :frontmatter-tags-user-goals: [configure] -The {gemini} connector uses https://github.com/axios/axios[axios] to send a POST request to {gemini}. The connector uses the <> to send the request. +The {gemini} connector uses https://github.com/axios/axios[axios] to send a POST request to {gemini}. [float] [[define-gemini-ui]] @@ -38,8 +38,7 @@ Credentials JSON:: The GCP service account JSON file for authentication. [[gemini-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/gemini-params.png[{gemini} params test] diff --git a/docs/management/connectors/action-types/jira.asciidoc b/docs/management/connectors/action-types/jira.asciidoc index abff601184c58..906a2945d82de 100644 --- a/docs/management/connectors/action-types/jira.asciidoc +++ b/docs/management/connectors/action-types/jira.asciidoc @@ -43,8 +43,7 @@ API token:: Jira API authentication token for HTTP Basic authentication. [[jira-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/jira-params-test.png[Jira params test] diff --git a/docs/management/connectors/action-types/openai.asciidoc b/docs/management/connectors/action-types/openai.asciidoc index 968f5a1e30f3a..9b468d7ca09bc 100644 --- a/docs/management/connectors/action-types/openai.asciidoc +++ b/docs/management/connectors/action-types/openai.asciidoc @@ -9,8 +9,7 @@ :frontmatter-tags-user-goals: [configure] -The OpenAI connector uses https://github.com/axios/axios[axios] to send a POST request to an OpenAI provider, either OpenAI or Azure OpenAI. The connector uses the <> to send the request. - +The OpenAI connector uses https://github.com/axios/axios[axios] to send a POST request to an OpenAI provider, either OpenAI or Azure OpenAI. [float] [[define-gen-ai-ui]] === Create connectors in {kib} @@ -48,8 +47,7 @@ API key:: The OpenAI or Azure OpenAI API key for authentication. [[gen-ai-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/gen-ai-params-test.png[OpenAI params test] diff --git a/docs/management/connectors/action-types/servicenow-itom.asciidoc b/docs/management/connectors/action-types/servicenow-itom.asciidoc index 2dc6266745336..3cf64f7cc3b06 100644 --- a/docs/management/connectors/action-types/servicenow-itom.asciidoc +++ b/docs/management/connectors/action-types/servicenow-itom.asciidoc @@ -61,8 +61,7 @@ The username for HTTP basic authentication. [[servicenow-itom-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/servicenow-itom-params-test.png[{sn-itom} params test] diff --git a/docs/management/connectors/action-types/servicenow-sir.asciidoc b/docs/management/connectors/action-types/servicenow-sir.asciidoc index da2b37dc1f558..164fe70a6d55b 100644 --- a/docs/management/connectors/action-types/servicenow-sir.asciidoc +++ b/docs/management/connectors/action-types/servicenow-sir.asciidoc @@ -61,8 +61,7 @@ The username for HTTP basic authentication. [[servicenow-sir-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test] diff --git a/docs/management/connectors/action-types/swimlane.asciidoc b/docs/management/connectors/action-types/swimlane.asciidoc index 227846c7539f3..368ca9f5ecfdf 100644 --- a/docs/management/connectors/action-types/swimlane.asciidoc +++ b/docs/management/connectors/action-types/swimlane.asciidoc @@ -35,8 +35,7 @@ API token:: Swimlane API authentication token for HTTP basic authentication. [[swimlane-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/swimlane-params-test.png[Swimlane params test] diff --git a/docs/management/connectors/action-types/teams.asciidoc b/docs/management/connectors/action-types/teams.asciidoc index 174b0173cb08a..13c34d793913b 100644 --- a/docs/management/connectors/action-types/teams.asciidoc +++ b/docs/management/connectors/action-types/teams.asciidoc @@ -8,7 +8,7 @@ :frontmatter-tags-content-type: [how-to] :frontmatter-tags-user-goals: [configure] -The Microsoft Teams connector uses https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook[Incoming Webhooks]. +The Microsoft Teams connector uses a webhook to send notifications. [float] [[define-teams-ui]] @@ -19,6 +19,7 @@ or as needed when you're creating a rule. For example: [role="screenshot"] image::management/connectors/images/teams-connector.png[Teams connector] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. [float] [[teams-connector-configuration]] @@ -27,21 +28,21 @@ image::management/connectors/images/teams-connector.png[Teams connector] Microsoft Teams connectors have the following configuration properties: Name:: The name of the connector. -Webhook URL:: The URL of the incoming webhook. See https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook#add-an-incoming-webhook-to-a-teams-channel[Add Incoming Webhooks] for instructions on generating this URL. If you are using the <> setting, make sure the hostname is added to the allowed hosts. +Webhook URL:: The URL of the incoming webhook. Refer to <>. If you are using the <> setting, make sure the hostname is added to the allowed hosts. [float] [[teams-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/teams-params-test.png[Teams params test] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. Microsoft Teams actions have the following properties. -Message:: The message text, converted to the `text` field in the Webhook JSON payload. Currently only the text field is supported. Markdown, images, and other advanced formatting are not yet supported. +Message:: The message text. Markdown, images, and other advanced formatting are not yet supported. [float] [[teams-connector-networking-configuration]] @@ -51,19 +52,40 @@ Use the <> to customize connecto [float] [[configuring-teams]] -=== Configure a Microsoft Teams account +=== Configure Microsoft Teams -You need a https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook[Microsoft Teams webhook URL] to -configure a Microsoft Teams action. To create a webhook -URL, add the **Incoming Webhook App** through the Microsoft Teams console: +Microsoft 365 connectors are being https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/[retired]; you must use the *Workflows* app to create a webhook URL. +For example: -. Log in to http://teams.microsoft.com[teams.microsoft.com] as a team administrator. -. Navigate to the Apps directory, search for and select the *Incoming Webhook* app. -. Choose _Add to team_ and select a team and channel for the app. -. Enter a name for your webhook and (optionally) upload a custom icon. +. Go to the *Workflows* app in Teams and select the *Create* tab. +. Create a workflow from a blank template. + -image::images/teams-add-webhook-integration.png[] -. Click *Create*. -. Copy the generated webhook URL so you can paste it into your Teams connector form. +-- +NOTE: You cannot use the "Post to a channel when a webhook request is received" template; it does not work with the Microsoft Teams connector. +-- +. Add a trigger as the first step in the workflow. Search for webhook triggers and select *When a Teams webhook request is received*. Set *Who can trigger the flow?* to `Anyone`. +. Add *Post message in a chat or channel* as the second step in the workflow. +.. Set *Post as* to `Flow bot`. +.. Set *Post in* to `Channel`. +.. Set *Team* and *Channel* to the appropriate values for where you want the message displayed. + -image::images/teams-copy-webhook-url.png[] +-- +NOTE: Per https://learn.microsoft.com/en-us/power-automate/teams/send-a-message-in-teams#known-issues-and-limitations, you cannot use a private channel. +-- +.. Set the *Message* to `@{triggerBody()?['text']}`. ++ +-- +Alternatively, you can add a *Parse JSON* step before the *Post message in a chat or channel* step in the workflow. Set the *Content* to `Body` and the *Schema* to the following value: + +```json +{ + "type": "object", + "properties": { + "text": { + "type": "string" + } + } +} +``` +-- +. Save the workflow and copy the HTTP POST URL from the first step. This is the URL required by the Microsoft Teams connector. \ No newline at end of file diff --git a/docs/management/connectors/action-types/thehive.asciidoc b/docs/management/connectors/action-types/thehive.asciidoc index 9ee6a2e4325c1..302bd142031ee 100644 --- a/docs/management/connectors/action-types/thehive.asciidoc +++ b/docs/management/connectors/action-types/thehive.asciidoc @@ -36,8 +36,7 @@ API Key:: TheHive API key for authentication. [[TheHive-action-configuration]] === Test connectors -You can test connectors for creating a case or an alert with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/thehive-params-case-test.png[TheHive case params test] diff --git a/docs/management/connectors/action-types/tines.asciidoc b/docs/management/connectors/action-types/tines.asciidoc index c9888ab7b9087..6f219f2aa4572 100644 --- a/docs/management/connectors/action-types/tines.asciidoc +++ b/docs/management/connectors/action-types/tines.asciidoc @@ -35,8 +35,7 @@ API Token:: A Tines API token created by the user. For more information, refer [[tines-action-parameters]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/tines-params-test.png[Tines params test] diff --git a/docs/management/connectors/action-types/torq.asciidoc b/docs/management/connectors/action-types/torq.asciidoc index 7b4b9712adcb9..cac39ae6799bd 100644 --- a/docs/management/connectors/action-types/torq.asciidoc +++ b/docs/management/connectors/action-types/torq.asciidoc @@ -35,8 +35,7 @@ Torq authentication header secret:: Secret of the webhook authentication header. [[torq-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/torq-connector-test.png[Torq connector test] diff --git a/docs/management/connectors/action-types/webhook.asciidoc b/docs/management/connectors/action-types/webhook.asciidoc index d9a4dd43daeaf..eda17fdcc319a 100644 --- a/docs/management/connectors/action-types/webhook.asciidoc +++ b/docs/management/connectors/action-types/webhook.asciidoc @@ -55,8 +55,7 @@ Controls the certificate verification. [[webhook-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/webhook-params-test.png[Webhook params test] diff --git a/docs/management/connectors/action-types/xmatters.asciidoc b/docs/management/connectors/action-types/xmatters.asciidoc index ebc230bf0b39b..f3e1fa3c2b634 100644 --- a/docs/management/connectors/action-types/xmatters.asciidoc +++ b/docs/management/connectors/action-types/xmatters.asciidoc @@ -44,8 +44,7 @@ Password:: Password for HTTP basic authentication. [[xmatters-action-configuration]] === Test connectors -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: +You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/xmatters-params-test.png[xMatters params test] diff --git a/docs/management/connectors/images/teams-add-webhook-integration.png b/docs/management/connectors/images/teams-add-webhook-integration.png deleted file mode 100644 index a2d070cb33743..0000000000000 Binary files a/docs/management/connectors/images/teams-add-webhook-integration.png and /dev/null differ diff --git a/docs/management/connectors/images/teams-connector.png b/docs/management/connectors/images/teams-connector.png index 4b9112db28474..3164bd4be7438 100644 Binary files a/docs/management/connectors/images/teams-connector.png and b/docs/management/connectors/images/teams-connector.png differ diff --git a/docs/management/connectors/images/teams-copy-webhook-url.png b/docs/management/connectors/images/teams-copy-webhook-url.png deleted file mode 100644 index adb455c64cbf0..0000000000000 Binary files a/docs/management/connectors/images/teams-copy-webhook-url.png and /dev/null differ diff --git a/docs/management/connectors/images/teams-params-test.png b/docs/management/connectors/images/teams-params-test.png index 01efb84ae60d4..60bf87394bb68 100644 Binary files a/docs/management/connectors/images/teams-params-test.png and b/docs/management/connectors/images/teams-params-test.png differ diff --git a/docs/management/connectors/pre-configured-connectors.asciidoc b/docs/management/connectors/pre-configured-connectors.asciidoc index b7ae9feac2d6f..8f9536331bb1c 100644 --- a/docs/management/connectors/pre-configured-connectors.asciidoc +++ b/docs/management/connectors/pre-configured-connectors.asciidoc @@ -513,14 +513,19 @@ xpack.actions.preconfigured: jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba <4> secrets: clientSecret: secretsecret <5> - privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- <6> + privateKey: | <6> + -----BEGIN RSA PRIVATE KEY----- + MIIE... + KAgD... + ... multiple lines of key data ... + -----END RSA PRIVATE KEY----- -- <1> Specifies whether the connector uses basic or OAuth authentication. <2> The user identifier. <3> The client identifier assigned to your OAuth application. <4> The key identifier assigned to the JWT verifier map of your OAuth application. <5> The client secret assigned to your OAuth application. -<6> The RSA private key. If it has a password, you must also provide `privateKeyPassword`. +<6> The RSA private key in multiline format. If it has a password, you must also provide `privateKeyPassword`. [float] [[preconfigured-servicenow-configuration]] @@ -563,14 +568,19 @@ xpack.actions.preconfigured: jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba <4> secrets: clientSecret: secretsecret <5> - privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- <6> + privateKey: | <6> + -----BEGIN RSA PRIVATE KEY----- + MIIE... + KAgD... + ... multiple lines of key data ... + -----END RSA PRIVATE KEY----- -- <1> Specifies whether the connector uses basic or OAuth authentication. <2> The user identifier. <3> The client identifier assigned to your OAuth application. <4> The key ID assigned to the JWT verifier map of your OAuth application. <5> The client secret assigned to the OAuth application. -<6> The RSA private key. If it has a password, you must also provide `privateKeyPassword`. +<6> The RSA private key in multiline format. If it has a password, you must also provide `privateKeyPassword`. [float] [[preconfigured-servicenow-sir-configuration]] @@ -613,14 +623,19 @@ xpack.actions.preconfigured: jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba <4> secrets: clientSecret: secretsecret <5> - privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- <6> + privateKey: | <6> + -----BEGIN RSA PRIVATE KEY----- + MIIE... + KAgD... + ... multiple lines of key data ... + -----END RSA PRIVATE KEY----- -- <1> Specifies whether the connector uses basic or OAuth authentication. <2> The user identifier. <3> The client identifier assigned to the OAuth application. <4> The key ID assigned to the JWT verifier map of your OAuth application. <5> The client secret assigned to the OAuth application. -<6> The RSA private key. If it has a password, you must also specify +<6> The RSA private key in multiline format. If it has a password, you must also specify `privateKeyPassword`. diff --git a/docs/management/maintenance-windows/maintenance-windows.asciidoc b/docs/management/maintenance-windows/maintenance-windows.asciidoc index 559151c060ed2..590f9d8da8838 100644 --- a/docs/management/maintenance-windows/maintenance-windows.asciidoc +++ b/docs/management/maintenance-windows/maintenance-windows.asciidoc @@ -46,7 +46,7 @@ image::images/create-maintenance-window.png[The Create Maintenance Window user i By default, maintenance windows affect all categories of rules. The category-specific maintenance window options alter this behavior. -For the definitive list of rule types in each category, refer to the <>. +For the definitive list of rule types in each category, refer to the {api-kibana}/group/endpoint-alerting[get rule types API]. If you turn on *Filter alerts*, you can use KQL to filter the alerts affected by the maintenance window: diff --git a/docs/management/managing-saved-objects.asciidoc b/docs/management/managing-saved-objects.asciidoc index 7fccd6c6c93f7..df96721205d59 100644 --- a/docs/management/managing-saved-objects.asciidoc +++ b/docs/management/managing-saved-objects.asciidoc @@ -41,8 +41,7 @@ Use import and export to move objects between different {kib} instances. These actions are useful when you have multiple environments for development and production. Import and export also work well when you have a large number of objects to update and want to batch the process. -{kib} also provides <> and -<> APIs to automate this process. +{kib} also provides import and export {api-kibana}/group/endpoint-saved-objects[saved objects APIs] to automate this process. [float] diff --git a/docs/management/saved-objects/saved-object-ids.asciidoc b/docs/management/saved-objects/saved-object-ids.asciidoc index 97ab0daa95343..181bf6ee97b03 100644 --- a/docs/management/saved-objects/saved-object-ids.asciidoc +++ b/docs/management/saved-objects/saved-object-ids.asciidoc @@ -77,13 +77,12 @@ be broken. For more information, refer to {kibana-ref-all}/8.0/release-notes-8.0 If you are using the saved objects APIs directly, you should be aware of these changes: -WARNING: Some of the saved objects APIs are deprecated in 8.7.0. For more information, refer to the <> +WARNING: Some of the saved objects APIs are deprecated in 8.7.0. For more information, refer to the <> -* When using the <> or <> API, you may encounter - <> that **cannot** be overridden using the `overwrite: true` +* When using the create or bulk create API, you may encounter conflict errors that **cannot** be overridden using the `overwrite: true` option. This can occur if there is already a saved object with this ID in a _different_ space, or if there is a legacy URL alias for this ID in the same space. -* When using the <> or <> API, objects can potentially be +* When using the import or copy to space API, objects can potentially be created with a different ID as described above. -* When using the <> API, if the saved object exists in multiple spaces, it can only be deleted by using the - <>. +* When using the delete API, if the saved object exists in multiple spaces, it can only be deleted by using the + `force` option. diff --git a/docs/redirects.asciidoc b/docs/redirects.asciidoc index 06a2fc7886b58..5ffdbbcf76831 100644 --- a/docs/redirects.asciidoc +++ b/docs/redirects.asciidoc @@ -765,3 +765,372 @@ Refer to {observability-guide}/apm-agent-key-api.html[APM agent Key API]. Refer to {observability-guide}/apm-app-troubleshooting.html[Troubleshooting]. :!apm-docs-move-notice: + +[role="exclude",id="saved-objects-api-export"] +== Export objects API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-import"] +== Import objects API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-bulk-create"] +== Bulk create saved objects API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-bulk-delete"] +== Bulk delete object API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-bulk-get"] +== Bulk get objects API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-bulk-resolve"] +== Bulk resolve objects API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-bulk-update"] +== Bulk update object API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-create"] +== Create saved objects API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-delete"] +== Delete object API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-find"] +== Find objects API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-get"] +== Get object API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-resolve-import-errors"] +== Resolve import errors API + +[role="exclude",id="saved-objects-api-resolve"] +== Resolve object API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-rotate-encryption-key"] +== Rotate encryption key API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="saved-objects-api-update"] +== Update object API + +Refer to {api-kibana}/group/endpoint-saved-objects[saved objects API]. + +[role="exclude",id="data-views-api-get-all"] +== Get all data views API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-runtime-field-api-create"] +== Create runtime field API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-runtime-field-api-delete"] +== Delete runtime field API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-runtime-field-api-get"] +== Get runtime field API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-runtime-field-api-update"] +== Update runtime field API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-runtime-field-api-upsert"] +== Upsert runtime field API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-api-create"] +== Create data view API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-api-default-get"] +== Get default data view API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-api-default-set"] +== Set default data view API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-api-delete"] +== Delete data view API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-api-get"] +== Get data view API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-api-swap-references-preview"] +== Swap references preview data view API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-api-swap-references"] +== Swap references data view API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-fields-api-update"] +== Update data view fields API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="data-views-api-update"] +== Update data view API + +Refer to {api-kibana}/group/endpoint-data-views[data views API]. + +[role="exclude",id="create-rule-api"] +== Create rule API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="delete-rule-api"] +== Delete rule API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="disable-rule-api"] +== Disable rule API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="enable-rule-api"] +== Enable rule API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="find-rules-api"] +== Find rules API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="get-rule-api"] +== Get rule API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="get-alerting-framework-health-api"] +== Get alerting framework health API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="list-rule-types-api"] +== Get rule types API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="mute-alert-api"] +== Mute alert API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="mute-all-alerts-api"] +== Mute all alerts API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="unmute-alert-api"] +== Unmute alert API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="unmute-all-alerts-api"] +== Unmute all alerts API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="update-rule-api"] +== Update rule API + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="alerts-api"] +== Deprecated 7.x APIs + +Refer to {api-kibana}/group/endpoint-alerting[alerting API]. + +[role="exclude",id="update-connector-api"] +== Update connector API + +Refer to {api-kibana}/group/endpoint-connectors[connectors API]. + +[role="exclude",id="list-connector-types-api"] +== List connector types API + +Refer to {api-kibana}/group/endpoint-connectors[connectors API]. + +[role="exclude",id="get-connector-api"] +== Get connector API + +Refer to {api-kibana}/group/endpoint-connectors[connectors API]. + +[role="exclude",id="get-all-connectors-api"] +== Get all connectors API + +Refer to {api-kibana}/group/endpoint-connectors[connectors API]. + +[role="exclude",id="execute-connector-api"] +== Run connector API + +Refer to {api-kibana}/group/endpoint-connectors[connectors API]. + +[role="exclude",id="delete-connector-api"] +== Delete connector API + +Refer to {api-kibana}/group/endpoint-connectors[connectors API]. + +[role="exclude",id="create-connector-api"] +== Create connector API + +Refer to {api-kibana}/group/endpoint-connectors[connectors API]. + +[role="exclude",id="actions-and-connectors-legacy-apis"] +== Deprecated 7.x APIs + +Refer to {api-kibana}/group/endpoint-connectors[connectors API]. + +[role="exclude",id="cases-api-add-comment"] +== Add comment to case API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-create"] +== Create case API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-delete-cases"] +== Delete cases API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-delete-comments"] +== Delete comments from case API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-find-case-activity"] +== Find case activity API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-find-cases"] +== Find cases API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-find-connectors"] +== Find connectors API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-get-alerts"] +== Get alerts attached to case API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-get-case-activity"] +== Get case activity API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-get-case"] +== Get case API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-get-cases-by-alert"] +== Get cases by alert API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-get-comments"] +== Get comments API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-get-configuration"] +== Get case configuration API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-get-reporters"] +== Get reporters API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-get-status"] +== Get case status API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-get-tag"] +== Get tags API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-push"] +== Push case API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-set-configuration"] +== Set case configuration API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-update-comment"] +== Update case comment API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-update-configuration"] +== Update case configuration API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="cases-api-update"] +== Update cases API + +Refer to {api-kibana}/group/endpoint-cases[cases API]. + +[role="exclude",id="machine-learning-api-sync"] +== Sync {ml} saved objects API + +Refer to {api-kibana}/group/endpoint-ml[machine learning APIs]. + diff --git a/docs/settings/alert-action-settings.asciidoc b/docs/settings/alert-action-settings.asciidoc index d41871917c4a1..c688f933b0ff1 100644 --- a/docs/settings/alert-action-settings.asciidoc +++ b/docs/settings/alert-action-settings.asciidoc @@ -67,7 +67,9 @@ xpack.actions.customHostSettings: certificateAuthoritiesFiles: [ 'one.crt' ] certificateAuthoritiesData: | -----BEGIN CERTIFICATE----- - ... multiple lines of certificate data here ... + MIIDTD... + CwUAMD... + ... multiple lines of certificate data ... -----END CERTIFICATE----- smtp: requireTLS: true @@ -125,9 +127,8 @@ A file name or list of file names of PEM-encoded certificate files to use to validate the server. `xpack.actions.customHostSettings[n].ssl.certificateAuthoritiesData` {ess-icon}:: -The contents of a PEM-encoded certificate file, or multiple files appended -into a single string. This configuration can be used for environments where -the files cannot be made available. +The contents of one or more PEM-encoded certificate files in multiline format. +This configuration can be used for environments where the files cannot be made available. [[action-config-email-domain-allowlist]] `xpack.actions.email.domain_allowlist` {ess-icon}:: A list of allowed email domains which can be used with the email connector. When this setting is not used, all email domains are allowed. When this setting is used, if any email is attempted to be sent that (a) includes an addressee with an email domain that is not in the allowlist, or (b) includes a from address domain that is not in the allowlist, it will fail with a message indicating the email is not allowed. diff --git a/docs/settings/apm-settings.asciidoc b/docs/settings/apm-settings.asciidoc index 3cd04a4ff3733..901988cf67c29 100644 --- a/docs/settings/apm-settings.asciidoc +++ b/docs/settings/apm-settings.asciidoc @@ -82,19 +82,19 @@ Sets a `fixed_interval` for date histograms in metrics aggregations. Defaults to Set to `false` to disable cloud APM migrations. Defaults to `true`. `xpack.apm.indices.error` {ess-icon}:: -Matcher for all error indices. Defaults to `logs-apm*,apm-*`. +Matcher for all error indices. Defaults to `logs-apm*,apm-*,traces-*.otel-*`. `xpack.apm.indices.onboarding` {ess-icon}:: Matcher for all onboarding indices. Defaults to `apm-*`. `xpack.apm.indices.span` {ess-icon}:: -Matcher for all span indices. Defaults to `traces-apm*,apm-*`. +Matcher for all span indices. Defaults to `traces-apm*,apm-*,traces-*.otel-*`. `xpack.apm.indices.transaction` {ess-icon}:: -Matcher for all transaction indices. Defaults to `traces-apm*,apm-*`. +Matcher for all transaction indices. Defaults to `traces-apm*,apm-*,traces-*.otel-*`. `xpack.apm.indices.metric` {ess-icon}:: -Matcher for all metrics indices. Defaults to `metrics-apm*,apm-*`. +Matcher for all metrics indices. Defaults to `metrics-apm*,apm-*,metrics-*.otel-*`. `xpack.apm.indices.sourcemap` {ess-icon}:: Matcher for all source map indices. Defaults to `apm-*`. diff --git a/docs/setup/upgrade/resolving-migration-failures.asciidoc b/docs/setup/upgrade/resolving-migration-failures.asciidoc index d81a577a19a88..596674237eb7a 100644 --- a/docs/setup/upgrade/resolving-migration-failures.asciidoc +++ b/docs/setup/upgrade/resolving-migration-failures.asciidoc @@ -18,24 +18,6 @@ When you address the root cause for the migration failure, {kib} automatically retries the migration. If you're unable to resolve a failed migration, contact Support. - -[float] -==== Known issues with {fleet} beta -If you see a`timeout_exception` or `receive_timeout_transport_exception` error, -it might be from a known known issue in 7.12.0 if you tried the {fleet} beta. -Upgrade migrations fail because of a large number of documents in the `.kibana` index, -which causes {kib} to log errors such as: - -[source,sh] --------------------------------------------- -Error: Unable to complete saved object migrations for the [.kibana] index. Please check the health of your Elasticsearch cluster and try again. Error: [receive_timeout_transport_exception]: [instance-0000000002][10.32.1.112:19541][cluster:monitor/task/get] request_id [2648] timed out after [59940ms] - -Error: Unable to complete saved object migrations for the [.kibana] index. Please check the health of your Elasticsearch cluster and try again. Error: [timeout_exception]: Timed out waiting for completion of [org.elasticsearch.index.reindex.BulkByScrollTask@6a74c54] --------------------------------------------- - -For instructions on how to mitigate the known issue, refer to https://github.com/elastic/kibana/issues/95321[the GitHub issue]. - - [float] ==== Corrupt saved objects To find and remedy problems caused by corrupt documents, we highly recommend testing your {kib} upgrade in a development cluster, @@ -56,7 +38,7 @@ To delete the documents that cause migrations to fail, take the following steps: . Create a role as follows: + -[source,sh] +[source,console] -------------------------------------------- PUT _security/role/grant_kibana_system_indices { @@ -76,7 +58,7 @@ PUT _security/role/grant_kibana_system_indices . Create a user with the role above and `superuser` built-in role: + -[source,sh] +[source,console] -------------------------------------------- POST /_security/user/temporarykibanasuperuser { @@ -87,7 +69,7 @@ POST /_security/user/temporarykibanasuperuser . Remove the write block which the migration system has placed on the previous index: + -[source,sh] +[source,console] -------------------------------------------- PUT .kibana_7.12.1_001/_settings { @@ -99,7 +81,7 @@ PUT .kibana_7.12.1_001/_settings . Delete the corrupt document: + -[source,sh] +[source,console] -------------------------------------------- DELETE .kibana_7.12.0_001/_doc/marketing_space:dashboard:e3c5fc71-ac71-4805-bcab-2bcc9cc93275 -------------------------------------------- @@ -185,7 +167,7 @@ The process is waiting for a yellow index status. There are two known causes: Before retrying the migration, inspect the output of the `_cluster/allocation/explain?index=${targetIndex}` API to identify why the index isn't yellow: -[source,sh] +[source,console] -------------------------------------------- GET _cluster/allocation/explain { @@ -220,7 +202,7 @@ Unable to complete saved object migrations for the [.kibana] index: [incompatibl -------------------------------------------- To get around the issue, remove the transient and persisted routing allocation settings: -[source,sh] +[source,console] -------------------------------------------- PUT /_cluster/settings { diff --git a/docs/user/alerting/alerting-setup.asciidoc b/docs/user/alerting/alerting-setup.asciidoc index cf1f84c9cc032..b3af9bfbe0303 100644 --- a/docs/user/alerting/alerting-setup.asciidoc +++ b/docs/user/alerting/alerting-setup.asciidoc @@ -54,12 +54,11 @@ To use {alert-features} in a {kib} app, you must have the appropriate feature pr |=== | Action | {kib} privileges -| Give full access to manage alerts, connectors, and rules in *{stack-manage-app}* or *Discover* +| Give full access to manage alerts, connectors, and rules in *{stack-manage-app}* a| * `All` for the *Management > {stack-rules-feature}* feature. * `All` for the *Management > Rules Settings* feature. * `All` for the *Management > {connectors-feature}* feature. -* `Read` index privileges for the `.alerts-*` system indices [NOTE] ==== @@ -77,12 +76,11 @@ For {observability} rules, you must have `all` privileges for the appropriate {o For Security rules, refer to {security-guide}/detections-permissions-section.html[Detections prerequisites and requirements]. ==== -| Give view-only access to alerts, connectors, and rules in *{stack-manage-app}* or *Discover* +| Give view-only access to alerts, connectors, and rules in *{stack-manage-app}* a| * `Read` for the *Management > {stack-rules-feature}* feature. * `Read` for the *Management > Rules Settings* feature. * `Read` for the *Management > {connectors-feature}* feature. -* `Read` index privileges for the `.alerts-*` system indices [NOTE] ==== @@ -93,12 +91,16 @@ For {observability} rules, you must have `read` privileges for the appropriate { For Security rules, refer to {security-guide}/detections-permissions-section.html[Detections prerequisites and requirements]. ==== -| Revoke all access to alerts, connectors, and rules in *{stack-manage-app}* or *Discover* +| Give view-only access to alerts in *Discover* or *Dashboards* +a| +* `Read` index privileges for the `.alerts-*` system indices. + +| Revoke all access to alerts, connectors, and rules in *{stack-manage-app}*, *Discover*, or *Dashboards* a| * `None` for the *Management > {stack-rules-feature}* feature. * `None` for the *Management > Rules Settings* feature. * `None` for the *Management > {connectors-feature}* feature. - +* No index privileges for the `.alerts-*` system indices. |=== For more information on configuring roles that provide access to features, go to <>. diff --git a/docs/user/alerting/alerting-troubleshooting.asciidoc b/docs/user/alerting/alerting-troubleshooting.asciidoc index 88b553c9064c1..a0bcd6dcea290 100644 --- a/docs/user/alerting/alerting-troubleshooting.asciidoc +++ b/docs/user/alerting/alerting-troubleshooting.asciidoc @@ -55,7 +55,7 @@ Diagnosing these may be difficult - but there may be log messages for error cond === Use the REST APIs There is a rich set of HTTP endpoints to introspect and manage rules and connectors. -One of the HTTP endpoints available for actions is the <>. You can use this to “test” an action. For instance, if you have a server log action created, you can run it via curling the endpoint: +One of the HTTP endpoints available for actions is the run connector API. You can use this to “test” an action. For instance, if you have a server log action created, you can run it via curling the endpoint: [source, txt] -------------------------------------------------- curl -X POST -k \ @@ -219,8 +219,7 @@ the {kib} {alert-features}: If you create a rule in the {observability} or {security-app}, its alerts are not visible in *{stack-manage-app} > {rules-ui}*. You can view them only in the -{kib} app where you created the rule. If you use the -<>, the visibility of the alerts is related to +{kib} app where you created the rule. If you use the create rule API, the visibility of the alerts is related to the `consumer` property. include::troubleshooting/alerting-common-issues.asciidoc[] diff --git a/docs/user/alerting/troubleshooting/alerting-common-issues.asciidoc b/docs/user/alerting/troubleshooting/alerting-common-issues.asciidoc index b7d9ba5168d11..1f5ee61167041 100644 --- a/docs/user/alerting/troubleshooting/alerting-common-issues.asciidoc +++ b/docs/user/alerting/troubleshooting/alerting-common-issues.asciidoc @@ -239,7 +239,7 @@ This query returns the following: <1> Most run durations fall within the first bucket (0 - 1 seconds). <2> A single rule with id `41893910-6bca-11eb-9e0d-85d233e3ee35` took between 30 and 31 seconds to run. -Use the <> to retrieve additional information about rules that take a long time to run. +Use the get rule API to retrieve additional information about rules that take a long time to run. [float] [[rule-cannot-decrypt-api-key]] diff --git a/docs/user/api.asciidoc b/docs/user/api.asciidoc index 0309fe720c333..03ad9763fb438 100644 --- a/docs/user/api.asciidoc +++ b/docs/user/api.asciidoc @@ -5,6 +5,8 @@ Some {kib} features are provided via a REST API, which is ideal for creating an integration with {kib}, or automating certain aspects of configuring and deploying {kib}. +NOTE: For the latest details, refer to {api-kibana}[{kib} API]. + [float] [[using-apis]] == Using the APIs diff --git a/docs/user/dashboard/dashboard.asciidoc b/docs/user/dashboard/dashboard.asciidoc index 36dce0e2586e5..d597cf135f396 100644 --- a/docs/user/dashboard/dashboard.asciidoc +++ b/docs/user/dashboard/dashboard.asciidoc @@ -442,7 +442,7 @@ To share the dashboard with a larger audience, click *Share* in the toolbar. For [[import-dashboards]] == Export dashboards -To automate {kib}, you can export dashboards as NDJSON using the <>. It is important to export dashboards with all necessary references. +To automate {kib}, you can export dashboards as NDJSON using the {api-kibana}/group/endpoint-saved-objects[Export saved objects API]. It is important to export dashboards with all necessary references. -- include::tutorial-create-a-dashboard-of-lens-panels.asciidoc[] diff --git a/docs/user/reporting/reporting-csv-limitations.asciidoc b/docs/user/reporting/reporting-csv-limitations.asciidoc index 253d6e4d75157..277b720e21be1 100644 --- a/docs/user/reporting/reporting-csv-limitations.asciidoc +++ b/docs/user/reporting/reporting-csv-limitations.asciidoc @@ -7,4 +7,8 @@ We recommend using CSV reports to export moderate amounts of data only. The feat - Cross-cluster search is used - ES|QL is used and result row count exceeds the limits of ES|QL queries -To work around the limitations, use filters to create multiple smaller reports, or extract the data you need directly with the Elasticsearch APIs. See {ref}/scroll-api.html[Scroll API], {ref}/point-in-time-api.html[Point in time API], {ref}/esql-rest.html[ES|QL] or {ref}/sql-rest-format.html#_csv[SQL] with CSV response data format. <> can be adjusted to overcome some of these limiting scenarios. Results are dependent on data size, availability, and latency factors and are not guaranteed. \ No newline at end of file +To work around the limitations, use filters to create multiple smaller reports, or extract the data you need directly with the Elasticsearch APIs. + +For more information on using Elasticsearch APIs directly, see {ref}/scroll-api.html[Scroll API], {ref}/point-in-time-api.html[Point in time API], {ref}/esql-rest.html[ES|QL] or {ref}/sql-rest-format.html#_csv[SQL] with CSV response data format. We recommend that you use an official Elastic language client: details for each programming language library that Elastic provides are in the https://www.elastic.co/guide/en/elasticsearch/client/index.html[{es} Client documentation]. + +<> can be adjusted to overcome some of these limiting scenarios. Results are dependent on data size, availability, and latency factors and are not guaranteed. \ No newline at end of file diff --git a/docs/user/reporting/response-codes.asciidoc b/docs/user/reporting/response-codes.asciidoc index 24a12a3de93a5..0b60fac63dc4b 100644 --- a/docs/user/reporting/response-codes.asciidoc +++ b/docs/user/reporting/response-codes.asciidoc @@ -1,5 +1,7 @@ -The reporting APIs use HTTP response codes to give feedback. In automation, -this helps external systems track the various possible job states: +The response payload of a request to generate a report includes the path to +download a report. The API to download a report uses HTTP response codes to give +feedback. In automation, this helps external systems track the various possible +job states: - **`200` (OK)**: As expected, Kibana returns `200` status in the response for successful requests to queue or download reports. diff --git a/docs/user/security/secure-saved-objects.asciidoc b/docs/user/security/secure-saved-objects.asciidoc index d83a8ec0a23ea..b6c26a9e4ee12 100644 --- a/docs/user/security/secure-saved-objects.asciidoc +++ b/docs/user/security/secure-saved-objects.asciidoc @@ -29,7 +29,7 @@ For help generating the encryption key, refer to the <>. +When you change an encryption key, be sure to keep the old one for some time. Although {kib} only uses a new encryption key to encrypt all new and updated data, it still may need the old one to decrypt data that was encrypted using the old key. It's possible to have multiple old keys used only for decryption. {kib} doesn't automatically re-encrypt existing saved objects with the new encryption key. Re-encryption only happens when you update existing object or use the {api-kibana}/group/endpoint-saved-objects[rotate encryption key API]. Here is how your `kibana.yml` might look if you use key rotation functionality: @@ -49,7 +49,7 @@ xpack.encryptedSavedObjects: You might also leverage this functionality if multiple {kib} instances connected to the same {es} cluster use different encryption keys. In this case, you might have a mix of saved objects encrypted with different keys, and every {kib} instance can only deal with a specific subset of objects. To fix this, you must choose a single primary encryption key for `xpack.encryptedSavedObjects.encryptionKey`, move all other encryption keys to `xpack.encryptedSavedObjects.keyRotation.decryptionOnlyKeys`, and sync this configuration across all {kib} instances. ============================================================================ -At some point, you might want to dispose of old encryption keys completely. Make sure there are no saved objects that {kib} encrypted with these encryption keys. You can use the <> to determine which existing saved objects require decryption-only keys and re-encrypt them with the primary key. +At some point, you might want to dispose of old encryption keys completely. Make sure there are no saved objects that {kib} encrypted with these encryption keys. You can use the {api-kibana}/group/endpoint-saved-objects[rotate encryption key API] to determine which existing saved objects require decryption-only keys and re-encrypt them with the primary key. [[encryption-key-docker-configuration]] ==== Docker configuration diff --git a/docs/user/whats-new.asciidoc b/docs/user/whats-new.asciidoc index 3410a889c8f26..2a726ba3dc4f3 100644 --- a/docs/user/whats-new.asciidoc +++ b/docs/user/whats-new.asciidoc @@ -7,28 +7,44 @@ check the <>. Previous versions: {kibana-ref-all}/8.14/whats-new.html[8.14] | {kibana-ref-all}/8.13/whats-new.html[8.13] | {kibana-ref-all}/8.12/whats-new.html[8.12] | {kibana-ref-all}/8.11/whats-new.html[8.11] | {kibana-ref-all}/8.10/whats-new.html[8.10] | {kibana-ref-all}/8.9/whats-new.html[8.9] | {kibana-ref-all}/8.8/whats-new.html[8.8] | {kibana-ref-all}/8.7/whats-new.html[8.7] | {kibana-ref-all}/8.6/whats-new.html[8.6] | {kibana-ref-all}/8.5/whats-new.html[8.5] | {kibana-ref-all}/8.4/whats-new.html[8.4] | {kibana-ref-all}/8.3/whats-new.html[8.3] | {kibana-ref-all}/8.2/whats-new.html[8.2] | {kibana-ref-all}/8.1/whats-new.html[8.1] | {kibana-ref-all}/8.0/whats-new.html[8.0] - [discrete] -=== Analyst Experience +=== ES|QL [discrete] -==== View dashboard creator and last editor +==== Filter UX improvements in ES|QL -You can now see who created and who last updated a dashboard. +We're thrilled to unveil a complete overhaul of filtering in the ES|QL UX. Now, you can seamlessly filter data by browsing a time series chart, allowing for quick and intuitive time-based filtering. Interactive chart filtering lets you refine your data directly by clicking on any chart, while creating WHERE clause filters from the Discover table or sidebar has never been easier. These enhancements streamline data exploration and analysis, making your ES|QL experience more efficient and user-friendly than ever. -You can find the creator information right from the dashboard list. +*Filter by clicking a chart:* -image::images/dashboard-creator.png[Dashboard creator column in dashboard list] +image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt965a5190f246f7c8/669a7d41e5f7c84793b031cb/filter-by-clicking-chart.gif[Filter by clicking a chart] -Quickly find all dashboards created by the same user with a simple filter. +*Filter by browsing a time series chart:* -image::images/dashboard-creator-filter.png[Filtering dashboards by creator] +image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blta20c9a93dded707c/669a7d40843f93a02fe51013/filter-by-brushing-time-series.gif[Filter by browsing a time series chart] -Note that the creator information will be visible only for dashboards created on or after version 8.14. +*Create WHERE clause filters from Discover table or sidebar:* -You can also see who last updated a dashboard by clicking the dashboard information icon from the dashboard list. The creator is also visible next to it. This information is immutable and cannot be changed. +image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt50ac35ab3af29ff8/669a7d4006a6fafe4c7cb39d/create-where-clause-filters-from-sidebar.gif[Create WHERE clause filters from Discover table or sidebar] + + +[discrete] +==== Field statistics in ES|QL + +Field statistics are now available in ES|QL. This feature is designed to provide comprehensive insights for each data field. With this enhancement, you can access detailed statistics such as distributions, averages, and other key metrics, helping you quickly understand your data. This makes data exploration and quality assessment more efficient, providing deeper insights and streamlining the analysis of field-level data in ES|QL. + +image::images/field-statistics-esql.png[Field statistics in ES|QL] + +[discrete] +==== Integrations support in the ES|QL editor when using FROM command. + +We're excited to announce enhanced support for integrations in the ES|QL editor with the *FROM* command. Previously, you could only access indices, but now you can also view a list of installed integrations directly within the editor. This improvement streamlines your workflow, making it easier to manage and utilize various integrations while working with your data. + +image::images/integrations-in-esql.png[Accessing an integration from ES|QL] -image::images/dashboard-last-editor.png[Dashboard details panel with the name of the last editor] + +[discrete] +=== Dashboards [discrete] ==== Field statistics in Dashboards @@ -48,50 +64,36 @@ You can find the option to select statistics for your legends along with an expl image::images/statistics-in-legends2.png[Select statistics in legends] -[discrete] -==== Array of values for Metrics - -The new **Metrics** now supports fields that show an array of values. - -image::images/array-in-metrics.png[A metric showing an array of values, width=35%] [discrete] -==== Push flyout for Discover document viewer +==== View dashboard creator and last editor -You can now seamlessly view document details and the main table simultaneously in **Discover** with the new _push_ flyout. You can adjust the width of the flyout to suit your needs and explore your data much more easily. +You can now see who created and who last updated a dashboard. -image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltb40a408acf4ab688/669a58ea9fecd85219d58ed2/discover-push-flyout.gif[Resizable push flyout in Discover] +You can find the creator information right from the dashboard list. -[discrete] -==== Integrations support in the ES|QL editor when using FROM command. +image::images/dashboard-creator.png[Dashboard creator column in dashboard list] -We're excited to announce enhanced support for integrations in the ES|QL editor with the *FROM* command. Previously, you could only access indices, but now you can also view a list of installed integrations directly within the editor. This improvement streamlines your workflow, making it easier to manage and utilize various integrations while working with your data. +Quickly find all dashboards created by the same user with a simple filter. -image::images/integrations-in-esql.png[Accessing an integration from ES|QL] +image::images/dashboard-creator-filter.png[Filtering dashboards by creator] -[discrete] -==== Field statistics in ES|QL +Note that the creator information will be visible only for dashboards created on or after version 8.14. -Field statistics are now available in ES|QL. This feature is designed to provide comprehensive insights for each data field. With this enhancement, you can access detailed statistics such as distributions, averages, and other key metrics, helping you quickly understand your data. This makes data exploration and quality assessment more efficient, providing deeper insights and streamlining the analysis of field-level data in ES|QL. +You can also see who last updated a dashboard by clicking the dashboard information icon from the dashboard list. The creator is also visible next to it. This information is immutable and cannot be changed. -image::images/field-statistics-esql.png[Field statistics in ES|QL] +image::images/dashboard-last-editor.png[Dashboard details panel with the name of the last editor] [discrete] -==== Filter UX improvements in ES|QL - -We're thrilled to unveil a complete overhaul of filtering in the ES|QL UX. Now, you can seamlessly filter data by browsing a time series chart, allowing for quick and intuitive time-based filtering. Interactive chart filtering lets you refine your data directly by clicking on any chart, while creating WHERE clause filters from the Discover table or sidebar has never been easier. These enhancements streamline data exploration and analysis, making your ES|QL experience more efficient and user-friendly than ever. +=== Discover -*Filter by clicking a chart:* - -image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt965a5190f246f7c8/669a7d41e5f7c84793b031cb/filter-by-clicking-chart.gif[Filter by clicking a chart] - -*Filter by browsing a time series chart:* +[discrete] +==== Push flyout for Discover document viewer -image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blta20c9a93dded707c/669a7d40843f93a02fe51013/filter-by-brushing-time-series.gif[Filter by browsing a time series chart] +You can now seamlessly view document details and the main table simultaneously in **Discover** with the new _push_ flyout. You can adjust the width of the flyout to suit your needs and explore your data much more easily. -*Create WHERE clause filters from Discover table or sidebar:* +image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltb40a408acf4ab688/669a58ea9fecd85219d58ed2/discover-push-flyout.gif[Resizable push flyout in Discover] -image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt50ac35ab3af29ff8/669a7d4006a6fafe4c7cb39d/create-where-clause-filters-from-sidebar.gif[Create WHERE clause filters from Discover table or sidebar] [discrete] === Alerting, cases, and connectors @@ -134,20 +136,6 @@ Analyze large volumes of logs efficiently, in very short times with Log Pattern image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt7e63d7e764ab183e/669a807bd316c7015db35458/ml-log-pattern-analysis.gif[New log pattern analysis interface] -[discrete] -==== ES|QL support for field statistics in Discover - -The Field statistics functionality now supports ES|QL, Elastic's primary query language. - -image::images/esql-field-statistics.png[Field statistics in ES|QL] - -[discrete] -==== Field statistics embeddable panel in Dashboards - -You can now add field statistics panels with ES|QL support straight within your dashboards, eliminating the need to transition between **Discover** and **Dashboards**. - -image::images/field-statistics-panel-in-dashboards.png[Field statistics embeddable panel in Dashboards] - [discrete] ==== Log Rate Analysis contextual insights in serverless Observability @@ -156,42 +144,31 @@ You can now see insights in natural language, for example for the root cause of image::images/obs-log-rate-analysis-insigths.png[Log Rate Analysis contextual insights in serverless Observability] [discrete] -==== Anthropic integration with the Inference API +==== Inference API improvements -The inference API provides a seamless, intuitive interface to perform inference and other tasks against proprietary, hosted, and integrated external services. In 8.15, we're extending it to support Anthropic's chat completion API. +The inference API provides a seamless, intuitive interface to perform inference and other tasks against proprietary, hosted, and integrated external services. In 8.15, we're extending it with the following capabilities: -[discrete] -==== Support for reranking with the Inference API +* Support for Anthropic's chat completion API. +* Ability to host cross encoder models and perform the reranking task. -In 8.15, we're also extending the inference API with the ability to host cross encoder models in Elastic and perform the reranking task. [discrete] -=== Global Experience +=== Managing {kib} users and objects [discrete] -==== Simplified Sharing +==== Sharing improvements -You can now share a dashboard, search, or lens object in one click. When sharing an object, the most common actions are directly presented to you, and a short link is automatically generated, making it simpler than ever to share your work. +You can now share a dashboard, search, or Lens object in one click. When sharing an object, the most common actions are directly presented to you, and a short link is automatically generated, making it simpler than ever to share your work. image::images/share-modal.png[New object share modal, width=50%] [discrete] -==== “My dashboards” filter - -The days of manually scrolling through an endless list of dashboards are behind you. You can now filter by creator to go directly to the dashboards created by a specific teammate. - -NOTE: Only dashboards created on or after 8.14 will have a creator. - -[discrete] -==== Quick API keys +==== Quick API key creation Many API keys don’t require custom settings, so we made it simple to generate a standard key. From the **Endpoints & API keys** top menu in Search, you can create a key in seconds. image::images/create-simple-api-key.png[Shortcut to create an API key, width=60%] -[discrete] -=== Platform Security - [discrete] ==== Filtering by User in Kibana Audit Logs diff --git a/examples/controls_example/public/app/react_control_example/react_control_example.tsx b/examples/controls_example/public/app/react_control_example/react_control_example.tsx index 9436adc208ebd..4ed6703c46c84 100644 --- a/examples/controls_example/public/app/react_control_example/react_control_example.tsx +++ b/examples/controls_example/public/app/react_control_example/react_control_example.tsx @@ -99,6 +99,9 @@ export const ReactControlExample = ({ const saveNotification$ = useMemo(() => { return new Subject(); }, []); + const reload$ = useMemo(() => { + return new Subject(); + }, []); const [dataLoading, timeRange, viewMode] = useBatchedPublishingSubjects( dataLoading$, timeRange$, @@ -136,8 +139,8 @@ export const ReactControlExample = ({ addNewPanel: () => { return Promise.resolve(undefined); }, - lastUsedDataViewId: new BehaviorSubject(WEB_LOGS_DATA_VIEW_ID), saveNotification$, + reload$, }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); @@ -215,6 +218,19 @@ export const ReactControlExample = ({ }; }, [controlGroupApi, timeslice$]); + const [hasControls, setHasControls] = useState(false); + useEffect(() => { + if (!controlGroupApi) { + return; + } + const subscription = controlGroupApi.children$.subscribe((children) => { + setHasControls(Object.keys(children).length > 0); + }); + return () => { + subscription.unsubscribe(); + }; + }, [controlGroupApi]); + useEffect(() => { const subscription = combineLatest([controlGroupFilters$, unifiedSearchFilters$]).subscribe( ([controlGroupFilters, unifiedSearchFilters]) => { @@ -381,8 +397,11 @@ export const ReactControlExample = ({ to: end, }); }} + onRefresh={() => { + reload$.next(); + }} /> - + {hasControls && } { dashboardApi?.setChild(api); @@ -395,6 +414,7 @@ export const ReactControlExample = ({ getSerializedStateForChild: getControlGroupSerializedState, getRuntimeStateForChild: getControlGroupRuntimeState, })} + panelProps={{ hideLoader: true }} key={`control_group`} /> diff --git a/examples/embeddable_examples/public/react_embeddables/search/search_react_embeddable.tsx b/examples/embeddable_examples/public/react_embeddables/search/search_react_embeddable.tsx index ef73c179b8f8e..eea33aff7bf5a 100644 --- a/examples/embeddable_examples/public/react_embeddables/search/search_react_embeddable.tsx +++ b/examples/embeddable_examples/public/react_embeddables/search/search_react_embeddable.tsx @@ -111,10 +111,10 @@ export const getSearchEmbeddableFactory = (services: Services) => { ) .subscribe((next) => { dataLoading$.next(false); - if (next && next.hasOwnProperty('count') && next.count !== undefined) { + if (next && Object.hasOwn(next, 'count') && next.count !== undefined) { count$.next(next.count); } - if (next && next.hasOwnProperty('error')) { + if (next && Object.hasOwn(next, 'error')) { blockingError$.next(next.error); } }); diff --git a/examples/grid_example/README.md b/examples/grid_example/README.md new file mode 100644 index 0000000000000..91b0ea05b79de --- /dev/null +++ b/examples/grid_example/README.md @@ -0,0 +1,3 @@ +# Grid Example + +This plugin is a playground and learning tool that demonstrates the Dashboard layout engine. diff --git a/examples/grid_example/kibana.jsonc b/examples/grid_example/kibana.jsonc new file mode 100644 index 0000000000000..ecaae63268e7a --- /dev/null +++ b/examples/grid_example/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/grid-example-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Temporary example app used to build out the new Dashboard layout system", + "plugin": { + "id": "gridExample", + "server": false, + "browser": true, + "requiredPlugins": ["developerExamples"], + "requiredBundles": [] + } +} diff --git a/examples/grid_example/public/app.tsx b/examples/grid_example/public/app.tsx new file mode 100644 index 0000000000000..8c26ecf8f1e2a --- /dev/null +++ b/examples/grid_example/public/app.tsx @@ -0,0 +1,69 @@ +/* + * 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 ReactDOM from 'react-dom'; +import { GridLayout, type GridLayoutData } from '@kbn/grid-layout'; +import { AppMountParameters } from '@kbn/core-application-browser'; +import { EuiPageTemplate, EuiProvider } from '@elastic/eui'; + +export const GridExample = () => { + return ( + + + + + { + return

; + }} + getCreationOptions={() => { + const initialLayout: GridLayoutData = [ + { + title: 'Large section', + isCollapsed: false, + panels: { + panel1: { column: 0, row: 0, width: 12, height: 6, id: 'panel1' }, + panel2: { column: 0, row: 6, width: 8, height: 4, id: 'panel2' }, + panel3: { column: 8, row: 6, width: 12, height: 4, id: 'panel3' }, + panel4: { column: 0, row: 10, width: 48, height: 4, id: 'panel4' }, + panel5: { column: 12, row: 0, width: 36, height: 6, id: 'panel5' }, + panel6: { column: 24, row: 6, width: 24, height: 4, id: 'panel6' }, + panel7: { column: 20, row: 6, width: 4, height: 2, id: 'panel7' }, + panel8: { column: 20, row: 8, width: 4, height: 2, id: 'panel8' }, + }, + }, + { + title: 'Small section', + isCollapsed: false, + panels: { panel9: { column: 0, row: 0, width: 12, height: 6, id: 'panel9' } }, + }, + { + title: 'Another small section', + isCollapsed: false, + panels: { panel10: { column: 24, row: 0, width: 12, height: 6, id: 'panel10' } }, + }, + ]; + + return { + gridSettings: { gutterSize: 8, rowHeight: 26, columnCount: 48 }, + initialLayout, + }; + }} + /> + + + + ); +}; + +export const renderGridExampleApp = (element: AppMountParameters['element']) => { + ReactDOM.render(, element); + + return () => ReactDOM.unmountComponentAtNode(element); +}; diff --git a/examples/grid_example/public/index.ts b/examples/grid_example/public/index.ts new file mode 100644 index 0000000000000..b1c5644c055d4 --- /dev/null +++ b/examples/grid_example/public/index.ts @@ -0,0 +1,11 @@ +/* + * 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 { GridExamplePlugin } from './plugin'; + +export const plugin = () => new GridExamplePlugin(); diff --git a/examples/grid_example/public/plugin.ts b/examples/grid_example/public/plugin.ts new file mode 100644 index 0000000000000..a4245bab8fd76 --- /dev/null +++ b/examples/grid_example/public/plugin.ts @@ -0,0 +1,42 @@ +/* + * 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 { AppMountParameters, CoreSetup, CoreStart, Plugin } from '@kbn/core/public'; +import { DeveloperExamplesSetup } from '@kbn/developer-examples-plugin/public'; + +export const GRID_EXAMPLE_APP_ID = 'gridExample'; +const gridExampleTitle = 'Grid Example'; + +interface GridExamplePluginSetupDependencies { + developerExamples: DeveloperExamplesSetup; +} + +export class GridExamplePlugin + implements Plugin +{ + public setup(core: CoreSetup<{}>, { developerExamples }: GridExamplePluginSetupDependencies) { + core.application.register({ + id: GRID_EXAMPLE_APP_ID, + title: gridExampleTitle, + visibleIn: [], + async mount(params: AppMountParameters) { + const { renderGridExampleApp } = await import('./app'); + return renderGridExampleApp(params.element); + }, + }); + developerExamples.register({ + appId: GRID_EXAMPLE_APP_ID, + title: gridExampleTitle, + description: `A playground and learning tool that demonstrates the Dashboard layout engine.`, + }); + } + + public start(core: CoreStart, deps: {}) {} + + public stop() {} +} diff --git a/examples/grid_example/tsconfig.json b/examples/grid_example/tsconfig.json new file mode 100644 index 0000000000000..23be45a74c2f7 --- /dev/null +++ b/examples/grid_example/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types" + }, + "include": ["index.ts", "public/**/*.ts", "public/**/*.tsx", "../../typings/**/*"], + "exclude": ["target/**/*"], + "kbn_references": [ + "@kbn/grid-layout", + "@kbn/core-application-browser", + "@kbn/core", + "@kbn/developer-examples-plugin", + ] +} diff --git a/examples/ui_actions_explorer/public/trigger_context_example.tsx b/examples/ui_actions_explorer/public/trigger_context_example.tsx index 3e94cd253a215..5769c4c6c02b9 100644 --- a/examples/ui_actions_explorer/public/trigger_context_example.tsx +++ b/examples/ui_actions_explorer/public/trigger_context_example.tsx @@ -108,7 +108,7 @@ export function TriggerContextExample({ uiActionsApi }: Props) { const renderCellValue = useMemo(() => { return ({ rowIndex, columnId }: EuiDataGridCellValueElementProps) => { - return rows.hasOwnProperty(rowIndex) ? rows[rowIndex][columnId] : null; + return Object.hasOwn(rows, rowIndex) ? rows[rowIndex][columnId] : null; }; }, [rows]); diff --git a/fleet_packages.json b/fleet_packages.json index 1217c4f2ec861..4ff38b376c6f9 100644 --- a/fleet_packages.json +++ b/fleet_packages.json @@ -30,11 +30,11 @@ }, { "name": "elastic_agent", - "version": "2.0.2" + "version": "2.0.3" }, { "name": "endpoint", - "version": "8.15.0" + "version": "8.15.1" }, { "name": "fleet_server", @@ -56,6 +56,6 @@ }, { "name": "security_detection_engine", - "version": "8.15.2" + "version": "8.15.3" } ] \ No newline at end of file diff --git a/oas_docs/.spectral.yaml b/oas_docs/.spectral.yaml index d01a1e93cc7c4..7ff86442f9b9e 100644 --- a/oas_docs/.spectral.yaml +++ b/oas_docs/.spectral.yaml @@ -1,6 +1,6 @@ -extends: ["spectral:oas"] +extends: ['spectral:oas'] rules: -# Built-in rules + # Built-in rules # Descriptions oas3-parameter-description: warn oas2-parameter-description: warn @@ -13,40 +13,45 @@ rules: oas3-valid-media-example: false oas3-valid-schema-example: false oas2-valid-media-example: false - # Operations - operation-operationId: warn - operation-operationId-unique: warn - operation-operationId-valid-in-url: warn + # Operations + operation-operationId: error + operation-operationId-unique: error + operation-operationId-valid-in-url: false operation-tag-defined: warn operation-tags: warn + # Parameters + # Lower severity to allow optional path parameters + path-params: warn # Responses operation-success-response: warn # Schema - oas3-schema: error - oas2-schema: error + oas3-schema: warn + oas2-schema: warn array-items: false + # Bump.sh handles $ref siblings. Documentation wise it's convenient to have properties like descriptions next to $ref. + no-$ref-siblings: off # Tags openapi-tags: warn openapi-tags-alphabetical: info # Turn off some built-in rules operation-description: false operation-singular-tag: false -# Custom rules + # Custom rules # Descriptions avoid-problematic-words: description: Ban certain words from descriptions - message: "Use appropriate replacements for problematic terms" + message: 'Use appropriate replacements for problematic terms' severity: warn - given: "$..*.description" + given: '$..*.description' then: function: pattern functionOptions: notMatch: /(blacklist|whitelist|execute|kill)/i # Examples operation-success-examples: - formats: ["oas3_1"] + formats: ['oas3_1'] description: Response code 200 should have at least one example. - message: "Each response body should have a realistic example. It must not contain any sensitive or confidential data." + message: 'Each response body should have a realistic example. It must not contain any sensitive or confidential data.' severity: info given: $.paths[*][*].responses.[200].content.[application/json] then: @@ -55,7 +60,7 @@ rules: # Extensions internal-extension: description: Operations should not have x-internal extension. - message: "Do not publish x-internal operations" + message: 'Do not publish x-internal operations' severity: error given: $.paths[*][*] then: @@ -64,16 +69,16 @@ rules: # Operations operation-summary: description: Operations should have summaries. - message: "Each operation should have a summary" + message: 'Each operation should have a summary' severity: error recommended: true - given: $.paths[*][*] + given: $.paths[*][get,put,post,delete,options,head,patch,trace] then: field: summary - function: defined + function: defined operation-summary-length: description: Operation summary should be between 5 and 45 characters - given: "$.paths[*][*]" + given: '$.paths[*][get,put,post,delete,options,head,patch,trace]' then: field: summary function: length @@ -83,14 +88,14 @@ rules: severity: warn simple-verbs-in-summary: given: - - "$.paths[*][*].summary" + - '$.paths[*][*].summary' then: function: pattern functionOptions: - notMatch: "Retrieve|Return|List *" + notMatch: 'Retrieve|Return|List *' severity: warn description: Summaries should use common verbs. - message: "Summaries should use common verbs like Get, Update, Delete whenever possible" + message: 'Summaries should use common verbs like Get, Update, Delete whenever possible' # NOTE: This one hiccups on acronyms so perhaps too noisy # docs-operation-summary-sentence-case: # description: Operation summary should be sentence cased @@ -101,4 +106,3 @@ rules: # functionOptions: # match: /^[A-Z]+[^A-Z]+$/ # severity: warn - diff --git a/oas_docs/README.md b/oas_docs/README.md index 2e11c838241a9..f5317ed084893 100644 --- a/oas_docs/README.md +++ b/oas_docs/README.md @@ -1,8 +1,9 @@ The `bundle.json` and `bundle.serverless.json` files are generated automatically. See `node scripts/capture_oas_snapshot --help` for more info. -The `output/kibana.serverless.yaml` file is a temporary OpenAPI document created by joining some manually-maintained files. -To create it and lint it, run `make api-docs` or `make api-docs-serverless` and `make api-docs-lint` or `make api-docs-lint-serverless`. +The `output/kibana.serverless.yaml` and `output/kibana.yaml` files join some manually-maintained files with the automatically generated files. +To add integrate more files into this bundle, edit the appropriate `oas_docs/scripts/merge*.js` files. +To generate the bundled files, run `make api-docs` (or `make api-docs-serverless` and `make api-docs-stateful`). +To lint them, run `make api-docs-lint` (or `make api-docs-lint-serverless` and `make api-lint-stateful`). -The `output/kibana.yaml` file is a temporary OpenAPI document created by joining some manually-maintained files. -To create it and lint it, run `make api-docs` or `make api-docs-stateful` and `make api-docs-lint` or `make api-docs-lint-stateful`. \ No newline at end of file +To apply some overlays that perform some post-processing and append some content, run `make api-docs-overlay`. \ No newline at end of file diff --git a/oas_docs/bundle.json b/oas_docs/bundle.json index 3c6756b1da369..1f5b3e095ea7a 100644 --- a/oas_docs/bundle.json +++ b/oas_docs/bundle.json @@ -344,9 +344,4725 @@ }, "openapi": "3.0.0", "paths": { + "/api/alerting/rule/{id}": { + "delete": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D#2", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Delete a rule", + "tags": [ + "alerting" + ] + }, + "get": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "additionalProperties": false, + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "connector_type_id": { + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "type": "string" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id", + "connector_type_id", + "params" + ], + "type": "object" + }, + "type": "array" + }, + "active_snoozes": { + "items": { + "description": "List of active snoozes for the rule.", + "type": "string" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "api_key_created_by_user": { + "description": "Indicates whether the API key that is associated with the rule was created by the user.", + "nullable": true, + "type": "boolean" + }, + "api_key_owner": { + "description": "The owner of the API key that is associated with the rule and used to run background tasks.", + "nullable": true, + "type": "string" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "created_at": { + "description": "The date and time that the rule was created.", + "type": "string" + }, + "created_by": { + "description": "The identifier for the user that created the rule.", + "nullable": true, + "type": "string" + }, + "enabled": { + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "execution_status": { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Error message.", + "type": "string" + }, + "reason": { + "description": "Reason for error.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + }, + "last_duration": { + "description": "Duration of last execution of the rule.", + "type": "number" + }, + "last_execution_date": { + "description": "The date and time when rule was executed last.", + "type": "string" + }, + "status": { + "description": "Status of rule execution.", + "enum": [ + "ok", + "active", + "error", + "warning", + "pending", + "unknown" + ], + "type": "string" + }, + "warning": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Warning message.", + "type": "string" + }, + "reason": { + "description": "Reason for warning.", + "enum": [ + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + } + }, + "required": [ + "status", + "last_execution_date" + ], + "type": "object" + }, + "id": { + "description": "The identifier for the rule.", + "type": "string" + }, + "is_snoozed_until": { + "description": "The date when the rule will no longer be snoozed.", + "nullable": true, + "type": "string" + }, + "last_run": { + "additionalProperties": false, + "nullable": true, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "mapped_params": { + "additionalProperties": {}, + "type": "object" + }, + "monitoring": { + "additionalProperties": false, + "description": "Monitoring details of the rule.", + "properties": { + "run": { + "additionalProperties": false, + "description": "Rule run details.", + "properties": { + "calculated_metrics": { + "additionalProperties": false, + "description": "Calculation of different percentiles and success ratio.", + "properties": { + "p50": { + "type": "number" + }, + "p95": { + "type": "number" + }, + "p99": { + "type": "number" + }, + "success_ratio": { + "type": "number" + } + }, + "required": [ + "success_ratio" + ], + "type": "object" + }, + "history": { + "description": "History of the rule run.", + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule run.", + "type": "number" + }, + "outcome": { + "additionalProperties": false, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "success": { + "description": "Indicates whether the rule run was successful.", + "type": "boolean" + }, + "timestamp": { + "description": "Time of rule run.", + "type": "number" + } + }, + "required": [ + "success", + "timestamp" + ], + "type": "object" + }, + "type": "array" + }, + "last_run": { + "additionalProperties": false, + "properties": { + "metrics": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of most recent rule run.", + "type": "number" + }, + "gap_duration_s": { + "description": "Duration in seconds of rule run gap.", + "nullable": true, + "type": "number" + }, + "total_alerts_created": { + "description": "Total number of alerts created during last rule run.", + "nullable": true, + "type": "number" + }, + "total_alerts_detected": { + "description": "Total number of alerts detected during last rule run.", + "nullable": true, + "type": "number" + }, + "total_indexing_duration_ms": { + "description": "Total time spent indexing documents during last rule run in milliseconds.", + "nullable": true, + "type": "number" + }, + "total_search_duration_ms": { + "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "timestamp": { + "description": "Time of the most recent rule run.", + "type": "string" + } + }, + "required": [ + "timestamp", + "metrics" + ], + "type": "object" + } + }, + "required": [ + "history", + "calculated_metrics", + "last_run" + ], + "type": "object" + } + }, + "required": [ + "run" + ], + "type": "object" + }, + "mute_all": { + "description": "Indicates whether all alerts are muted.", + "type": "boolean" + }, + "muted_alert_ids": { + "items": { + "description": "List of identifiers of muted alerts. ", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": " The name of the rule.", + "type": "string" + }, + "next_run": { + "description": "Date and time of the next run of the rule.", + "nullable": true, + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "revision": { + "description": "The rule revision number.", + "type": "number" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "running": { + "description": "Indicates whether the rule is running.", + "nullable": true, + "type": "boolean" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "scheduled_task_id": { + "description": "Identifier of the scheduled task.", + "type": "string" + }, + "snooze_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule snooze schedule.", + "type": "number" + }, + "id": { + "description": "Identifier of the rule snooze schedule.", + "type": "string" + }, + "rRule": { + "additionalProperties": false, + "properties": { + "byhour": { + "items": { + "description": "Indicates hours of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "byminute": { + "items": { + "description": "Indicates minutes of the hour to recur.", + "type": "number" + }, + "type": "array" + }, + "bymonth": { + "items": { + "description": "Indicates months of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "bymonthday": { + "items": { + "description": "Indicates the days of the month to recur.", + "type": "number" + }, + "type": "array" + }, + "bysecond": { + "items": { + "description": "Indicates seconds of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "bysetpos": { + "items": { + "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", + "type": "number" + }, + "type": "array" + }, + "byweekday": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." + }, + "type": "array" + }, + "byweekno": { + "items": { + "description": "Indicates number of the week hours to recur.", + "type": "number" + }, + "type": "array" + }, + "byyearday": { + "items": { + "description": "Indicates the days of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "count": { + "description": "Number of times the rule should recur until it stops.", + "type": "number" + }, + "dtstart": { + "description": "Rule start date in Coordinated Universal Time (UTC).", + "type": "string" + }, + "freq": { + "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "interval": { + "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", + "type": "number" + }, + "tzid": { + "description": "Indicates timezone abbreviation.", + "type": "string" + }, + "until": { + "description": "Recur the rule until this date.", + "type": "string" + }, + "wkst": { + "description": "Indicates the start of week, defaults to Monday.", + "enum": [ + "MO", + "TU", + "WE", + "TH", + "FR", + "SA", + "SU" + ], + "type": "string" + } + }, + "required": [ + "dtstart", + "tzid" + ], + "type": "object" + }, + "skipRecurrences": { + "items": { + "description": "Skips recurrence of rule on this date.", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "duration", + "rRule" + ], + "type": "object" + }, + "type": "array" + }, + "tags": { + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "deprecated": true, + "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + }, + "updated_at": { + "description": "The date and time that the rule was updated most recently.", + "type": "string" + }, + "updated_by": { + "description": "The identifier for the user that updated this rule most recently.", + "nullable": true, + "type": "string" + }, + "view_in_app_relative_url": { + "description": "Relative URL to view rule in the app.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "id", + "enabled", + "name", + "tags", + "rule_type_id", + "consumer", + "schedule", + "actions", + "params", + "created_by", + "updated_by", + "created_at", + "updated_at", + "api_key_owner", + "mute_all", + "muted_alert_ids", + "execution_status", + "revision" + ], + "type": "object" + } + } + }, + "description": "Indicates a successful call." + } + }, + "summary": "Get rule details", + "tags": [ + "alerting" + ] + }, + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%3F%7D#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule. If it is omitted, an ID is randomly generated.", + "in": "path", + "name": "id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "default": [], + "items": { + "additionalProperties": false, + "description": "An action that runs under defined conditions.", + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Conditions that affect whether the action runs. If you specify multiple conditions, all conditions must be met for the action to run. For example, if an alert occurs within the specified time frame and matches the query, the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "description": "Defines the range of time in a day that the action can run. If the `start` value is `00:00` and the `end` value is `24:00`, actions be generated all day.", + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if `notify_when` is set to `onThrottleInterval`. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "default": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "name": { + "description": "The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.", + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "default": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "schedule": { + "additionalProperties": false, + "description": "The check interval, which specifies how frequently the rule conditions are checked.", + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "tags": { + "default": [], + "description": "The tags for the rule.", + "items": { + "type": "string" + }, + "type": "array" + }, + "throttle": { + "description": "Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "name", + "rule_type_id", + "consumer", + "schedule" + ], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "additionalProperties": false, + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "connector_type_id": { + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "type": "string" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id", + "connector_type_id", + "params" + ], + "type": "object" + }, + "type": "array" + }, + "active_snoozes": { + "items": { + "description": "List of active snoozes for the rule.", + "type": "string" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "api_key_created_by_user": { + "description": "Indicates whether the API key that is associated with the rule was created by the user.", + "nullable": true, + "type": "boolean" + }, + "api_key_owner": { + "description": "The owner of the API key that is associated with the rule and used to run background tasks.", + "nullable": true, + "type": "string" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "created_at": { + "description": "The date and time that the rule was created.", + "type": "string" + }, + "created_by": { + "description": "The identifier for the user that created the rule.", + "nullable": true, + "type": "string" + }, + "enabled": { + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "execution_status": { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Error message.", + "type": "string" + }, + "reason": { + "description": "Reason for error.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + }, + "last_duration": { + "description": "Duration of last execution of the rule.", + "type": "number" + }, + "last_execution_date": { + "description": "The date and time when rule was executed last.", + "type": "string" + }, + "status": { + "description": "Status of rule execution.", + "enum": [ + "ok", + "active", + "error", + "warning", + "pending", + "unknown" + ], + "type": "string" + }, + "warning": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Warning message.", + "type": "string" + }, + "reason": { + "description": "Reason for warning.", + "enum": [ + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + } + }, + "required": [ + "status", + "last_execution_date" + ], + "type": "object" + }, + "id": { + "description": "The identifier for the rule.", + "type": "string" + }, + "is_snoozed_until": { + "description": "The date when the rule will no longer be snoozed.", + "nullable": true, + "type": "string" + }, + "last_run": { + "additionalProperties": false, + "nullable": true, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "mapped_params": { + "additionalProperties": {}, + "type": "object" + }, + "monitoring": { + "additionalProperties": false, + "description": "Monitoring details of the rule.", + "properties": { + "run": { + "additionalProperties": false, + "description": "Rule run details.", + "properties": { + "calculated_metrics": { + "additionalProperties": false, + "description": "Calculation of different percentiles and success ratio.", + "properties": { + "p50": { + "type": "number" + }, + "p95": { + "type": "number" + }, + "p99": { + "type": "number" + }, + "success_ratio": { + "type": "number" + } + }, + "required": [ + "success_ratio" + ], + "type": "object" + }, + "history": { + "description": "History of the rule run.", + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule run.", + "type": "number" + }, + "outcome": { + "additionalProperties": false, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "success": { + "description": "Indicates whether the rule run was successful.", + "type": "boolean" + }, + "timestamp": { + "description": "Time of rule run.", + "type": "number" + } + }, + "required": [ + "success", + "timestamp" + ], + "type": "object" + }, + "type": "array" + }, + "last_run": { + "additionalProperties": false, + "properties": { + "metrics": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of most recent rule run.", + "type": "number" + }, + "gap_duration_s": { + "description": "Duration in seconds of rule run gap.", + "nullable": true, + "type": "number" + }, + "total_alerts_created": { + "description": "Total number of alerts created during last rule run.", + "nullable": true, + "type": "number" + }, + "total_alerts_detected": { + "description": "Total number of alerts detected during last rule run.", + "nullable": true, + "type": "number" + }, + "total_indexing_duration_ms": { + "description": "Total time spent indexing documents during last rule run in milliseconds.", + "nullable": true, + "type": "number" + }, + "total_search_duration_ms": { + "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "timestamp": { + "description": "Time of the most recent rule run.", + "type": "string" + } + }, + "required": [ + "timestamp", + "metrics" + ], + "type": "object" + } + }, + "required": [ + "history", + "calculated_metrics", + "last_run" + ], + "type": "object" + } + }, + "required": [ + "run" + ], + "type": "object" + }, + "mute_all": { + "description": "Indicates whether all alerts are muted.", + "type": "boolean" + }, + "muted_alert_ids": { + "items": { + "description": "List of identifiers of muted alerts. ", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": " The name of the rule.", + "type": "string" + }, + "next_run": { + "description": "Date and time of the next run of the rule.", + "nullable": true, + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "revision": { + "description": "The rule revision number.", + "type": "number" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "running": { + "description": "Indicates whether the rule is running.", + "nullable": true, + "type": "boolean" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "scheduled_task_id": { + "description": "Identifier of the scheduled task.", + "type": "string" + }, + "snooze_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule snooze schedule.", + "type": "number" + }, + "id": { + "description": "Identifier of the rule snooze schedule.", + "type": "string" + }, + "rRule": { + "additionalProperties": false, + "properties": { + "byhour": { + "items": { + "description": "Indicates hours of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "byminute": { + "items": { + "description": "Indicates minutes of the hour to recur.", + "type": "number" + }, + "type": "array" + }, + "bymonth": { + "items": { + "description": "Indicates months of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "bymonthday": { + "items": { + "description": "Indicates the days of the month to recur.", + "type": "number" + }, + "type": "array" + }, + "bysecond": { + "items": { + "description": "Indicates seconds of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "bysetpos": { + "items": { + "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", + "type": "number" + }, + "type": "array" + }, + "byweekday": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." + }, + "type": "array" + }, + "byweekno": { + "items": { + "description": "Indicates number of the week hours to recur.", + "type": "number" + }, + "type": "array" + }, + "byyearday": { + "items": { + "description": "Indicates the days of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "count": { + "description": "Number of times the rule should recur until it stops.", + "type": "number" + }, + "dtstart": { + "description": "Rule start date in Coordinated Universal Time (UTC).", + "type": "string" + }, + "freq": { + "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "interval": { + "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", + "type": "number" + }, + "tzid": { + "description": "Indicates timezone abbreviation.", + "type": "string" + }, + "until": { + "description": "Recur the rule until this date.", + "type": "string" + }, + "wkst": { + "description": "Indicates the start of week, defaults to Monday.", + "enum": [ + "MO", + "TU", + "WE", + "TH", + "FR", + "SA", + "SU" + ], + "type": "string" + } + }, + "required": [ + "dtstart", + "tzid" + ], + "type": "object" + }, + "skipRecurrences": { + "items": { + "description": "Skips recurrence of rule on this date.", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "duration", + "rRule" + ], + "type": "object" + }, + "type": "array" + }, + "tags": { + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "deprecated": true, + "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + }, + "updated_at": { + "description": "The date and time that the rule was updated most recently.", + "type": "string" + }, + "updated_by": { + "description": "The identifier for the user that updated this rule most recently.", + "nullable": true, + "type": "string" + }, + "view_in_app_relative_url": { + "description": "Relative URL to view rule in the app.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "id", + "enabled", + "name", + "tags", + "rule_type_id", + "consumer", + "schedule", + "actions", + "params", + "created_by", + "updated_by", + "created_at", + "updated_at", + "api_key_owner", + "mute_all", + "muted_alert_ids", + "execution_status", + "revision" + ], + "type": "object" + } + } + }, + "description": "Indicates a successful call." + } + }, + "summary": "Create a rule", + "tags": [ + "alerting" + ] + }, + "put": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D#1", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "default": [], + "items": { + "additionalProperties": false, + "description": "An action that runs under defined conditions.", + "properties": { + "alerts_filter": { + "additionalProperties": false, + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "description": "Defines the range of time in a day that the action can run. If the `start` value is `00:00` and the `end` value is `24:00`, actions be generated all day.", + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if `notify_when` is set to `onThrottleInterval`. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "default": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "name": { + "description": "The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.", + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "default": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "tags": { + "default": [], + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "description": "Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "name", + "schedule" + ], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "additionalProperties": false, + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "connector_type_id": { + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "type": "string" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id", + "connector_type_id", + "params" + ], + "type": "object" + }, + "type": "array" + }, + "active_snoozes": { + "items": { + "description": "List of active snoozes for the rule.", + "type": "string" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "api_key_created_by_user": { + "description": "Indicates whether the API key that is associated with the rule was created by the user.", + "nullable": true, + "type": "boolean" + }, + "api_key_owner": { + "description": "The owner of the API key that is associated with the rule and used to run background tasks.", + "nullable": true, + "type": "string" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "created_at": { + "description": "The date and time that the rule was created.", + "type": "string" + }, + "created_by": { + "description": "The identifier for the user that created the rule.", + "nullable": true, + "type": "string" + }, + "enabled": { + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "execution_status": { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Error message.", + "type": "string" + }, + "reason": { + "description": "Reason for error.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + }, + "last_duration": { + "description": "Duration of last execution of the rule.", + "type": "number" + }, + "last_execution_date": { + "description": "The date and time when rule was executed last.", + "type": "string" + }, + "status": { + "description": "Status of rule execution.", + "enum": [ + "ok", + "active", + "error", + "warning", + "pending", + "unknown" + ], + "type": "string" + }, + "warning": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Warning message.", + "type": "string" + }, + "reason": { + "description": "Reason for warning.", + "enum": [ + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + } + }, + "required": [ + "status", + "last_execution_date" + ], + "type": "object" + }, + "id": { + "description": "The identifier for the rule.", + "type": "string" + }, + "is_snoozed_until": { + "description": "The date when the rule will no longer be snoozed.", + "nullable": true, + "type": "string" + }, + "last_run": { + "additionalProperties": false, + "nullable": true, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "mapped_params": { + "additionalProperties": {}, + "type": "object" + }, + "monitoring": { + "additionalProperties": false, + "description": "Monitoring details of the rule.", + "properties": { + "run": { + "additionalProperties": false, + "description": "Rule run details.", + "properties": { + "calculated_metrics": { + "additionalProperties": false, + "description": "Calculation of different percentiles and success ratio.", + "properties": { + "p50": { + "type": "number" + }, + "p95": { + "type": "number" + }, + "p99": { + "type": "number" + }, + "success_ratio": { + "type": "number" + } + }, + "required": [ + "success_ratio" + ], + "type": "object" + }, + "history": { + "description": "History of the rule run.", + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule run.", + "type": "number" + }, + "outcome": { + "additionalProperties": false, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "success": { + "description": "Indicates whether the rule run was successful.", + "type": "boolean" + }, + "timestamp": { + "description": "Time of rule run.", + "type": "number" + } + }, + "required": [ + "success", + "timestamp" + ], + "type": "object" + }, + "type": "array" + }, + "last_run": { + "additionalProperties": false, + "properties": { + "metrics": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of most recent rule run.", + "type": "number" + }, + "gap_duration_s": { + "description": "Duration in seconds of rule run gap.", + "nullable": true, + "type": "number" + }, + "total_alerts_created": { + "description": "Total number of alerts created during last rule run.", + "nullable": true, + "type": "number" + }, + "total_alerts_detected": { + "description": "Total number of alerts detected during last rule run.", + "nullable": true, + "type": "number" + }, + "total_indexing_duration_ms": { + "description": "Total time spent indexing documents during last rule run in milliseconds.", + "nullable": true, + "type": "number" + }, + "total_search_duration_ms": { + "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "timestamp": { + "description": "Time of the most recent rule run.", + "type": "string" + } + }, + "required": [ + "timestamp", + "metrics" + ], + "type": "object" + } + }, + "required": [ + "history", + "calculated_metrics", + "last_run" + ], + "type": "object" + } + }, + "required": [ + "run" + ], + "type": "object" + }, + "mute_all": { + "description": "Indicates whether all alerts are muted.", + "type": "boolean" + }, + "muted_alert_ids": { + "items": { + "description": "List of identifiers of muted alerts. ", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": " The name of the rule.", + "type": "string" + }, + "next_run": { + "description": "Date and time of the next run of the rule.", + "nullable": true, + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "revision": { + "description": "The rule revision number.", + "type": "number" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "running": { + "description": "Indicates whether the rule is running.", + "nullable": true, + "type": "boolean" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "scheduled_task_id": { + "description": "Identifier of the scheduled task.", + "type": "string" + }, + "snooze_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule snooze schedule.", + "type": "number" + }, + "id": { + "description": "Identifier of the rule snooze schedule.", + "type": "string" + }, + "rRule": { + "additionalProperties": false, + "properties": { + "byhour": { + "items": { + "description": "Indicates hours of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "byminute": { + "items": { + "description": "Indicates minutes of the hour to recur.", + "type": "number" + }, + "type": "array" + }, + "bymonth": { + "items": { + "description": "Indicates months of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "bymonthday": { + "items": { + "description": "Indicates the days of the month to recur.", + "type": "number" + }, + "type": "array" + }, + "bysecond": { + "items": { + "description": "Indicates seconds of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "bysetpos": { + "items": { + "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", + "type": "number" + }, + "type": "array" + }, + "byweekday": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." + }, + "type": "array" + }, + "byweekno": { + "items": { + "description": "Indicates number of the week hours to recur.", + "type": "number" + }, + "type": "array" + }, + "byyearday": { + "items": { + "description": "Indicates the days of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "count": { + "description": "Number of times the rule should recur until it stops.", + "type": "number" + }, + "dtstart": { + "description": "Rule start date in Coordinated Universal Time (UTC).", + "type": "string" + }, + "freq": { + "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "interval": { + "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", + "type": "number" + }, + "tzid": { + "description": "Indicates timezone abbreviation.", + "type": "string" + }, + "until": { + "description": "Recur the rule until this date.", + "type": "string" + }, + "wkst": { + "description": "Indicates the start of week, defaults to Monday.", + "enum": [ + "MO", + "TU", + "WE", + "TH", + "FR", + "SA", + "SU" + ], + "type": "string" + } + }, + "required": [ + "dtstart", + "tzid" + ], + "type": "object" + }, + "skipRecurrences": { + "items": { + "description": "Skips recurrence of rule on this date.", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "duration", + "rRule" + ], + "type": "object" + }, + "type": "array" + }, + "tags": { + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "deprecated": true, + "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + }, + "updated_at": { + "description": "The date and time that the rule was updated most recently.", + "type": "string" + }, + "updated_by": { + "description": "The identifier for the user that updated this rule most recently.", + "nullable": true, + "type": "string" + }, + "view_in_app_relative_url": { + "description": "Relative URL to view rule in the app.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "id", + "enabled", + "name", + "tags", + "rule_type_id", + "consumer", + "schedule", + "actions", + "params", + "created_by", + "updated_by", + "created_at", + "updated_at", + "api_key_owner", + "mute_all", + "muted_alert_ids", + "execution_status", + "revision" + ], + "type": "object" + } + } + }, + "description": "Indicates a successful call." + } + }, + "summary": "Update a rule", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_disable": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_disable#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "nullable": true, + "properties": { + "untrack": { + "description": "Defines whether this rule's alerts should be untracked.", + "type": "boolean" + } + }, + "type": "object", + "x-oas-optional": true + } + } + } + }, + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Disable a rule", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_enable": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_enable#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Enable a rule", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_mute_all": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_mute_all#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Mute all alerts", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_unmute_all": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_unmute_all#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Unmute all alerts", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_update_api_key": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_update_api_key#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Update the API key for a rule", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_mute#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "rule_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The identifier for the alert.", + "in": "path", + "name": "alert_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Mute an alert", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_unmute#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "rule_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The identifier for the alert.", + "in": "path", + "name": "alert_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Unmute an alert", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rules/_find": { + "get": { + "operationId": "%2Fapi%2Falerting%2Frules%2F_find#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "The number of rules to return per page.", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "default": 10, + "minimum": 0, + "type": "number" + } + }, + { + "description": "The page number to return.", + "in": "query", + "name": "page", + "required": false, + "schema": { + "default": 1, + "minimum": 1, + "type": "number" + } + }, + { + "description": "An Elasticsearch simple_query_string query that filters the objects in the response.", + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "The default operator to use for the simple_query_string.", + "in": "query", + "name": "default_search_operator", + "required": false, + "schema": { + "default": "OR", + "enum": [ + "OR", + "AND" + ], + "type": "string" + } + }, + { + "description": "The fields to perform the simple_query_string parsed query against.", + "in": "query", + "name": "search_fields", + "required": false, + "schema": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + } + }, + { + "description": "Determines which field is used to sort the results. The field must exist in the `attributes` key of the response.", + "in": "query", + "name": "sort_field", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Determines the sort order.", + "in": "query", + "name": "sort_order", + "required": false, + "schema": { + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + { + "description": "Filters the rules that have a relation with the reference objects with a specific type and identifier.", + "in": "query", + "name": "has_reference", + "required": false, + "schema": { + "additionalProperties": false, + "nullable": true, + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" + } + }, + { + "in": "query", + "name": "fields", + "required": false, + "schema": { + "items": { + "description": "The fields to return in the `attributes` key of the response.", + "type": "string" + }, + "type": "array" + } + }, + { + "description": "A KQL string that you filter with an attribute from your saved object. It should look like `savedObjectType.attributes.title: \"myTitle\"`. However, if you used a direct attribute of a saved object, such as `updatedAt`, you must define your filter, for example, `savedObjectType.updatedAt > 2018-12-22`.", + "in": "query", + "name": "filter", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "filter_consumers", + "required": false, + "schema": { + "items": { + "description": "List of consumers to filter.", + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "additionalProperties": false, + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "connector_type_id": { + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "type": "string" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id", + "connector_type_id", + "params" + ], + "type": "object" + }, + "type": "array" + }, + "active_snoozes": { + "items": { + "description": "List of active snoozes for the rule.", + "type": "string" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "api_key_created_by_user": { + "description": "Indicates whether the API key that is associated with the rule was created by the user.", + "nullable": true, + "type": "boolean" + }, + "api_key_owner": { + "description": "The owner of the API key that is associated with the rule and used to run background tasks.", + "nullable": true, + "type": "string" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "created_at": { + "description": "The date and time that the rule was created.", + "type": "string" + }, + "created_by": { + "description": "The identifier for the user that created the rule.", + "nullable": true, + "type": "string" + }, + "enabled": { + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "execution_status": { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Error message.", + "type": "string" + }, + "reason": { + "description": "Reason for error.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + }, + "last_duration": { + "description": "Duration of last execution of the rule.", + "type": "number" + }, + "last_execution_date": { + "description": "The date and time when rule was executed last.", + "type": "string" + }, + "status": { + "description": "Status of rule execution.", + "enum": [ + "ok", + "active", + "error", + "warning", + "pending", + "unknown" + ], + "type": "string" + }, + "warning": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Warning message.", + "type": "string" + }, + "reason": { + "description": "Reason for warning.", + "enum": [ + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + } + }, + "required": [ + "status", + "last_execution_date" + ], + "type": "object" + }, + "id": { + "description": "The identifier for the rule.", + "type": "string" + }, + "is_snoozed_until": { + "description": "The date when the rule will no longer be snoozed.", + "nullable": true, + "type": "string" + }, + "last_run": { + "additionalProperties": false, + "nullable": true, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "mapped_params": { + "additionalProperties": {}, + "type": "object" + }, + "monitoring": { + "additionalProperties": false, + "description": "Monitoring details of the rule.", + "properties": { + "run": { + "additionalProperties": false, + "description": "Rule run details.", + "properties": { + "calculated_metrics": { + "additionalProperties": false, + "description": "Calculation of different percentiles and success ratio.", + "properties": { + "p50": { + "type": "number" + }, + "p95": { + "type": "number" + }, + "p99": { + "type": "number" + }, + "success_ratio": { + "type": "number" + } + }, + "required": [ + "success_ratio" + ], + "type": "object" + }, + "history": { + "description": "History of the rule run.", + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule run.", + "type": "number" + }, + "outcome": { + "additionalProperties": false, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "success": { + "description": "Indicates whether the rule run was successful.", + "type": "boolean" + }, + "timestamp": { + "description": "Time of rule run.", + "type": "number" + } + }, + "required": [ + "success", + "timestamp" + ], + "type": "object" + }, + "type": "array" + }, + "last_run": { + "additionalProperties": false, + "properties": { + "metrics": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of most recent rule run.", + "type": "number" + }, + "gap_duration_s": { + "description": "Duration in seconds of rule run gap.", + "nullable": true, + "type": "number" + }, + "total_alerts_created": { + "description": "Total number of alerts created during last rule run.", + "nullable": true, + "type": "number" + }, + "total_alerts_detected": { + "description": "Total number of alerts detected during last rule run.", + "nullable": true, + "type": "number" + }, + "total_indexing_duration_ms": { + "description": "Total time spent indexing documents during last rule run in milliseconds.", + "nullable": true, + "type": "number" + }, + "total_search_duration_ms": { + "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "timestamp": { + "description": "Time of the most recent rule run.", + "type": "string" + } + }, + "required": [ + "timestamp", + "metrics" + ], + "type": "object" + } + }, + "required": [ + "history", + "calculated_metrics", + "last_run" + ], + "type": "object" + } + }, + "required": [ + "run" + ], + "type": "object" + }, + "mute_all": { + "description": "Indicates whether all alerts are muted.", + "type": "boolean" + }, + "muted_alert_ids": { + "items": { + "description": "List of identifiers of muted alerts. ", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": " The name of the rule.", + "type": "string" + }, + "next_run": { + "description": "Date and time of the next run of the rule.", + "nullable": true, + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "revision": { + "description": "The rule revision number.", + "type": "number" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "running": { + "description": "Indicates whether the rule is running.", + "nullable": true, + "type": "boolean" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "scheduled_task_id": { + "description": "Identifier of the scheduled task.", + "type": "string" + }, + "snooze_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule snooze schedule.", + "type": "number" + }, + "id": { + "description": "Identifier of the rule snooze schedule.", + "type": "string" + }, + "rRule": { + "additionalProperties": false, + "properties": { + "byhour": { + "items": { + "description": "Indicates hours of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "byminute": { + "items": { + "description": "Indicates minutes of the hour to recur.", + "type": "number" + }, + "type": "array" + }, + "bymonth": { + "items": { + "description": "Indicates months of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "bymonthday": { + "items": { + "description": "Indicates the days of the month to recur.", + "type": "number" + }, + "type": "array" + }, + "bysecond": { + "items": { + "description": "Indicates seconds of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "bysetpos": { + "items": { + "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", + "type": "number" + }, + "type": "array" + }, + "byweekday": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." + }, + "type": "array" + }, + "byweekno": { + "items": { + "description": "Indicates number of the week hours to recur.", + "type": "number" + }, + "type": "array" + }, + "byyearday": { + "items": { + "description": "Indicates the days of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "count": { + "description": "Number of times the rule should recur until it stops.", + "type": "number" + }, + "dtstart": { + "description": "Rule start date in Coordinated Universal Time (UTC).", + "type": "string" + }, + "freq": { + "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "interval": { + "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", + "type": "number" + }, + "tzid": { + "description": "Indicates timezone abbreviation.", + "type": "string" + }, + "until": { + "description": "Recur the rule until this date.", + "type": "string" + }, + "wkst": { + "description": "Indicates the start of week, defaults to Monday.", + "enum": [ + "MO", + "TU", + "WE", + "TH", + "FR", + "SA", + "SU" + ], + "type": "string" + } + }, + "required": [ + "dtstart", + "tzid" + ], + "type": "object" + }, + "skipRecurrences": { + "items": { + "description": "Skips recurrence of rule on this date.", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "duration", + "rRule" + ], + "type": "object" + }, + "type": "array" + }, + "tags": { + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "deprecated": true, + "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + }, + "updated_at": { + "description": "The date and time that the rule was updated most recently.", + "type": "string" + }, + "updated_by": { + "description": "The identifier for the user that updated this rule most recently.", + "nullable": true, + "type": "string" + }, + "view_in_app_relative_url": { + "description": "Relative URL to view rule in the app.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "id", + "enabled", + "name", + "tags", + "rule_type_id", + "consumer", + "schedule", + "actions", + "params", + "created_by", + "updated_by", + "created_at", + "updated_at", + "api_key_owner", + "mute_all", + "muted_alert_ids", + "execution_status", + "revision" + ], + "type": "object" + } + } + }, + "description": "Indicates a successful call." + } + }, + "summary": "Get information about rules", + "tags": [ + "alerting" + ] + } + }, "/api/status": { "get": { - "operationId": "/api/status#0", + "operationId": "%2Fapi%2Fstatus#0", "parameters": [ { "description": "The version of the API to use", @@ -435,6 +5151,9 @@ } ], "tags": [ + { + "name": "alerting" + }, { "name": "system" } diff --git a/oas_docs/bundle.serverless.json b/oas_docs/bundle.serverless.json index 3c6756b1da369..1f5b3e095ea7a 100644 --- a/oas_docs/bundle.serverless.json +++ b/oas_docs/bundle.serverless.json @@ -344,9 +344,4725 @@ }, "openapi": "3.0.0", "paths": { + "/api/alerting/rule/{id}": { + "delete": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D#2", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Delete a rule", + "tags": [ + "alerting" + ] + }, + "get": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "additionalProperties": false, + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "connector_type_id": { + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "type": "string" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id", + "connector_type_id", + "params" + ], + "type": "object" + }, + "type": "array" + }, + "active_snoozes": { + "items": { + "description": "List of active snoozes for the rule.", + "type": "string" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "api_key_created_by_user": { + "description": "Indicates whether the API key that is associated with the rule was created by the user.", + "nullable": true, + "type": "boolean" + }, + "api_key_owner": { + "description": "The owner of the API key that is associated with the rule and used to run background tasks.", + "nullable": true, + "type": "string" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "created_at": { + "description": "The date and time that the rule was created.", + "type": "string" + }, + "created_by": { + "description": "The identifier for the user that created the rule.", + "nullable": true, + "type": "string" + }, + "enabled": { + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "execution_status": { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Error message.", + "type": "string" + }, + "reason": { + "description": "Reason for error.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + }, + "last_duration": { + "description": "Duration of last execution of the rule.", + "type": "number" + }, + "last_execution_date": { + "description": "The date and time when rule was executed last.", + "type": "string" + }, + "status": { + "description": "Status of rule execution.", + "enum": [ + "ok", + "active", + "error", + "warning", + "pending", + "unknown" + ], + "type": "string" + }, + "warning": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Warning message.", + "type": "string" + }, + "reason": { + "description": "Reason for warning.", + "enum": [ + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + } + }, + "required": [ + "status", + "last_execution_date" + ], + "type": "object" + }, + "id": { + "description": "The identifier for the rule.", + "type": "string" + }, + "is_snoozed_until": { + "description": "The date when the rule will no longer be snoozed.", + "nullable": true, + "type": "string" + }, + "last_run": { + "additionalProperties": false, + "nullable": true, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "mapped_params": { + "additionalProperties": {}, + "type": "object" + }, + "monitoring": { + "additionalProperties": false, + "description": "Monitoring details of the rule.", + "properties": { + "run": { + "additionalProperties": false, + "description": "Rule run details.", + "properties": { + "calculated_metrics": { + "additionalProperties": false, + "description": "Calculation of different percentiles and success ratio.", + "properties": { + "p50": { + "type": "number" + }, + "p95": { + "type": "number" + }, + "p99": { + "type": "number" + }, + "success_ratio": { + "type": "number" + } + }, + "required": [ + "success_ratio" + ], + "type": "object" + }, + "history": { + "description": "History of the rule run.", + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule run.", + "type": "number" + }, + "outcome": { + "additionalProperties": false, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "success": { + "description": "Indicates whether the rule run was successful.", + "type": "boolean" + }, + "timestamp": { + "description": "Time of rule run.", + "type": "number" + } + }, + "required": [ + "success", + "timestamp" + ], + "type": "object" + }, + "type": "array" + }, + "last_run": { + "additionalProperties": false, + "properties": { + "metrics": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of most recent rule run.", + "type": "number" + }, + "gap_duration_s": { + "description": "Duration in seconds of rule run gap.", + "nullable": true, + "type": "number" + }, + "total_alerts_created": { + "description": "Total number of alerts created during last rule run.", + "nullable": true, + "type": "number" + }, + "total_alerts_detected": { + "description": "Total number of alerts detected during last rule run.", + "nullable": true, + "type": "number" + }, + "total_indexing_duration_ms": { + "description": "Total time spent indexing documents during last rule run in milliseconds.", + "nullable": true, + "type": "number" + }, + "total_search_duration_ms": { + "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "timestamp": { + "description": "Time of the most recent rule run.", + "type": "string" + } + }, + "required": [ + "timestamp", + "metrics" + ], + "type": "object" + } + }, + "required": [ + "history", + "calculated_metrics", + "last_run" + ], + "type": "object" + } + }, + "required": [ + "run" + ], + "type": "object" + }, + "mute_all": { + "description": "Indicates whether all alerts are muted.", + "type": "boolean" + }, + "muted_alert_ids": { + "items": { + "description": "List of identifiers of muted alerts. ", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": " The name of the rule.", + "type": "string" + }, + "next_run": { + "description": "Date and time of the next run of the rule.", + "nullable": true, + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "revision": { + "description": "The rule revision number.", + "type": "number" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "running": { + "description": "Indicates whether the rule is running.", + "nullable": true, + "type": "boolean" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "scheduled_task_id": { + "description": "Identifier of the scheduled task.", + "type": "string" + }, + "snooze_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule snooze schedule.", + "type": "number" + }, + "id": { + "description": "Identifier of the rule snooze schedule.", + "type": "string" + }, + "rRule": { + "additionalProperties": false, + "properties": { + "byhour": { + "items": { + "description": "Indicates hours of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "byminute": { + "items": { + "description": "Indicates minutes of the hour to recur.", + "type": "number" + }, + "type": "array" + }, + "bymonth": { + "items": { + "description": "Indicates months of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "bymonthday": { + "items": { + "description": "Indicates the days of the month to recur.", + "type": "number" + }, + "type": "array" + }, + "bysecond": { + "items": { + "description": "Indicates seconds of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "bysetpos": { + "items": { + "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", + "type": "number" + }, + "type": "array" + }, + "byweekday": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." + }, + "type": "array" + }, + "byweekno": { + "items": { + "description": "Indicates number of the week hours to recur.", + "type": "number" + }, + "type": "array" + }, + "byyearday": { + "items": { + "description": "Indicates the days of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "count": { + "description": "Number of times the rule should recur until it stops.", + "type": "number" + }, + "dtstart": { + "description": "Rule start date in Coordinated Universal Time (UTC).", + "type": "string" + }, + "freq": { + "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "interval": { + "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", + "type": "number" + }, + "tzid": { + "description": "Indicates timezone abbreviation.", + "type": "string" + }, + "until": { + "description": "Recur the rule until this date.", + "type": "string" + }, + "wkst": { + "description": "Indicates the start of week, defaults to Monday.", + "enum": [ + "MO", + "TU", + "WE", + "TH", + "FR", + "SA", + "SU" + ], + "type": "string" + } + }, + "required": [ + "dtstart", + "tzid" + ], + "type": "object" + }, + "skipRecurrences": { + "items": { + "description": "Skips recurrence of rule on this date.", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "duration", + "rRule" + ], + "type": "object" + }, + "type": "array" + }, + "tags": { + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "deprecated": true, + "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + }, + "updated_at": { + "description": "The date and time that the rule was updated most recently.", + "type": "string" + }, + "updated_by": { + "description": "The identifier for the user that updated this rule most recently.", + "nullable": true, + "type": "string" + }, + "view_in_app_relative_url": { + "description": "Relative URL to view rule in the app.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "id", + "enabled", + "name", + "tags", + "rule_type_id", + "consumer", + "schedule", + "actions", + "params", + "created_by", + "updated_by", + "created_at", + "updated_at", + "api_key_owner", + "mute_all", + "muted_alert_ids", + "execution_status", + "revision" + ], + "type": "object" + } + } + }, + "description": "Indicates a successful call." + } + }, + "summary": "Get rule details", + "tags": [ + "alerting" + ] + }, + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%3F%7D#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule. If it is omitted, an ID is randomly generated.", + "in": "path", + "name": "id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "default": [], + "items": { + "additionalProperties": false, + "description": "An action that runs under defined conditions.", + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Conditions that affect whether the action runs. If you specify multiple conditions, all conditions must be met for the action to run. For example, if an alert occurs within the specified time frame and matches the query, the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "description": "Defines the range of time in a day that the action can run. If the `start` value is `00:00` and the `end` value is `24:00`, actions be generated all day.", + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if `notify_when` is set to `onThrottleInterval`. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "default": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "name": { + "description": "The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.", + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "default": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "schedule": { + "additionalProperties": false, + "description": "The check interval, which specifies how frequently the rule conditions are checked.", + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "tags": { + "default": [], + "description": "The tags for the rule.", + "items": { + "type": "string" + }, + "type": "array" + }, + "throttle": { + "description": "Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "name", + "rule_type_id", + "consumer", + "schedule" + ], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "additionalProperties": false, + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "connector_type_id": { + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "type": "string" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id", + "connector_type_id", + "params" + ], + "type": "object" + }, + "type": "array" + }, + "active_snoozes": { + "items": { + "description": "List of active snoozes for the rule.", + "type": "string" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "api_key_created_by_user": { + "description": "Indicates whether the API key that is associated with the rule was created by the user.", + "nullable": true, + "type": "boolean" + }, + "api_key_owner": { + "description": "The owner of the API key that is associated with the rule and used to run background tasks.", + "nullable": true, + "type": "string" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "created_at": { + "description": "The date and time that the rule was created.", + "type": "string" + }, + "created_by": { + "description": "The identifier for the user that created the rule.", + "nullable": true, + "type": "string" + }, + "enabled": { + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "execution_status": { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Error message.", + "type": "string" + }, + "reason": { + "description": "Reason for error.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + }, + "last_duration": { + "description": "Duration of last execution of the rule.", + "type": "number" + }, + "last_execution_date": { + "description": "The date and time when rule was executed last.", + "type": "string" + }, + "status": { + "description": "Status of rule execution.", + "enum": [ + "ok", + "active", + "error", + "warning", + "pending", + "unknown" + ], + "type": "string" + }, + "warning": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Warning message.", + "type": "string" + }, + "reason": { + "description": "Reason for warning.", + "enum": [ + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + } + }, + "required": [ + "status", + "last_execution_date" + ], + "type": "object" + }, + "id": { + "description": "The identifier for the rule.", + "type": "string" + }, + "is_snoozed_until": { + "description": "The date when the rule will no longer be snoozed.", + "nullable": true, + "type": "string" + }, + "last_run": { + "additionalProperties": false, + "nullable": true, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "mapped_params": { + "additionalProperties": {}, + "type": "object" + }, + "monitoring": { + "additionalProperties": false, + "description": "Monitoring details of the rule.", + "properties": { + "run": { + "additionalProperties": false, + "description": "Rule run details.", + "properties": { + "calculated_metrics": { + "additionalProperties": false, + "description": "Calculation of different percentiles and success ratio.", + "properties": { + "p50": { + "type": "number" + }, + "p95": { + "type": "number" + }, + "p99": { + "type": "number" + }, + "success_ratio": { + "type": "number" + } + }, + "required": [ + "success_ratio" + ], + "type": "object" + }, + "history": { + "description": "History of the rule run.", + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule run.", + "type": "number" + }, + "outcome": { + "additionalProperties": false, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "success": { + "description": "Indicates whether the rule run was successful.", + "type": "boolean" + }, + "timestamp": { + "description": "Time of rule run.", + "type": "number" + } + }, + "required": [ + "success", + "timestamp" + ], + "type": "object" + }, + "type": "array" + }, + "last_run": { + "additionalProperties": false, + "properties": { + "metrics": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of most recent rule run.", + "type": "number" + }, + "gap_duration_s": { + "description": "Duration in seconds of rule run gap.", + "nullable": true, + "type": "number" + }, + "total_alerts_created": { + "description": "Total number of alerts created during last rule run.", + "nullable": true, + "type": "number" + }, + "total_alerts_detected": { + "description": "Total number of alerts detected during last rule run.", + "nullable": true, + "type": "number" + }, + "total_indexing_duration_ms": { + "description": "Total time spent indexing documents during last rule run in milliseconds.", + "nullable": true, + "type": "number" + }, + "total_search_duration_ms": { + "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "timestamp": { + "description": "Time of the most recent rule run.", + "type": "string" + } + }, + "required": [ + "timestamp", + "metrics" + ], + "type": "object" + } + }, + "required": [ + "history", + "calculated_metrics", + "last_run" + ], + "type": "object" + } + }, + "required": [ + "run" + ], + "type": "object" + }, + "mute_all": { + "description": "Indicates whether all alerts are muted.", + "type": "boolean" + }, + "muted_alert_ids": { + "items": { + "description": "List of identifiers of muted alerts. ", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": " The name of the rule.", + "type": "string" + }, + "next_run": { + "description": "Date and time of the next run of the rule.", + "nullable": true, + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "revision": { + "description": "The rule revision number.", + "type": "number" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "running": { + "description": "Indicates whether the rule is running.", + "nullable": true, + "type": "boolean" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "scheduled_task_id": { + "description": "Identifier of the scheduled task.", + "type": "string" + }, + "snooze_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule snooze schedule.", + "type": "number" + }, + "id": { + "description": "Identifier of the rule snooze schedule.", + "type": "string" + }, + "rRule": { + "additionalProperties": false, + "properties": { + "byhour": { + "items": { + "description": "Indicates hours of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "byminute": { + "items": { + "description": "Indicates minutes of the hour to recur.", + "type": "number" + }, + "type": "array" + }, + "bymonth": { + "items": { + "description": "Indicates months of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "bymonthday": { + "items": { + "description": "Indicates the days of the month to recur.", + "type": "number" + }, + "type": "array" + }, + "bysecond": { + "items": { + "description": "Indicates seconds of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "bysetpos": { + "items": { + "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", + "type": "number" + }, + "type": "array" + }, + "byweekday": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." + }, + "type": "array" + }, + "byweekno": { + "items": { + "description": "Indicates number of the week hours to recur.", + "type": "number" + }, + "type": "array" + }, + "byyearday": { + "items": { + "description": "Indicates the days of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "count": { + "description": "Number of times the rule should recur until it stops.", + "type": "number" + }, + "dtstart": { + "description": "Rule start date in Coordinated Universal Time (UTC).", + "type": "string" + }, + "freq": { + "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "interval": { + "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", + "type": "number" + }, + "tzid": { + "description": "Indicates timezone abbreviation.", + "type": "string" + }, + "until": { + "description": "Recur the rule until this date.", + "type": "string" + }, + "wkst": { + "description": "Indicates the start of week, defaults to Monday.", + "enum": [ + "MO", + "TU", + "WE", + "TH", + "FR", + "SA", + "SU" + ], + "type": "string" + } + }, + "required": [ + "dtstart", + "tzid" + ], + "type": "object" + }, + "skipRecurrences": { + "items": { + "description": "Skips recurrence of rule on this date.", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "duration", + "rRule" + ], + "type": "object" + }, + "type": "array" + }, + "tags": { + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "deprecated": true, + "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + }, + "updated_at": { + "description": "The date and time that the rule was updated most recently.", + "type": "string" + }, + "updated_by": { + "description": "The identifier for the user that updated this rule most recently.", + "nullable": true, + "type": "string" + }, + "view_in_app_relative_url": { + "description": "Relative URL to view rule in the app.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "id", + "enabled", + "name", + "tags", + "rule_type_id", + "consumer", + "schedule", + "actions", + "params", + "created_by", + "updated_by", + "created_at", + "updated_at", + "api_key_owner", + "mute_all", + "muted_alert_ids", + "execution_status", + "revision" + ], + "type": "object" + } + } + }, + "description": "Indicates a successful call." + } + }, + "summary": "Create a rule", + "tags": [ + "alerting" + ] + }, + "put": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D#1", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "default": [], + "items": { + "additionalProperties": false, + "description": "An action that runs under defined conditions.", + "properties": { + "alerts_filter": { + "additionalProperties": false, + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "description": "Defines the range of time in a day that the action can run. If the `start` value is `00:00` and the `end` value is `24:00`, actions be generated all day.", + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if `notify_when` is set to `onThrottleInterval`. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "default": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "name": { + "description": "The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.", + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "default": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "tags": { + "default": [], + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "description": "Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "name", + "schedule" + ], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "additionalProperties": false, + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "connector_type_id": { + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "type": "string" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id", + "connector_type_id", + "params" + ], + "type": "object" + }, + "type": "array" + }, + "active_snoozes": { + "items": { + "description": "List of active snoozes for the rule.", + "type": "string" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "api_key_created_by_user": { + "description": "Indicates whether the API key that is associated with the rule was created by the user.", + "nullable": true, + "type": "boolean" + }, + "api_key_owner": { + "description": "The owner of the API key that is associated with the rule and used to run background tasks.", + "nullable": true, + "type": "string" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "created_at": { + "description": "The date and time that the rule was created.", + "type": "string" + }, + "created_by": { + "description": "The identifier for the user that created the rule.", + "nullable": true, + "type": "string" + }, + "enabled": { + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "execution_status": { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Error message.", + "type": "string" + }, + "reason": { + "description": "Reason for error.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + }, + "last_duration": { + "description": "Duration of last execution of the rule.", + "type": "number" + }, + "last_execution_date": { + "description": "The date and time when rule was executed last.", + "type": "string" + }, + "status": { + "description": "Status of rule execution.", + "enum": [ + "ok", + "active", + "error", + "warning", + "pending", + "unknown" + ], + "type": "string" + }, + "warning": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Warning message.", + "type": "string" + }, + "reason": { + "description": "Reason for warning.", + "enum": [ + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + } + }, + "required": [ + "status", + "last_execution_date" + ], + "type": "object" + }, + "id": { + "description": "The identifier for the rule.", + "type": "string" + }, + "is_snoozed_until": { + "description": "The date when the rule will no longer be snoozed.", + "nullable": true, + "type": "string" + }, + "last_run": { + "additionalProperties": false, + "nullable": true, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "mapped_params": { + "additionalProperties": {}, + "type": "object" + }, + "monitoring": { + "additionalProperties": false, + "description": "Monitoring details of the rule.", + "properties": { + "run": { + "additionalProperties": false, + "description": "Rule run details.", + "properties": { + "calculated_metrics": { + "additionalProperties": false, + "description": "Calculation of different percentiles and success ratio.", + "properties": { + "p50": { + "type": "number" + }, + "p95": { + "type": "number" + }, + "p99": { + "type": "number" + }, + "success_ratio": { + "type": "number" + } + }, + "required": [ + "success_ratio" + ], + "type": "object" + }, + "history": { + "description": "History of the rule run.", + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule run.", + "type": "number" + }, + "outcome": { + "additionalProperties": false, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "success": { + "description": "Indicates whether the rule run was successful.", + "type": "boolean" + }, + "timestamp": { + "description": "Time of rule run.", + "type": "number" + } + }, + "required": [ + "success", + "timestamp" + ], + "type": "object" + }, + "type": "array" + }, + "last_run": { + "additionalProperties": false, + "properties": { + "metrics": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of most recent rule run.", + "type": "number" + }, + "gap_duration_s": { + "description": "Duration in seconds of rule run gap.", + "nullable": true, + "type": "number" + }, + "total_alerts_created": { + "description": "Total number of alerts created during last rule run.", + "nullable": true, + "type": "number" + }, + "total_alerts_detected": { + "description": "Total number of alerts detected during last rule run.", + "nullable": true, + "type": "number" + }, + "total_indexing_duration_ms": { + "description": "Total time spent indexing documents during last rule run in milliseconds.", + "nullable": true, + "type": "number" + }, + "total_search_duration_ms": { + "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "timestamp": { + "description": "Time of the most recent rule run.", + "type": "string" + } + }, + "required": [ + "timestamp", + "metrics" + ], + "type": "object" + } + }, + "required": [ + "history", + "calculated_metrics", + "last_run" + ], + "type": "object" + } + }, + "required": [ + "run" + ], + "type": "object" + }, + "mute_all": { + "description": "Indicates whether all alerts are muted.", + "type": "boolean" + }, + "muted_alert_ids": { + "items": { + "description": "List of identifiers of muted alerts. ", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": " The name of the rule.", + "type": "string" + }, + "next_run": { + "description": "Date and time of the next run of the rule.", + "nullable": true, + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "revision": { + "description": "The rule revision number.", + "type": "number" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "running": { + "description": "Indicates whether the rule is running.", + "nullable": true, + "type": "boolean" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "scheduled_task_id": { + "description": "Identifier of the scheduled task.", + "type": "string" + }, + "snooze_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule snooze schedule.", + "type": "number" + }, + "id": { + "description": "Identifier of the rule snooze schedule.", + "type": "string" + }, + "rRule": { + "additionalProperties": false, + "properties": { + "byhour": { + "items": { + "description": "Indicates hours of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "byminute": { + "items": { + "description": "Indicates minutes of the hour to recur.", + "type": "number" + }, + "type": "array" + }, + "bymonth": { + "items": { + "description": "Indicates months of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "bymonthday": { + "items": { + "description": "Indicates the days of the month to recur.", + "type": "number" + }, + "type": "array" + }, + "bysecond": { + "items": { + "description": "Indicates seconds of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "bysetpos": { + "items": { + "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", + "type": "number" + }, + "type": "array" + }, + "byweekday": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." + }, + "type": "array" + }, + "byweekno": { + "items": { + "description": "Indicates number of the week hours to recur.", + "type": "number" + }, + "type": "array" + }, + "byyearday": { + "items": { + "description": "Indicates the days of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "count": { + "description": "Number of times the rule should recur until it stops.", + "type": "number" + }, + "dtstart": { + "description": "Rule start date in Coordinated Universal Time (UTC).", + "type": "string" + }, + "freq": { + "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "interval": { + "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", + "type": "number" + }, + "tzid": { + "description": "Indicates timezone abbreviation.", + "type": "string" + }, + "until": { + "description": "Recur the rule until this date.", + "type": "string" + }, + "wkst": { + "description": "Indicates the start of week, defaults to Monday.", + "enum": [ + "MO", + "TU", + "WE", + "TH", + "FR", + "SA", + "SU" + ], + "type": "string" + } + }, + "required": [ + "dtstart", + "tzid" + ], + "type": "object" + }, + "skipRecurrences": { + "items": { + "description": "Skips recurrence of rule on this date.", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "duration", + "rRule" + ], + "type": "object" + }, + "type": "array" + }, + "tags": { + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "deprecated": true, + "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + }, + "updated_at": { + "description": "The date and time that the rule was updated most recently.", + "type": "string" + }, + "updated_by": { + "description": "The identifier for the user that updated this rule most recently.", + "nullable": true, + "type": "string" + }, + "view_in_app_relative_url": { + "description": "Relative URL to view rule in the app.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "id", + "enabled", + "name", + "tags", + "rule_type_id", + "consumer", + "schedule", + "actions", + "params", + "created_by", + "updated_by", + "created_at", + "updated_at", + "api_key_owner", + "mute_all", + "muted_alert_ids", + "execution_status", + "revision" + ], + "type": "object" + } + } + }, + "description": "Indicates a successful call." + } + }, + "summary": "Update a rule", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_disable": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_disable#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "nullable": true, + "properties": { + "untrack": { + "description": "Defines whether this rule's alerts should be untracked.", + "type": "boolean" + } + }, + "type": "object", + "x-oas-optional": true + } + } + } + }, + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Disable a rule", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_enable": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_enable#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Enable a rule", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_mute_all": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_mute_all#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Mute all alerts", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_unmute_all": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_unmute_all#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Unmute all alerts", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{id}/_update_api_key": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_update_api_key#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Update the API key for a rule", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_mute#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "rule_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The identifier for the alert.", + "in": "path", + "name": "alert_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Mute an alert", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute": { + "post": { + "operationId": "%2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_unmute#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "A required header to protect against CSRF attacks", + "in": "header", + "name": "kbn-xsrf", + "required": true, + "schema": { + "example": "true", + "type": "string" + } + }, + { + "description": "The identifier for the rule.", + "in": "path", + "name": "rule_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The identifier for the alert.", + "in": "path", + "name": "alert_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Indicates a successful call." + } + }, + "summary": "Unmute an alert", + "tags": [ + "alerting" + ] + } + }, + "/api/alerting/rules/_find": { + "get": { + "operationId": "%2Fapi%2Falerting%2Frules%2F_find#0", + "parameters": [ + { + "description": "The version of the API to use", + "in": "header", + "name": "elastic-api-version", + "schema": { + "default": "2023-10-31", + "enum": [ + "2023-10-31" + ], + "type": "string" + } + }, + { + "description": "The number of rules to return per page.", + "in": "query", + "name": "per_page", + "required": false, + "schema": { + "default": 10, + "minimum": 0, + "type": "number" + } + }, + { + "description": "The page number to return.", + "in": "query", + "name": "page", + "required": false, + "schema": { + "default": 1, + "minimum": 1, + "type": "number" + } + }, + { + "description": "An Elasticsearch simple_query_string query that filters the objects in the response.", + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "The default operator to use for the simple_query_string.", + "in": "query", + "name": "default_search_operator", + "required": false, + "schema": { + "default": "OR", + "enum": [ + "OR", + "AND" + ], + "type": "string" + } + }, + { + "description": "The fields to perform the simple_query_string parsed query against.", + "in": "query", + "name": "search_fields", + "required": false, + "schema": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + } + }, + { + "description": "Determines which field is used to sort the results. The field must exist in the `attributes` key of the response.", + "in": "query", + "name": "sort_field", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Determines the sort order.", + "in": "query", + "name": "sort_order", + "required": false, + "schema": { + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + { + "description": "Filters the rules that have a relation with the reference objects with a specific type and identifier.", + "in": "query", + "name": "has_reference", + "required": false, + "schema": { + "additionalProperties": false, + "nullable": true, + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" + } + }, + { + "in": "query", + "name": "fields", + "required": false, + "schema": { + "items": { + "description": "The fields to return in the `attributes` key of the response.", + "type": "string" + }, + "type": "array" + } + }, + { + "description": "A KQL string that you filter with an attribute from your saved object. It should look like `savedObjectType.attributes.title: \"myTitle\"`. However, if you used a direct attribute of a saved object, such as `updatedAt`, you must define your filter, for example, `savedObjectType.updatedAt > 2018-12-22`.", + "in": "query", + "name": "filter", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "filter_consumers", + "required": false, + "schema": { + "items": { + "description": "List of consumers to filter.", + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json; Elastic-Api-Version=2023-10-31": { + "schema": { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "additionalProperties": false, + "properties": { + "alerts_filter": { + "additionalProperties": false, + "description": "Defines a period that limits whether the action runs.", + "properties": { + "query": { + "additionalProperties": false, + "properties": { + "dsl": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", + "type": "string" + }, + "filters": { + "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", + "items": { + "additionalProperties": false, + "properties": { + "$state": { + "additionalProperties": false, + "properties": { + "store": { + "description": "A filter can be either specific to an application context or applied globally.", + "enum": [ + "appState", + "globalState" + ], + "type": "string" + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "type": "object" + }, + "query": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "type": "array" + }, + "kql": { + "description": "A filter written in Kibana Query Language (KQL).", + "type": "string" + } + }, + "required": [ + "kql", + "filters" + ], + "type": "object" + }, + "timeframe": { + "additionalProperties": false, + "properties": { + "days": { + "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "type": "array" + }, + "hours": { + "additionalProperties": false, + "properties": { + "end": { + "description": "The end of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + }, + "start": { + "description": "The start of the time frame in 24-hour notation (`hh:mm`).", + "type": "string" + } + }, + "required": [ + "start", + "end" + ], + "type": "object" + }, + "timezone": { + "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", + "type": "string" + } + }, + "required": [ + "days", + "hours", + "timezone" + ], + "type": "object" + } + }, + "type": "object" + }, + "connector_type_id": { + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "type": "string" + }, + "frequency": { + "additionalProperties": false, + "properties": { + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "type": "string" + }, + "summary": { + "description": "Indicates whether the action is a summary.", + "type": "boolean" + }, + "throttle": { + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "summary", + "notify_when", + "throttle" + ], + "type": "object" + }, + "group": { + "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", + "type": "string" + }, + "id": { + "description": "The identifier for the connector saved object.", + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", + "type": "object" + }, + "use_alert_data_for_template": { + "description": "Indicates whether to use alert data as a template.", + "type": "boolean" + }, + "uuid": { + "description": "A universally unique identifier (UUID) for the action.", + "type": "string" + } + }, + "required": [ + "id", + "connector_type_id", + "params" + ], + "type": "object" + }, + "type": "array" + }, + "active_snoozes": { + "items": { + "description": "List of active snoozes for the rule.", + "type": "string" + }, + "type": "array" + }, + "alert_delay": { + "additionalProperties": false, + "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", + "properties": { + "active": { + "description": "The number of consecutive runs that must meet the rule conditions.", + "type": "number" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "api_key_created_by_user": { + "description": "Indicates whether the API key that is associated with the rule was created by the user.", + "nullable": true, + "type": "boolean" + }, + "api_key_owner": { + "description": "The owner of the API key that is associated with the rule and used to run background tasks.", + "nullable": true, + "type": "string" + }, + "consumer": { + "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", + "type": "string" + }, + "created_at": { + "description": "The date and time that the rule was created.", + "type": "string" + }, + "created_by": { + "description": "The identifier for the user that created the rule.", + "nullable": true, + "type": "string" + }, + "enabled": { + "description": "Indicates whether you want to run the rule on an interval basis after it is created.", + "type": "boolean" + }, + "execution_status": { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Error message.", + "type": "string" + }, + "reason": { + "description": "Reason for error.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + }, + "last_duration": { + "description": "Duration of last execution of the rule.", + "type": "number" + }, + "last_execution_date": { + "description": "The date and time when rule was executed last.", + "type": "string" + }, + "status": { + "description": "Status of rule execution.", + "enum": [ + "ok", + "active", + "error", + "warning", + "pending", + "unknown" + ], + "type": "string" + }, + "warning": { + "additionalProperties": false, + "properties": { + "message": { + "description": "Warning message.", + "type": "string" + }, + "reason": { + "description": "Reason for warning.", + "enum": [ + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "type": "object" + } + }, + "required": [ + "status", + "last_execution_date" + ], + "type": "object" + }, + "id": { + "description": "The identifier for the rule.", + "type": "string" + }, + "is_snoozed_until": { + "description": "The date when the rule will no longer be snoozed.", + "nullable": true, + "type": "string" + }, + "last_run": { + "additionalProperties": false, + "nullable": true, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "mapped_params": { + "additionalProperties": {}, + "type": "object" + }, + "monitoring": { + "additionalProperties": false, + "description": "Monitoring details of the rule.", + "properties": { + "run": { + "additionalProperties": false, + "description": "Rule run details.", + "properties": { + "calculated_metrics": { + "additionalProperties": false, + "description": "Calculation of different percentiles and success ratio.", + "properties": { + "p50": { + "type": "number" + }, + "p95": { + "type": "number" + }, + "p99": { + "type": "number" + }, + "success_ratio": { + "type": "number" + } + }, + "required": [ + "success_ratio" + ], + "type": "object" + }, + "history": { + "description": "History of the rule run.", + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule run.", + "type": "number" + }, + "outcome": { + "additionalProperties": false, + "properties": { + "alerts_count": { + "additionalProperties": false, + "properties": { + "active": { + "description": "Number of active alerts during last run.", + "nullable": true, + "type": "number" + }, + "ignored": { + "description": "Number of ignored alerts during last run.", + "nullable": true, + "type": "number" + }, + "new": { + "description": "Number of new alerts during last run.", + "nullable": true, + "type": "number" + }, + "recovered": { + "description": "Number of recovered alerts during last run.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "outcome": { + "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", + "enum": [ + "succeeded", + "warning", + "failed" + ], + "type": "string" + }, + "outcome_msg": { + "items": { + "description": "Outcome message generated during last rule run.", + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "outcome_order": { + "description": "Order of the outcome.", + "type": "number" + }, + "warning": { + "description": "Warning of last rule execution.", + "enum": [ + "read", + "decrypt", + "execute", + "unknown", + "license", + "timeout", + "disabled", + "validate", + "maxExecutableActions", + "maxAlerts", + "maxQueuedActions", + "ruleExecution" + ], + "nullable": true, + "type": "string" + } + }, + "required": [ + "outcome", + "alerts_count" + ], + "type": "object" + }, + "success": { + "description": "Indicates whether the rule run was successful.", + "type": "boolean" + }, + "timestamp": { + "description": "Time of rule run.", + "type": "number" + } + }, + "required": [ + "success", + "timestamp" + ], + "type": "object" + }, + "type": "array" + }, + "last_run": { + "additionalProperties": false, + "properties": { + "metrics": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of most recent rule run.", + "type": "number" + }, + "gap_duration_s": { + "description": "Duration in seconds of rule run gap.", + "nullable": true, + "type": "number" + }, + "total_alerts_created": { + "description": "Total number of alerts created during last rule run.", + "nullable": true, + "type": "number" + }, + "total_alerts_detected": { + "description": "Total number of alerts detected during last rule run.", + "nullable": true, + "type": "number" + }, + "total_indexing_duration_ms": { + "description": "Total time spent indexing documents during last rule run in milliseconds.", + "nullable": true, + "type": "number" + }, + "total_search_duration_ms": { + "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "timestamp": { + "description": "Time of the most recent rule run.", + "type": "string" + } + }, + "required": [ + "timestamp", + "metrics" + ], + "type": "object" + } + }, + "required": [ + "history", + "calculated_metrics", + "last_run" + ], + "type": "object" + } + }, + "required": [ + "run" + ], + "type": "object" + }, + "mute_all": { + "description": "Indicates whether all alerts are muted.", + "type": "boolean" + }, + "muted_alert_ids": { + "items": { + "description": "List of identifiers of muted alerts. ", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": " The name of the rule.", + "type": "string" + }, + "next_run": { + "description": "Date and time of the next run of the rule.", + "nullable": true, + "type": "string" + }, + "notify_when": { + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "nullable": true, + "type": "string" + }, + "params": { + "additionalProperties": {}, + "description": "The parameters for the rule.", + "type": "object" + }, + "revision": { + "description": "The rule revision number.", + "type": "number" + }, + "rule_type_id": { + "description": "The rule type identifier.", + "type": "string" + }, + "running": { + "description": "Indicates whether the rule is running.", + "nullable": true, + "type": "boolean" + }, + "schedule": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "The interval is specified in seconds, minutes, hours, or days.", + "type": "string" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "scheduled_task_id": { + "description": "Identifier of the scheduled task.", + "type": "string" + }, + "snooze_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "duration": { + "description": "Duration of the rule snooze schedule.", + "type": "number" + }, + "id": { + "description": "Identifier of the rule snooze schedule.", + "type": "string" + }, + "rRule": { + "additionalProperties": false, + "properties": { + "byhour": { + "items": { + "description": "Indicates hours of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "byminute": { + "items": { + "description": "Indicates minutes of the hour to recur.", + "type": "number" + }, + "type": "array" + }, + "bymonth": { + "items": { + "description": "Indicates months of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "bymonthday": { + "items": { + "description": "Indicates the days of the month to recur.", + "type": "number" + }, + "type": "array" + }, + "bysecond": { + "items": { + "description": "Indicates seconds of the day to recur.", + "type": "number" + }, + "type": "array" + }, + "bysetpos": { + "items": { + "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", + "type": "number" + }, + "type": "array" + }, + "byweekday": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." + }, + "type": "array" + }, + "byweekno": { + "items": { + "description": "Indicates number of the week hours to recur.", + "type": "number" + }, + "type": "array" + }, + "byyearday": { + "items": { + "description": "Indicates the days of the year that this rule should recur.", + "type": "number" + }, + "type": "array" + }, + "count": { + "description": "Number of times the rule should recur until it stops.", + "type": "number" + }, + "dtstart": { + "description": "Rule start date in Coordinated Universal Time (UTC).", + "type": "string" + }, + "freq": { + "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "interval": { + "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", + "type": "number" + }, + "tzid": { + "description": "Indicates timezone abbreviation.", + "type": "string" + }, + "until": { + "description": "Recur the rule until this date.", + "type": "string" + }, + "wkst": { + "description": "Indicates the start of week, defaults to Monday.", + "enum": [ + "MO", + "TU", + "WE", + "TH", + "FR", + "SA", + "SU" + ], + "type": "string" + } + }, + "required": [ + "dtstart", + "tzid" + ], + "type": "object" + }, + "skipRecurrences": { + "items": { + "description": "Skips recurrence of rule on this date.", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "duration", + "rRule" + ], + "type": "object" + }, + "type": "array" + }, + "tags": { + "items": { + "description": "The tags for the rule.", + "type": "string" + }, + "type": "array" + }, + "throttle": { + "deprecated": true, + "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", + "nullable": true, + "type": "string" + }, + "updated_at": { + "description": "The date and time that the rule was updated most recently.", + "type": "string" + }, + "updated_by": { + "description": "The identifier for the user that updated this rule most recently.", + "nullable": true, + "type": "string" + }, + "view_in_app_relative_url": { + "description": "Relative URL to view rule in the app.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "id", + "enabled", + "name", + "tags", + "rule_type_id", + "consumer", + "schedule", + "actions", + "params", + "created_by", + "updated_by", + "created_at", + "updated_at", + "api_key_owner", + "mute_all", + "muted_alert_ids", + "execution_status", + "revision" + ], + "type": "object" + } + } + }, + "description": "Indicates a successful call." + } + }, + "summary": "Get information about rules", + "tags": [ + "alerting" + ] + } + }, "/api/status": { "get": { - "operationId": "/api/status#0", + "operationId": "%2Fapi%2Fstatus#0", "parameters": [ { "description": "The version of the API to use", @@ -435,6 +5151,9 @@ } ], "tags": [ + { + "name": "alerting" + }, { "name": "system" } diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_esql_rule_request.yaml b/oas_docs/examples/create_es_query_esql_rule_request.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_esql_rule_request.yaml rename to oas_docs/examples/create_es_query_esql_rule_request.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_esql_rule_response.yaml b/oas_docs/examples/create_es_query_esql_rule_response.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_esql_rule_response.yaml rename to oas_docs/examples/create_es_query_esql_rule_response.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_kql_rule_request.yaml b/oas_docs/examples/create_es_query_kql_rule_request.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_kql_rule_request.yaml rename to oas_docs/examples/create_es_query_kql_rule_request.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_kql_rule_response.yaml b/oas_docs/examples/create_es_query_kql_rule_response.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_kql_rule_response.yaml rename to oas_docs/examples/create_es_query_kql_rule_response.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_rule_request.yaml b/oas_docs/examples/create_es_query_rule_request.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_rule_request.yaml rename to oas_docs/examples/create_es_query_rule_request.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_rule_response.yaml b/oas_docs/examples/create_es_query_rule_response.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_es_query_rule_response.yaml rename to oas_docs/examples/create_es_query_rule_response.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_index_threshold_rule_request.yaml b/oas_docs/examples/create_index_threshold_rule_request.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_index_threshold_rule_request.yaml rename to oas_docs/examples/create_index_threshold_rule_request.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_index_threshold_rule_response.yaml b/oas_docs/examples/create_index_threshold_rule_response.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_index_threshold_rule_response.yaml rename to oas_docs/examples/create_index_threshold_rule_response.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_tracking_containment_rule_request.yaml b/oas_docs/examples/create_tracking_containment_rule_request.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_tracking_containment_rule_request.yaml rename to oas_docs/examples/create_tracking_containment_rule_request.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_tracking_containment_rule_response.yaml b/oas_docs/examples/create_tracking_containment_rule_response.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/create_tracking_containment_rule_response.yaml rename to oas_docs/examples/create_tracking_containment_rule_response.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/find_rules_response.yaml b/oas_docs/examples/find_rules_response.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/find_rules_response.yaml rename to oas_docs/examples/find_rules_response.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/find_rules_response_conditional_action.yaml b/oas_docs/examples/find_rules_response_conditional_action.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/find_rules_response_conditional_action.yaml rename to oas_docs/examples/find_rules_response_conditional_action.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_request.yaml b/oas_docs/examples/update_rule_request.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_request.yaml rename to oas_docs/examples/update_rule_request.yaml diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_response.yaml b/oas_docs/examples/update_rule_response.yaml similarity index 100% rename from x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_response.yaml rename to oas_docs/examples/update_rule_response.yaml diff --git a/oas_docs/kibana.info.serverless.yaml b/oas_docs/kibana.info.serverless.yaml index 09322f0851847..efc8955856de1 100644 --- a/oas_docs/kibana.info.serverless.yaml +++ b/oas_docs/kibana.info.serverless.yaml @@ -32,20 +32,15 @@ info: url: https://www.elastic.co/licensing/elastic-license contact: name: Kibana Team -# servers: -# - url: https://{kibana_url} -# variables: -# kibana_url: -# default: localhost:5601 -# security: -# - apiKeyAuth: [] -# components: -# securitySchemes: -# apiKeyAuth: -# type: apiKey -# in: header -# name: Authorization -# description: > -# These APIs use key-based authentication. -# You must create an API key and use the encoded value in the request header. -# For example: `Authorization: ApiKey base64AccessApiKey` \ No newline at end of file + x-feedbackLink: + label: Feedback + url: https://github.com/elastic/docs-content/issues/new?assignees=&labels=feedback%2Ccommunity&projects=&template=api-feedback.yaml&title=%5BFeedback%5D%3A+ +security: + - apiKeyAuth: [] +components: + securitySchemes: + apiKeyAuth: + type: apiKey + in: header + name: Authorization + description: You must create an API key and use the encoded value in the request header. To learn about creating keys, go to [API keys](https://www.elastic.co/docs/current/serverless/api-keys). diff --git a/oas_docs/kibana.info.yaml b/oas_docs/kibana.info.yaml index 0b6c2b2ea0fec..13db5ef728833 100644 --- a/oas_docs/kibana.info.yaml +++ b/oas_docs/kibana.info.yaml @@ -7,15 +7,15 @@ info: Each request that you make happens in isolation from other calls and must include all of the necessary information for Kibana to fulfill the request. API requests return JSON output, which is a format that is machine-readable and works well for automation. - + To interact with Kibana APIs, use the following operations: - + - GET: Fetches the information. - PATCH: Applies partial modifications to the existing information. - POST: Adds new information. - PUT: Updates the existing information. - DELETE: Removes the information. - + You can prepend any Kibana API endpoint with `kbn:` and run the request in **Dev Tools → Console**. For example: @@ -24,26 +24,33 @@ info: ``` For more information about the console, refer to [Run API requests](https://www.elastic.co/guide/en/kibana/current/console-kibana.html). - version: "1.0.2" + version: '1.0.2' license: name: Elastic License 2.0 url: https://www.elastic.co/licensing/elastic-license - contact: + contact: name: Kibana Team -# servers: -# - url: https://{kibana_url} -# variables: -# kibana_url: -# default: localhost:5601 -# security: -# - apiKeyAuth: [] -# components: -# securitySchemes: -# apiKeyAuth: -# type: apiKey -# in: header -# name: Authorization -# description: > -# These APIs use key-based authentication. -# You must create an API key and use the encoded value in the request header. -# For example: `Authorization: ApiKey base64AccessApiKey` \ No newline at end of file + x-feedbackLink: + label: Feedback + url: https://github.com/elastic/docs-content/issues/new?assignees=&labels=feedback%2Ccommunity&projects=&template=api-feedback.yaml&title=%5BFeedback%5D%3A+ +servers: + - url: https://{kibana_url} + variables: + kibana_url: + default: localhost:5601 +security: + - apiKeyAuth: [] + - basicAuth: [] +components: + securitySchemes: + apiKeyAuth: + type: apiKey + in: header + name: Authorization + description: > + These APIs use key-based authentication. + You must create an API key and use the encoded value in the request header. + For example: `Authorization: ApiKey base64AccessApiKey` + basicAuth: + type: http + scheme: basic \ No newline at end of file diff --git a/oas_docs/makefile b/oas_docs/makefile index 6943921b1c6fe..78e082494e301 100644 --- a/oas_docs/makefile +++ b/oas_docs/makefile @@ -14,18 +14,22 @@ # permission is obtained from Elasticsearch B.V. .PHONY: api-docs -api-docs: ## Generate kibana.serverless.yaml and kibana.yaml - @npx @redocly/cli join "kibana.info.serverless.yaml" "../x-pack/plugins/observability_solution/apm/docs/openapi/apm.yaml" "../x-pack/plugins/actions/docs/openapi/bundled_serverless.yaml" "../src/plugins/data_views/docs/openapi/bundled.yaml" "../x-pack/plugins/ml/common/openapi/ml_apis_serverless.yaml" "../packages/core/saved-objects/docs/openapi/bundled_serverless.yaml" "../x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml" "bundle.serverless.json" -o "output/kibana.serverless.yaml" --prefix-components-with-info-prop title - @npx @redocly/cli join "kibana.info.yaml" "../x-pack/plugins/alerting/docs/openapi/bundled.yaml" "../x-pack/plugins/observability_solution/apm/docs/openapi/apm.yaml" "../x-pack/plugins/cases/docs/openapi/bundled.yaml" "../x-pack/plugins/actions/docs/openapi/bundled.yaml" "../src/plugins/data_views/docs/openapi/bundled.yaml" "../x-pack/plugins/ml/common/openapi/ml_apis.yaml" "../packages/core/saved-objects/docs/openapi/bundled.yaml" "bundle.json" -o "output/kibana.yaml" --prefix-components-with-info-prop title +api-docs: ## Generate Serverless and ESS Kibana OpenAPI bundles with kbn-openapi-bundler + @node scripts/merge_serverless_oas.js + @node scripts/merge_ess_oas.js + +.PHONY: api-docs-staging +api-docs-staging: ## Generate Serverless and ESS Kibana OpenAPI bundles with kbn-openapi-bundler + @node scripts/merge_serverless_oas_staging.js + @node scripts/merge_ess_oas_staging.js .PHONY: api-docs-stateful api-docs-stateful: ## Generate only kibana.yaml - @npx @redocly/cli join "kibana.info.yaml" "../x-pack/plugins/alerting/docs/openapi/bundled.yaml" "../x-pack/plugins/observability_solution/apm/docs/openapi/apm.yaml" "../x-pack/plugins/cases/docs/openapi/bundled.yaml" "../x-pack/plugins/actions/docs/openapi/bundled.yaml" "../src/plugins/data_views/docs/openapi/bundled.yaml" "../x-pack/plugins/ml/common/openapi/ml_apis.yaml" "../packages/core/saved-objects/docs/openapi/bundled.yaml" "bundle.json" -o "output/kibana.yaml" --prefix-components-with-info-prop title -# Temporarily omit "../x-pack/plugins/fleet/common/openapi/bundled.yaml" due to internals tag and tag sorting + @node scripts/merge_ess_oas.js .PHONY: api-docs-serverless api-docs-serverless: ## Generate only kibana.serverless.yaml - @npx @redocly/cli join "kibana.info.serverless.yaml" "../x-pack/plugins/observability_solution/apm/docs/openapi/apm.yaml" "../x-pack/plugins/actions/docs/openapi/bundled_serverless.yaml" "../src/plugins/data_views/docs/openapi/bundled.yaml" "../x-pack/plugins/ml/common/openapi/ml_apis_serverless.yaml" "../packages/core/saved-objects/docs/openapi/bundled_serverless.yaml" "../x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml" "bundle.serverless.json" -o "output/kibana.serverless.yaml" --prefix-components-with-info-prop title + @node scripts/merge_serverless_oas.js .PHONY: api-docs-lint api-docs-lint: ## Run spectral API docs linter @@ -41,8 +45,14 @@ api-docs-lint-serverless: ## Run spectral API docs linter on kibana.serverless.y .PHONY: api-docs-overlay api-docs-overlay: ## Run spectral API docs linter on kibana.serverless.yaml - @npx bump overlay "output/kibana.yaml" "overlays/kibana.overlays.yaml" > "output/kibana.new.yaml" - @npx bump overlay "output/kibana.serverless.yaml" "overlays/kibana.overlays.serverless.yaml" > "output/kibana.serverless.new.yaml" + @npx bump overlay "output/kibana.serverless.yaml" "overlays/kibana.overlays.serverless.yaml" > "output/kibana.serverless.tmp1.yaml" + @npx bump overlay "output/kibana.serverless.tmp1.yaml" "overlays/alerting.overlays.yaml" > "output/kibana.serverless.tmp2.yaml" + @npx bump overlay "output/kibana.yaml" "overlays/kibana.overlays.yaml" > "output/kibana.tmp1.yaml" + @npx bump overlay "output/kibana.tmp1.yaml" "overlays/alerting.overlays.yaml" > "output/kibana.tmp2.yaml" + @npx @redocly/cli bundle output/kibana.serverless.tmp2.yaml --ext yaml -o output/kibana.serverless.new.yaml + @npx @redocly/cli bundle output/kibana.tmp2.yaml --ext yaml -o output/kibana.new.yaml + rm output/kibana.tmp*.yaml + rm output/kibana.serverless.tmp*.yaml help: ## Display help @awk 'BEGIN {FS = ":.*##"; printf "Usage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) diff --git a/oas_docs/output/kibana.serverless.yaml b/oas_docs/output/kibana.serverless.yaml index 7629eb0319cbc..f7e0765267b29 100644 --- a/oas_docs/output/kibana.serverless.yaml +++ b/oas_docs/output/kibana.serverless.yaml @@ -1,6 +1,7 @@ openapi: 3.0.3 info: - title: Kibana Serverless APIs + contact: + name: Kibana Team description: > **Technical preview** @@ -46,1687 +47,1795 @@ info: GET kbn:/api/data_views ``` - version: 1.0.2 license: name: Elastic License 2.0 - url: https://www.elastic.co/licensing/elastic-license - contact: - name: Kibana Team + url: 'https://www.elastic.co/licensing/elastic-license' + title: Kibana Serverless APIs + version: 1.0.2 + x-feedbackLink: + label: Feedback + url: >- + https://github.com/elastic/docs-content/issues/new?assignees=&labels=feedback%2Ccommunity&projects=&template=api-feedback.yaml&title=%5BFeedback%5D%3A+ servers: - - url: https://{kibanaUrl} + - url: 'http://{kibana_host}:{port}' + variables: + kibana_host: + default: localhost + port: + default: '5601' + - url: 'http://localhost:5622' + - url: 'https://{kibanaUrl}' variables: kibanaUrl: - default: localhost:5601 - - url: https://{kibana_url} + default: 'localhost:5601' + - url: 'https://{kibana_url}' variables: kibana_url: - default: localhost:5601 + default: 'localhost:5601' - url: / - - url: http://localhost:5601 - description: local - - url: http://localhost:5622 -tags: - - name: APM agent keys - description: > - Configure APM agent keys to authorize requests from APM agents to the APM - Server. - x-displayName: APM agent keys - - name: APM annotations - description: > - Annotate visualizations in the APM app with significant events. - Annotations enable you to easily see how events are impacting the - performance of your applications. - x-displayName: APM annotations - - name: connectors - description: Connector APIs enable you to create and manage connectors. - x-displayName: connectors - - name: data views - description: >- - Data view APIs enable you to manage data views, formerly known as Kibana - index patterns. - x-displayName: data views - - name: ml - description: Machine learning - x-displayName: ml - - name: saved objects - description: >- - Manage Kibana saved objects, including dashboards, visualizations, and - more. - x-displayName: saved objects - - name: slo - description: SLO APIs enable you to define, manage and track service-level objectives - x-displayName: slo - - name: system - x-displayName: system + - description: Public and supported Fleet API + url: 'http://KIBANA_HOST:5601/api/fleet' + - description: local + url: 'http://localhost:5601' paths: - /api/apm/agent_keys: - post: - summary: Create an APM agent key - description: Create a new agent key for APM. - operationId: createAgentKey + /agent_download_sources: + get: + operationId: get-download-sources + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_download_sources' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent binary download sources tags: - - APM agent keys + - Elastic Agent binary download sources + post: + operationId: post-download-sources requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: + host: + type: string + id: + type: string + is_default: + type: boolean name: type: string - privileges: - type: array - items: - type: string - enum: - - event:write - - config_agent:read + required: + - name + - host + - is_default responses: '200': - description: Agent key created successfully content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent binary download source + tags: + - Elastic Agent binary download sources + '/agent_download_sources/{sourceId}': + delete: + operationId: delete-download-source + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - api_key: - type: string - expiration: - type: integer - format: int64 id: type: string - name: - type: string - encoded: - type: string - /api/apm/services/{serviceName}/annotation/search: - get: - summary: Search for annotations - description: Search for annotations related to a specific service. - operationId: getAnnotation + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent binary download source by ID tags: - - APM annotations - parameters: - - name: serviceName - in: path - required: true - description: The name of the service - schema: - type: string - - name: environment - in: query - required: false - description: The environment to filter annotations by - schema: - type: string - - name: start - in: query - required: false - description: The start date for the search - schema: - type: string - - name: end - in: query - required: false - description: The end date for the search - schema: - type: string + - Elastic Agent binary download sources + get: + operationId: get-one-download-source responses: '200': - description: Successful response content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - annotations: - type: array - items: - type: object - properties: - type: - type: string - enum: - - version - id: - type: string - '@timestamp': - type: number - text: - type: string - /api/apm/services/{serviceName}/annotation: - post: - summary: Create a service annotation - description: Create a new annotation for a specific service. - operationId: createAnnotation + item: + $ref: '#/components/schemas/Fleet_download_sources' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent binary download source by ID tags: - - APM annotations + - Elastic Agent binary download sources + parameters: + - in: path + name: sourceId + required: true + schema: + type: string + put: + operationId: update-download-source parameters: - - name: serviceName - in: path - required: true - description: The name of the service - schema: - type: string + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - '@timestamp': + host: type: string - service: - type: object - properties: - version: - type: string - environment: - type: string - message: + is_default: + type: boolean + name: type: string - tags: - type: array - items: - type: string + required: + - name + - is_default + - host responses: '200': - description: Annotation created successfully content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - _id: - type: string - _index: - type: string - _source: - type: object - properties: - annotation: - type: string - tags: - type: array - items: - type: string - message: - type: string - service: - type: object - properties: - name: - type: string - environment: - type: string - version: - type: string - event: - type: object - properties: - created: - type: string - '@timestamp': - type: string - /api/actions/connector: - post: - summary: Create a connector with a random ID - operationId: createConnector - description: The connector identifier is randomly generated. + item: + $ref: '#/components/schemas/Fleet_download_sources' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent binary download source by ID tags: - - connectors + - Elastic Agent binary download sources + /agent_policies: + get: + description: '' + operationId: agent-policy-list parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_create_connector_request' - examples: - createEmailConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_email_connector_request - createIndexConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_index_connector_request - createWebhookConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_webhook_connector_request - createXmattersConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_xmatters_connector_request + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - description: >- + When set to true, retrieve the related package policies for each + agent policy. + in: query + name: full + schema: + type: boolean + - description: >- + When set to true, do not count how many agents are in the agent + policy, this can improve performance if you are searching over a + large number of agent policies. The "agents" property will always be + 0 if set to true. + in: query + name: noAgentCount + schema: + type: boolean responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Connectors_connector_response_properties' - examples: - createEmailConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_email_connector_response - createIndexConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_index_connector_response - createWebhookConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_webhook_connector_response - createXmattersConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_xmatters_connector_response - '401': - $ref: '#/components/responses/Connectors_401' - /api/actions/connector/{connectorId}: - get: - summary: Get a connector information - operationId: getConnector + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent_policy' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - total + - page + - perPage + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent policies tags: - - connectors + - Elastic Agent policies + post: + operationId: create-agent-policy parameters: - - $ref: '#/components/parameters/Connectors_connector_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_agent_policy_create_request' responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Connectors_connector_response_properties' - examples: - getConnectorResponse: - $ref: '#/components/examples/Connectors_get_connector_response' - '401': - $ref: '#/components/responses/Connectors_401' - '404': - $ref: '#/components/responses/Connectors_404' - delete: - summary: Delete a connector - operationId: deleteConnector + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent policy tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - $ref: '#/components/parameters/Connectors_connector_id' - responses: - '204': - description: Indicates a successful call. - '401': - $ref: '#/components/responses/Connectors_401' - '404': - $ref: '#/components/responses/Connectors_404' + - Elastic Agent policies + /agent_policies/_bulk_get: post: - summary: Create a connector - operationId: createConnectorId - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - in: path - name: connectorId - description: > - A UUID v1 or v4 identifier for the connector. If you omit this - parameter, an identifier is randomly generated. - required: true - schema: - type: string - example: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 + operationId: bulk-get-agent-policies + parameters: [] requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Connectors_create_connector_request' - examples: - createIndexConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_index_connector_request + type: object + properties: + full: + description: get full policies with package policies populated + type: boolean + ids: + description: list of agent policy ids + items: + type: string + type: array + ignoreMissing: + type: boolean + required: + - ids responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Connectors_connector_response_properties' - examples: - createIndexConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_index_connector_response - '401': - $ref: '#/components/responses/Connectors_401' - put: - summary: Update a connector - operationId: updateConnector + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent_policy' + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get agent policies tags: - - connectors + - Elastic Agent policies + '/agent_policies/{agentPolicyId}': + get: + description: Get one agent policy + operationId: agent-policy-info + parameters: [] + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent policy by ID + tags: + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + put: + operationId: update-agent-policy parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - $ref: '#/components/parameters/Connectors_connector_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Connectors_update_connector_request' - examples: - updateIndexConnectorRequest: - $ref: >- - #/components/examples/Connectors_update_index_connector_request + $ref: '#/components/schemas/Fleet_agent_policy_update_request' responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Connectors_connector_response_properties' + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK '400': - $ref: '#/components/responses/Connectors_401' - '401': - $ref: '#/components/responses/Connectors_401' - '404': - $ref: '#/components/responses/Connectors_404' - /api/actions/connectors: - get: - summary: Get all connectors - operationId: getConnectors + $ref: '#/components/responses/Fleet_error' + summary: Update agent policy by ID tags: - - connectors + - Elastic Agent policies + '/agent_policies/{agentPolicyId}/copy': + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + post: + operationId: agent-policy-copy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + description: + type: string + name: + type: string + required: + - name + description: '' responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - type: array - items: - $ref: >- - #/components/schemas/Connectors_connector_response_properties - examples: - getConnectorsResponse: - $ref: '#/components/examples/Connectors_get_connectors_response' - '401': - $ref: '#/components/responses/Connectors_401' - /api/actions/connector_types: - get: - summary: Get all connector types - operationId: getConnectorTypes + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Copy agent policy by ID tags: - - connectors - parameters: - - in: query - name: feature_id - description: >- - A filter to limit the retrieved connector types to those that - support a specific feature (such as alerting or cases). - schema: - $ref: '#/components/schemas/Connectors_features' + - Elastic Agent policies + '/agent_policies/{agentPolicyId}/download': + get: + operationId: agent-policy-download responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - title: Get connector types response body properties - description: The properties vary for each connector type. - type: array - items: - type: object - properties: - enabled: - type: boolean - description: >- - Indicates whether the connector type is enabled in - Kibana. - example: true - enabled_in_config: - type: boolean - description: >- - Indicates whether the connector type is enabled in the - Kibana configuration file. - example: true - enabled_in_license: - type: boolean - description: >- - Indicates whether the connector is enabled in the - license. - example: true - id: - $ref: '#/components/schemas/Connectors_connector_types' - is_system_action_type: - type: boolean - example: false - minimum_license_required: - type: string - description: The license that is required to use the connector type. - example: basic - name: - type: string - description: The name of the connector type. - example: Index - supported_feature_ids: - type: array - description: The features that are supported by the connector type. - items: - $ref: '#/components/schemas/Connectors_features' - example: - - alerting - - cases - - siem - examples: - getConnectorTypesServerlessResponse: - $ref: >- - #/components/examples/Connectors_get_connector_types_generativeai_response - '401': - $ref: '#/components/responses/Connectors_401' - /api/data_views: - get: - summary: Get all data views - operationId: getAllDataViewsDefault + type: object + properties: + item: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Download agent policy by ID tags: - - data views + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - in: query + name: download + required: false + schema: + type: string + - in: query + name: standalone + required: false + schema: + type: string + - in: query + name: kubernetes + required: false + schema: + type: string + '/agent_policies/{agentPolicyId}/full': + get: + operationId: agent-policy-full responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - data_view: - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - namespaces: - type: array - items: - type: string - title: - type: string - typeMeta: - type: object - examples: - getAllDataViewsResponse: - $ref: '#/components/examples/Data_views_get_data_views_response' + item: + oneOf: + - type: string + - $ref: '#/components/schemas/Fleet_agent_policy_full' + description: OK '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view: - post: - summary: Create a data view - operationId: createDataViewDefaultw + $ref: '#/components/responses/Fleet_error' + summary: Get full agent policy by ID tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId required: true - content: - application/json: + schema: + type: string + - in: query + name: download + required: false + schema: + type: string + - in: query + name: standalone + required: false + schema: + type: string + - in: query + name: kubernetes + required: false + schema: + type: string + /agent_policies/delete: + parameters: [] + post: + operationId: delete-agent-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_create_data_view_request_object' - examples: - createDataViewRequest: - $ref: '#/components/examples/Data_views_create_data_view_request' + type: object + properties: + agentPolicyId: + type: string + force: + description: >- + bypass validation checks that can prevent agent policy + deletion + type: boolean + required: + - agentPolicyId responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' + type: object + properties: + id: + type: string + success: + type: boolean + required: + - id + - success + description: OK '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view/{viewId}: - get: - summary: Get a data view - operationId: getDataViewDefault + $ref: '#/components/responses/Fleet_error' + summary: Delete agent policy by ID tags: - - data views + - Elastic Agent policies + /agent_status: + get: + operationId: get-agent-status parameters: - - $ref: '#/components/parameters/Data_views_view_id' + - in: query + name: policyId + required: false + schema: + type: string + - deprecated: true + in: query + name: kuery + required: false + schema: + type: string responses: '200': - description: Indicates a successful call. content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - examples: - getDataViewResponse: - $ref: '#/components/examples/Data_views_get_data_view_response' - '404': - description: Object is not found. - content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - delete: - summary: Delete a data view - operationId: deleteDataViewDefault - description: | - WARNING: When you delete a data view, it cannot be recovered. + type: object + properties: + active: + type: integer + all: + type: integer + error: + type: integer + events: + type: integer + inactive: + type: integer + offline: + type: integer + online: + type: integer + other: + type: integer + total: + deprecated: true + type: integer + unenrolled: + type: integer + updating: + type: integer + required: + - active + - all + - error + - events + - inactive + - offline + - online + - other + - total + - updating + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent status summary tags: - - data views + - Elastic Agent status + /agent_status/data: + get: + operationId: get-agent-data parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + - in: query + name: agentsIds + required: true + schema: + items: + type: string + type: array responses: - '204': - description: Indicates a successful call. - '404': - description: Object is not found. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - post: - summary: Update a data view - operationId: updateDataViewDefault + type: object + properties: + items: + items: + additionalProperties: + type: object + properties: + data: + type: boolean + type: object + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get incoming agent data tags: - - data views + - Elastic Agent status + /agent-status: + get: + deprecated: true + operationId: get-agent-status-deprecated parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_update_data_view_request_object' - examples: - updateDataViewRequest: - $ref: '#/components/examples/Data_views_update_data_view_request' + - in: query + name: policyId + required: false + schema: + type: string responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' + type: object + properties: + error: + type: integer + events: + type: integer + inactive: + type: integer + offline: + type: integer + online: + type: integer + other: + type: integer + total: + type: integer + updating: + type: integer + required: + - error + - events + - inactive + - offline + - online + - other + - total + - updating + description: OK '400': - description: Bad request + $ref: '#/components/responses/Fleet_error' + summary: Get agent status summary + tags: + - Elastic Agent status + /agents: + get: + operationId: get-agents + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_show_inactive' + - $ref: '#/components/parameters/Fleet_show_upgradeable' + - $ref: '#/components/parameters/Fleet_sort_field' + - $ref: '#/components/parameters/Fleet_sort_order' + - $ref: '#/components/parameters/Fleet_with_metrics' + - in: query + name: getStatusSummary + required: false + schema: + type: boolean + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view/{viewId}/fields: - post: - summary: Update data view fields metadata - operationId: updateFieldsMetadataDefault - description: > - Update fields presentation metadata such as count, customLabel, - customDescription, and format. + $ref: '#/components/schemas/Fleet_get_agents_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agents tags: - - data views + - Elastic Agents + post: + operationId: get-agents-by-actions parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - required: - - fields properties: - fields: - description: The field object. - type: object - examples: - updateFieldsMetadataRequest: - $ref: '#/components/examples/Data_views_update_field_metadata_request' + actionIds: + items: + type: string + type: array + required: + - policy_id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_agent_get_by_actions' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agents by action ids + tags: + - Elastic Agents + '/agents/{agentId}': + delete: + operationId: delete-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - acknowledged: - type: boolean + action: + enum: + - deleted + type: string + required: + - action + description: OK '400': - description: Bad request + $ref: '#/components/responses/Fleet_error' + summary: Delete agent by ID + tags: + - Elastic Agents + get: + operationId: get-agent + parameters: + - $ref: '#/components/parameters/Fleet_with_metrics' + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view/{viewId}/runtime_field: - post: - summary: Create a runtime field - operationId: createRuntimeFieldDefault + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent by ID tags: - - data views + - Elastic Agents + parameters: + - in: path + name: agentId + required: true + schema: + type: string + put: + operationId: update-agent parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - required: - - name - - runtimeField properties: - name: - type: string - description: | - The name for a runtime field. - runtimeField: + tags: + items: + type: string + type: array + user_provided_metadata: type: object - description: | - The runtime field definition object. - examples: - createRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_create_runtime_field_request' + required: true responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - put: - summary: Create or update a runtime field - operationId: createUpdateRuntimeFieldDefault + properties: + item: + $ref: '#/components/schemas/Fleet_agent' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent by ID tags: - - data views + - Elastic Agents + '/agents/{agentId}/actions': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: new-agent-action parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - name: viewId - in: path - description: | - The ID of the data view fields you want to update. - required: true - schema: - type: string + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - required: - - name - - runtimeField properties: - name: - type: string - description: | - The name for a runtime field. - runtimeField: - type: object - description: | - The runtime field definition object. - examples: - updateRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_create_runtime_field_request' + action: + $ref: '#/components/schemas/Fleet_agent_action' + required: true responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - data_view: - type: object - fields: - type: array + body: items: - type: object + type: number + type: array + headers: + type: string + statusCode: + type: number + description: OK '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view/{viewId}/runtime_field/{fieldName}: - get: - summary: Get a runtime field - operationId: getRuntimeFieldDefault + $ref: '#/components/responses/Fleet_error' + summary: Create agent action tags: - - data views + - Elastic Agent actions + '/agents/{agentId}/reassign': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: reassign-agent parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + policy_id: + type: string + required: + - policy_id + required: true responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - data_view: - type: object - fields: - type: array - items: - type: object - examples: - getRuntimeFieldResponse: - $ref: '#/components/examples/Data_views_get_runtime_field_response' - '404': - description: Object is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_404_response' - delete: - summary: Delete a runtime field from a data view - operationId: deleteRuntimeFieldDefault + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Reassign agent tags: - - data views + - Elastic Agents + put: + deprecated: true + operationId: reassign-agent-deprecated parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + policy_id: + type: string + required: + - policy_id + required: true responses: '200': - description: Indicates a successful call. - '404': - description: Object is not found. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - post: - summary: Update a runtime field - operationId: updateRuntimeFieldDefault + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Reassign agent tags: - - data views + - Elastic Agents + '/agents/{agentId}/request_diagnostics': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: request-diagnostics-agent parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - required: - - runtimeField properties: - runtimeField: - type: object - description: | - The runtime field definition object. - - You can update following fields: - - - `type` - - `script` - examples: - updateRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_update_runtime_field_request' - responses: - '200': - description: Indicates a successful call. - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/default: - get: - summary: Get the default data view - operationId: getDefaultDataViewDefault - tags: - - data views + additional_metrics: + items: + oneOf: + - enum: + - CPU + type: string + type: array responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - data_view_id: + actionId: type: string - examples: - getDefaultDataViewResponse: - $ref: >- - #/components/examples/Data_views_get_default_data_view_response + description: OK '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - post: - summary: Set the default data view - operationId: setDefaultDatailViewDefault + $ref: '#/components/responses/Fleet_error' + summary: Request agent diagnostics tags: - - data views + - Elastic Agents + '/agents/{agentId}/unenroll': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: unenroll-agent parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - required: - - data_view_id properties: - data_view_id: - type: string - nullable: true - description: > - The data view identifier. NOTE: The API does not validate - whether it is a valid identifier. Use `null` to unset the - default data view. force: type: boolean - description: Update an existing default data view identifier. - default: false - examples: - setDefaultDataViewRequest: - $ref: '#/components/examples/Data_views_set_default_data_view_request' + revoke: + type: boolean responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - acknowledged: - type: boolean + description: OK '400': - description: Bad request content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/swap_references: - post: - summary: Swap saved object references - operationId: swapDataViewsDefault - description: > - Changes saved object references from one data view identifier to - another. WARNING: Misuse can break large numbers of saved objects! - Practicing with a backup is recommended. + type: object + properties: + error: + type: string + message: + type: string + statusCode: + enum: + - 400 + type: number + description: BAD REQUEST + summary: Unenroll agent tags: - - data views + - Elastic Agents + '/agents/{agentId}/upgrade': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: upgrade-agent parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_swap_data_view_request_object' - examples: - swapDataViewRequest: - $ref: '#/components/examples/Data_views_swap_data_view_request' + $ref: '#/components/schemas/Fleet_upgrade_agent' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_upgrade_agent' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Upgrade agent + tags: + - Elastic Agents + '/agents/{agentId}/uploads': + get: + operationId: list-agent-uploads responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - deleteStatus: + body: type: object properties: - deletePerformed: - type: boolean - remainingRefs: - type: integer - result: - type: array - items: - type: object - properties: - id: - type: string - description: A saved object identifier. - type: - type: string - description: The saved object type. - /api/data_views/swap_references/_preview: - post: - summary: Preview a saved object reference swap - operationId: previewSwapDataViewsDefault - description: > - Preview the impact of swapping saved object references from one data - view identifier to another. + item: + items: + $ref: '#/components/schemas/Fleet_agent_diagnostics' + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent uploads tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: + - Elastic Agents + parameters: + - in: path + name: agentId required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_swap_data_view_request_object' - examples: - previewSwapDataViewRequest: - $ref: >- - #/components/examples/Data_views_preview_swap_data_view_request + schema: + type: string + /agents/action_status: + get: + operationId: agents-action-status + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - in: query + name: errorSize + schema: + default: 5 + type: integer responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - result: - type: array + items: items: type: object properties: - id: + actionId: type: string - description: A saved object identifier. - type: + cancellationTime: type: string - description: The saved object type. - /api/ml/saved_objects/sync: - get: - summary: Sync machine learning saved objects - description: > - Synchronizes Kibana saved objects for machine learning jobs and trained - models. This API runs automatically when you start Kibana and - periodically thereafter. - operationId: mlSync - tags: - - ml + completionTime: + type: string + creationTime: + description: creation time of action + type: string + expiration: + type: string + latestErrors: + description: >- + latest errors that happened when the agents executed + the action + items: + type: object + properties: + agentId: + type: string + error: + type: string + timestamp: + type: string + type: array + nbAgentsAck: + description: number of agents that acknowledged the action + type: number + nbAgentsActionCreated: + description: number of agents included in action from kibana + type: number + nbAgentsActioned: + description: number of agents actioned + type: number + nbAgentsFailed: + description: number of agents that failed to execute the action + type: number + newPolicyId: + description: new policy id (POLICY_REASSIGN action) + type: string + policyId: + description: policy id (POLICY_CHANGE action) + type: string + revision: + description: new policy revision (POLICY_CHANGE action) + type: string + startTime: + description: start time of action (scheduled actions) + type: string + status: + enum: + - COMPLETE + - EXPIRED + - CANCELLED + - FAILED + - IN_PROGRESS + - ROLLOUT_PASSED + type: string + type: + enum: + - POLICY_REASSIGN + - UPGRADE + - UNENROLL + - FORCE_UNENROLL + - UPDATE_TAGS + - CANCEL + - REQUEST_DIAGNOSTICS + - SETTINGS + - POLICY_CHANGE + - INPUT_ACTION + type: string + version: + description: agent version number (UPGRADE action) + type: string + required: + - actionId + - complete + - nbAgentsActioned + - nbAgentsActionCreated + - nbAgentsAck + - nbAgentsFailed + - status + - creationTime + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent action status + tags: + - Elastic Agent actions + '/agents/actions/{actionId}/cancel': + parameters: + - in: path + name: actionId + required: true + schema: + type: string + post: + operationId: agent-action-cancel parameters: - - $ref: '#/components/parameters/Machine_learning_APIs_simulateParam' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': - description: Indicates a successful call - content: - application/json: - schema: - $ref: '#/components/schemas/Machine_learning_APIs_mlSync200Response' - examples: - syncExample: - $ref: '#/components/examples/Machine_learning_APIs_mlSyncExample' - '401': - description: Authorization information is missing or invalid. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Machine_learning_APIs_mlSync4xxResponse' - /api/saved_objects/_export: - post: - summary: Export saved objects - operationId: exportSavedObjectsDefault - description: > - Retrieve sets of saved objects that you want to import into Kibana. - - You must include `type` or `objects` in the request body. - - - Exported saved objects are not backwards compatible and cannot be - imported into an older version of Kibana. - - - NOTE: The `savedObjects.maxImportExportSize` configuration setting - limits the number of saved objects which may be exported. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_action' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Cancel agent action tags: - - saved objects + - Elastic Agent actions + /agents/bulk_reassign: + post: + operationId: bulk-reassign-agents parameters: - - $ref: '#/components/parameters/Serverless_saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' + policy_id: policy_id schema: type: object properties: - excludeExportDetails: - description: Do not add export details entry at the end of the stream. - type: boolean - default: false - includeReferencesDeep: - description: >- - Includes all of the referenced objects in the exported - objects. - type: boolean - objects: - description: A list of objects to export. - type: array - items: - type: object - type: - description: >- - The saved object types to include in the export. Use `*` to - export all the types. + agents: oneOf: - - type: string - - type: array + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs items: type: string - examples: - exportSavedObjectsRequest: - $ref: >- - #/components/examples/Serverless_saved_objects_export_objects_request + type: array + policy_id: + description: new agent policy id + type: string + required: + - policy_id + - agents responses: '200': - description: Indicates a successful call. content: - application/x-ndjson: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object - additionalProperties: true - examples: - exportSavedObjectsResponse: - $ref: >- - #/components/examples/Serverless_saved_objects_export_objects_response + properties: + actionId: + type: string + description: OK '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/Serverless_saved_objects_400_response' - /api/saved_objects/_import: - post: - summary: Import saved objects - operationId: importSavedObjectsDefault - description: > - Create sets of Kibana saved objects from a file created by the export - API. - - Saved objects can be imported only into the same version, a newer minor - on the same major, or the next major. Exported saved objects are not - backwards compatible and cannot be imported into an older version of - Kibana. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. + $ref: '#/components/responses/Fleet_error' + summary: Bulk reassign agents tags: - - saved objects + - Elastic Agents + /agents/bulk_request_diagnostics: + post: + operationId: bulk-request-diagnostics parameters: - - $ref: '#/components/parameters/Serverless_saved_objects_kbn_xsrf' - - in: query - name: createNewCopies - schema: - type: boolean - required: false - description: > - Creates copies of saved objects, regenerates each object ID, and - resets the origin. When used, potential conflict errors are avoided. - NOTE: This option cannot be used with the `overwrite` and - `compatibilityMode` options. - - in: query - name: overwrite - schema: - type: boolean - required: false - description: > - Overwrites saved objects when they already exist. When used, - potential conflict errors are automatically resolved by overwriting - the destination object. NOTE: This option cannot be used with the - `createNewCopies` option. - - in: query - name: compatibilityMode - schema: - type: boolean - required: false - description: > - Applies various adjustments to the saved objects that are being - imported to maintain compatibility between different Kibana - versions. Use this option only if you encounter issues with imported - saved objects. NOTE: This option cannot be used with the - `createNewCopies` option. + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - multipart/form-data: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' schema: type: object properties: - file: - description: > - A file exported using the export API. NOTE: The - `savedObjects.maxImportExportSize` configuration setting - limits the number of saved objects which may be included in - this file. Similarly, the - `savedObjects.maxImportPayloadBytes` setting limits the - overall size of the file that can be imported. - examples: - importObjectsRequest: - $ref: >- - #/components/examples/Serverless_saved_objects_import_objects_request + additional_metrics: + items: + oneOf: + - enum: + - CPU + type: string + type: array + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + batchSize: + type: number + required: + - agents responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - success: - type: boolean - description: > - Indicates when the import was successfully completed. When - set to false, some objects may not have been created. For - additional information, refer to the `errors` and - `successResults` properties. - successCount: - type: integer - description: Indicates the number of successfully imported records. - errors: - type: array - items: - type: object - description: > - Indicates the import was unsuccessful and specifies the - objects that failed to import. - - - NOTE: One object may result in multiple errors, which - requires separate steps to resolve. For instance, a - `missing_references` error and conflict error. - successResults: - type: array - items: - type: object - description: > - Indicates the objects that are successfully imported, with - any metadata if applicable. - - - NOTE: Objects are created only when all resolvable errors - are addressed, including conflicts and missing references. - If objects are created as new copies, each entry in the - `successResults` array includes a `destinationId` - attribute. - examples: - importObjectsResponse: - $ref: >- - #/components/examples/Serverless_saved_objects_import_objects_response + actionId: + type: string + description: OK '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/Serverless_saved_objects_400_response' - /s/{spaceId}/api/observability/slos: - post: - summary: Create an SLO - operationId: createSloOp - description: > - You must have `all` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/responses/Fleet_error' + summary: Bulk request diagnostics from agents tags: - - slo + - Elastic Agents + /agents/bulk_unenroll: + post: + operationId: bulk-unenroll-agents parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: + - agent1 + - agent2 + force: false + revoke: true schema: - $ref: '#/components/schemas/SLOs_create_slo_request' + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + force: + description: Unenrolls hosted agents too + type: boolean + includeInactive: + description: >- + When passing agents by KQL query, unenrolls inactive agents + too + type: boolean + revoke: + description: Revokes API keys of agents + type: boolean + required: + - agents responses: '200': - description: Successful request content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_create_slo_response' + type: object + properties: + actionId: + type: string + description: OK '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_400_response' - '401': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_403_response' - '409': - description: Conflict - The SLO id already exists - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_409_response' - servers: - - url: https://localhost:5601 - get: - summary: Get a paginated list of SLOs - operationId: findSlosOp - description: > - You must have the `read` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/responses/Fleet_error' + summary: Bulk unenroll agents tags: - - slo + - Elastic Agents + /agents/bulk_update_agent_tags: + post: + operationId: bulk-update-agent-tags parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' - - name: kqlQuery - in: query - description: A valid kql query to filter the SLO with - schema: - type: string - example: 'slo.name:latency* and slo.tags : "prod"' - - name: page - in: query - description: The page to use for pagination, must be greater or equal than 1 - schema: - type: integer - default: 1 - example: 1 - - name: perPage - in: query - description: Number of SLOs returned by page - schema: - type: integer - default: 25 - maximum: 5000 - example: 25 - - name: sortBy - in: query - description: Sort by field - schema: - type: string - enum: - - sli_value - - status - - error_budget_consumed - - error_budget_remaining - default: status - example: status - - name: sortDirection - in: query - description: Sort order - schema: - type: string - enum: - - asc - - desc - default: asc - example: asc - - name: hideStale - in: query - description: >- - Hide stale SLOs from the list as defined by stale SLO threshold in - SLO settings - schema: - type: boolean + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: + - agent1 + - agent2 + tagsToAdd: + - newTag + tagsToRemove: + - existingTag + schema: + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + batchSize: + type: number + tagsToAdd: + items: + type: string + type: array + tagsToRemove: + items: + type: string + type: array + required: + - agents responses: '200': - description: Successful request content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_find_slo_response' + type: object + properties: + actionId: + type: string + description: OK '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_400_response' - '401': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_403_response' - '404': - description: Not found response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_404_response' - /s/{spaceId}/api/observability/slos/{sloId}: - get: - summary: Get an SLO - operationId: getSloOp - description: > - You must have the `read` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/responses/Fleet_error' + summary: Bulk update agent tags tags: - - slo + - Elastic Agents + /agents/bulk_upgrade: + post: + operationId: bulk-upgrade-agents parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' - - $ref: '#/components/parameters/SLOs_slo_id' - - name: instanceId - in: query - description: the specific instanceId used by the summary calculation - schema: - type: string - example: host-abcde + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: + - agent1 + - agent2 + rollout_duration_seconds: 3600 + source_uri: 'https://artifacts.elastic.co/downloads/beats/elastic-agent' + start_time: '2022-08-03T14:00:00.000Z' + version: 8.4.0 + schema: + $ref: '#/components/schemas/Fleet_bulk_upgrade_agents' + required: true responses: '200': - description: Successful request content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_slo_with_summary_response' + type: object + properties: + actionId: + type: string + description: OK '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_400_response' - '401': - description: Unauthorized response + $ref: '#/components/responses/Fleet_error' + summary: Bulk upgrade agents + tags: + - Elastic Agents + '/agents/files/{fileId}': + delete: + operationId: delete-agent-upload-file + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response + type: object + properties: + body: + type: object + properties: + deleted: + type: boolean + id: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete file uploaded by agent + tags: + - Elastic Agents + parameters: + - in: path + name: fileId + required: true + schema: + type: string + '/agents/files/{fileId}/{fileName}': + get: + operationId: get-agent-upload-file + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_403_response' - '404': - description: Not found response + type: object + properties: + body: + type: object + properties: + items: + type: object + properties: + body: {} + headers: {} + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get file uploaded by agent + tags: + - Elastic Agents + parameters: + - in: path + name: fileId + required: true + schema: + type: string + - in: path + name: fileName + required: true + schema: + type: string + /agents/setup: + get: + operationId: get-agents-setup-status + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_404_response' - put: - summary: Update an SLO - operationId: updateSloOp - description: > - You must have the `write` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/schemas/Fleet_fleet_status_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent setup info tags: - - slo + - Elastic Agents + post: + operationId: setup-agents parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' - - $ref: '#/components/parameters/SLOs_slo_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_update_slo_request' + type: object + properties: + admin_password: + type: string + admin_username: + type: string + required: + - admin_username + - admin_password responses: '200': - description: Successful request content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_slo_definition_response' + $ref: '#/components/schemas/Fleet_fleet_setup_response' + description: OK '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_400_response' - '401': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_403_response' - '404': - description: Not found response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_404_response' - delete: - summary: Delete an SLO - operationId: deleteSloOp - description: > - You must have the `write` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/responses/Fleet_error' + summary: Initiate agent setup tags: - - slo - parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' - - $ref: '#/components/parameters/SLOs_slo_id' + - Elastic Agents + /agents/tags: + get: + operationId: get-agent-tags responses: - '204': - description: Successful request - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_400_response' - '401': - description: Unauthorized response + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_403_response' - '404': - description: Not found response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_404_response' - /s/{spaceId}/api/observability/slos/{sloId}/enable: - post: - summary: Enable an SLO - operationId: enableSloOp - description: > - You must have the `write` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/schemas/Fleet_get_agent_tags_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent tags tags: - - slo + - Elastic Agents + /api/actions/connector: + post: + description: The connector identifier is randomly generated. + operationId: createConnector parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' - - $ref: '#/components/parameters/SLOs_slo_id' + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createEmailConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_email_connector_request + createIndexConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_index_connector_request + createWebhookConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_webhook_connector_request + createXmattersConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_xmatters_connector_request + schema: + $ref: '#/components/schemas/Connectors_create_connector_request' + required: true responses: - '204': - description: Successful request - '400': - description: Bad request + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createEmailConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_email_connector_response + createIndexConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_index_connector_response + createWebhookConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_webhook_connector_response + createXmattersConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_xmatters_connector_response schema: - $ref: '#/components/schemas/SLOs_400_response' + $ref: '#/components/schemas/Connectors_connector_response_properties' + description: Indicates a successful call. '401': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_403_response' - '404': - description: Not found response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_404_response' - /s/{spaceId}/api/observability/slos/{sloId}/disable: - post: - summary: Disable an SLO - operationId: disableSloOp - description: > - You must have the `write` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/responses/Connectors_401' + summary: Create a connector with a random ID tags: - - slo + - connectors + /api/actions/connector_types: + get: + operationId: getConnectorTypes parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' - - $ref: '#/components/parameters/SLOs_slo_id' + - description: >- + A filter to limit the retrieved connector types to those that + support a specific feature (such as alerting or cases). + in: query + name: feature_id + schema: + $ref: '#/components/schemas/Connectors_features' responses: '200': - description: Successful request - '400': - description: Bad request content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getConnectorTypesServerlessResponse: + $ref: >- + #/components/examples/Connectors_get_connector_types_generativeai_response schema: - $ref: '#/components/schemas/SLOs_400_response' + description: The properties vary for each connector type. + items: + type: object + properties: + enabled: + description: >- + Indicates whether the connector type is enabled in + Kibana. + example: true + type: boolean + enabled_in_config: + description: >- + Indicates whether the connector type is enabled in the + Kibana configuration file. + example: true + type: boolean + enabled_in_license: + description: >- + Indicates whether the connector is enabled in the + license. + example: true + type: boolean + id: + $ref: '#/components/schemas/Connectors_connector_types' + is_system_action_type: + example: false + type: boolean + minimum_license_required: + description: The license that is required to use the connector type. + example: basic + type: string + name: + description: The name of the connector type. + example: Index + type: string + supported_feature_ids: + description: The features that are supported by the connector type. + example: + - alerting + - cases + - siem + items: + $ref: '#/components/schemas/Connectors_features' + type: array + title: Get connector types response body properties + type: array + description: Indicates a successful call. '401': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_403_response' - '404': - description: Not found response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_404_response' - /s/{spaceId}/api/observability/slos/{sloId}/_reset: - post: - summary: Reset an SLO - operationId: resetSloOp - description: > - You must have the `write` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/responses/Connectors_401' + summary: Get all connector types tags: - - slo + - connectors + '/api/actions/connector/{connectorId}': + delete: + operationId: deleteConnector parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' - - $ref: '#/components/parameters/SLOs_slo_id' + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_connector_id' responses: '204': - description: Successful request - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_slo_definition_response' - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_400_response' + description: Indicates a successful call. '401': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_403_response' + $ref: '#/components/responses/Connectors_401' '404': - description: Not found response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_404_response' - /s/{spaceId}/api/observability/slos/_delete_instances: - post: - summary: Batch delete rollup and summary data - operationId: deleteSloInstancesOp - description: > - The deletion occurs for the specified list of `sloId` and `instanceId`. - You must have `all` privileges for the **SLOs** feature in the - **Observability** section of the Kibana feature privileges. + $ref: '#/components/responses/Connectors_404' + summary: Delete a connector tags: - - slo + - connectors + get: + operationId: getConnector parameters: - - $ref: '#/components/parameters/SLOs_kbn_xsrf' - - $ref: '#/components/parameters/SLOs_space_id' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_delete_slo_instances_request' + - $ref: '#/components/parameters/Connectors_connector_id' responses: - '204': - description: Successful request - '400': - description: Bad request + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getConnectorResponse: + $ref: '#/components/examples/Connectors_get_connector_response' schema: - $ref: '#/components/schemas/SLOs_400_response' + $ref: '#/components/schemas/Connectors_connector_response_properties' + description: Indicates a successful call. '401': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_401_response' - '403': - description: Unauthorized response - content: - application/json: - schema: - $ref: '#/components/schemas/SLOs_403_response' - servers: - - url: https://localhost:5601 - /api/status: + $ref: '#/components/responses/Connectors_401' + '404': + $ref: '#/components/responses/Connectors_404' + summary: Get a connector information + tags: + - connectors + post: + operationId: createConnectorId + parameters: + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - description: > + A UUID v1 or v4 identifier for the connector. If you omit this + parameter, an identifier is randomly generated. + in: path + name: connectorId + required: true + schema: + example: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createIndexConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_index_connector_request + schema: + $ref: '#/components/schemas/Connectors_create_connector_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createIndexConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_index_connector_response + schema: + $ref: '#/components/schemas/Connectors_connector_response_properties' + description: Indicates a successful call. + '401': + $ref: '#/components/responses/Connectors_401' + summary: Create a connector + tags: + - connectors + put: + operationId: updateConnector + parameters: + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_connector_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateIndexConnectorRequest: + $ref: >- + #/components/examples/Connectors_update_index_connector_request + schema: + $ref: '#/components/schemas/Connectors_update_connector_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Connectors_connector_response_properties' + description: Indicates a successful call. + '400': + $ref: '#/components/responses/Connectors_401' + '401': + $ref: '#/components/responses/Connectors_401' + '404': + $ref: '#/components/responses/Connectors_404' + summary: Update a connector + tags: + - connectors + /api/actions/connectors: get: - operationId: /api/status#0 + operationId: getConnectors + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getConnectorsResponse: + $ref: '#/components/examples/Connectors_get_connectors_response' + schema: + items: + $ref: >- + #/components/schemas/Connectors_connector_response_properties + type: array + description: Indicates a successful call. + '401': + $ref: '#/components/responses/Connectors_401' + summary: Get all connectors + tags: + - connectors + '/api/alerting/rule/{id}': + delete: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#2' parameters: - description: The version of the API to use in: header @@ -1736,2538 +1845,10786 @@ paths: enum: - '2023-10-31' type: string - - description: Set to "true" to get the response in v7 format. - in: query - name: v7format - required: false + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true schema: - type: boolean - - description: Set to "true" to get the response in v8 format. - in: query - name: v8format - required: false + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true schema: - type: boolean + type: string + responses: + '204': + description: Indicates a successful call. + summary: Delete a rule + tags: + - alerting + get: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - anyOf: - - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' - - $ref: >- - #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse - description: >- - Kibana's operational status. A minimal response is sent for - unauthorized users. - description: Overall status is OK and Kibana should be functioning normally. - '503': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - anyOf: - - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' - - $ref: >- - #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse - description: >- - Kibana's operational status. A minimal response is sent for - unauthorized users. - description: >- - Kibana or some of it's essential services are unavailable. Kibana - may be degraded or unavailable. - summary: Get Kibana's current status - tags: - - system - security: - - Kibana_HTTP_APIs_basicAuth: [] -components: - parameters: - Connectors_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - Connectors_connector_id: - in: path - name: connectorId - description: An identifier for the connector. - required: true - schema: - type: string - example: df770e30-8b8b-11ed-a780-3b746c987a81 - Data_views_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - Data_views_view_id: - in: path - name: viewId - description: An identifier for the data view. - required: true - schema: - type: string - example: ff959d40-b880-11e8-a6d9-e546fe2bba5f - Data_views_field_name: - in: path - name: fieldName - description: The name of the runtime field. - required: true - schema: - type: string - example: hour_of_day - Machine_learning_APIs_simulateParam: - in: query - name: simulate - description: >- - When true, simulates the synchronization by returning only the list of - actions that would be performed. - required: false - schema: - type: boolean - example: 'true' - Serverless_saved_objects_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - SLOs_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - SLOs_space_id: - in: path - name: spaceId - description: >- - An identifier for the space. If `/s/` and the identifier are omitted - from the path, the default space is used. - required: true - schema: - type: string - example: default - SLOs_slo_id: - in: path - name: sloId - description: An identifier for the slo. - required: true - schema: - type: string - example: 9c235211-6834-11ea-a78c-6feb38a34414 - schemas: - Connectors_create_connector_request_bedrock: - title: Create Amazon Bedrock connector request - description: >- - The Amazon Bedrock connector uses axios to send a POST request to Amazon - Bedrock. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_bedrock' - connector_type_id: - type: string - description: The type of connector. - enum: - - .bedrock - example: .bedrock - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_bedrock' - Connectors_create_connector_request_gemini: - title: Create Google Gemini connector request - description: >- - The Google Gemini connector uses axios to send a POST request to Google - Gemini. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_gemini' - connector_type_id: - type: string - description: The type of connector. - enum: - - .gemini - example: .gemini - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_gemini' - Connectors_create_connector_request_cases_webhook: - title: Create Webhook - Case Managment connector request - description: > - The Webhook - Case Management connector uses axios to send POST, PUT, - and GET requests to a case management RESTful API web service. - type: object - required: - - config - - connector_type_id - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' - connector_type_id: - type: string - description: The type of connector. - enum: - - .cases-webhook - example: .cases-webhook - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_cases_webhook' - Connectors_create_connector_request_d3security: - title: Create D3 Security connector request - description: > - The connector uses axios to send a POST request to a D3 Security - endpoint. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_d3security' - connector_type_id: - type: string - description: The type of connector. - enum: - - .d3security - example: .d3security - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_d3security' - Connectors_create_connector_request_email: - title: Create email connector request - description: > - The email connector uses the SMTP protocol to send mail messages, using - an integration of Nodemailer. An exception is Microsoft Exchange, which - uses HTTP protocol for sending emails, Send mail. Email message text is - sent as both plain text and html text. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_email' - connector_type_id: - type: string - description: The type of connector. - enum: - - .email - example: .email - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_email' - Connectors_create_connector_request_genai: - title: Create OpenAI connector request - description: > - The OpenAI connector uses axios to send a POST request to either OpenAI - or Azure OpenAPI. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_genai' - connector_type_id: - type: string - description: The type of connector. - enum: - - .gen-ai - example: .gen-ai - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_genai' - Connectors_create_connector_request_index: - title: Create index connector request - description: The index connector indexes a document into Elasticsearch. - type: object - required: - - config - - connector_type_id - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_index' - connector_type_id: - type: string - description: The type of connector. - enum: - - .index - example: .index - name: - type: string - description: The display name for the connector. - example: my-connector - Connectors_create_connector_request_jira: - title: Create Jira connector request - description: The Jira connector uses the REST API v2 to create Jira issues. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_jira' - connector_type_id: - type: string - description: The type of connector. - enum: - - .jira - example: .jira - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_jira' - Connectors_create_connector_request_opsgenie: - title: Create Opsgenie connector request - description: The Opsgenie connector uses the Opsgenie alert API. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_opsgenie' - connector_type_id: - type: string - description: The type of connector. - enum: - - .opsgenie - example: .opsgenie - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_opsgenie' - Connectors_create_connector_request_pagerduty: - title: Create PagerDuty connector request - description: > - The PagerDuty connector uses the v2 Events API to trigger, acknowledge, - and resolve PagerDuty alerts. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_pagerduty' - connector_type_id: - type: string - description: The type of connector. - enum: - - .pagerduty - example: .pagerduty - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_pagerduty' - Connectors_create_connector_request_resilient: - title: Create IBM Resilient connector request - description: >- - The IBM Resilient connector uses the RESILIENT REST v2 to create IBM - Resilient incidents. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_resilient' - connector_type_id: - description: The type of connector. - type: string - example: .resilient - enum: - - .resilient - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_resilient' - Connectors_create_connector_request_sentinelone: - title: Create SentinelOne connector request - description: > - The SentinelOne connector communicates with SentinelOne Management - Console via REST API. This functionality is in technical preview and may - be changed or removed in a future release. Elastic will work to fix any - issues, but features in technical preview are not subject to the support - SLA of official GA features. - x-technical-preview: true - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_sentinelone' - connector_type_id: - type: string - description: The type of connector. - enum: - - .sentinelone - example: .sentinelone - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_sentinelone' - Connectors_create_connector_request_serverlog: - title: Create server log connector request - description: This connector writes an entry to the Kibana server log. - type: object - required: - - connector_type_id - - name - properties: - connector_type_id: - type: string - description: The type of connector. - enum: - - .server-log - example: .server-log - name: - type: string - description: The display name for the connector. - example: my-connector - Connectors_create_connector_request_servicenow: - title: Create ServiceNow ITSM connector request - description: > - The ServiceNow ITSM connector uses the import set API to create - ServiceNow incidents. You can use the connector for rule actions and - cases. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow - example: .servicenow - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_create_connector_request_servicenow_itom: - title: Create ServiceNow ITOM connector request - description: > - The ServiceNow ITOM connector uses the event API to create ServiceNow - events. You can use the connector for rule actions. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow-itom - example: .servicenow-itom - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_create_connector_request_servicenow_sir: - title: Create ServiceNow SecOps connector request - description: > - The ServiceNow SecOps connector uses the import set API to create - ServiceNow security incidents. You can use the connector for rule - actions and cases. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow-sir - example: .servicenow-sir - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_create_connector_request_slack_api: - title: Create Slack connector request - description: The Slack connector uses an API method to send Slack messages. - type: object - required: - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_slack_api' - connector_type_id: - type: string - description: The type of connector. - enum: - - .slack_api - example: .slack_api - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_slack_api' - Connectors_create_connector_request_slack_webhook: - title: Create Slack connector request - description: The Slack connector uses Slack Incoming Webhooks. - type: object - required: - - connector_type_id - - name - - secrets - properties: - connector_type_id: - type: string - description: The type of connector. - enum: - - .slack - example: .slack - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_slack_webhook' - Connectors_create_connector_request_swimlane: - title: Create Swimlane connector request - description: >- - The Swimlane connector uses the Swimlane REST API to create Swimlane - records. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_swimlane' - connector_type_id: - type: string - description: The type of connector. - enum: - - .swimlane - example: .swimlane - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_swimlane' - Connectors_create_connector_request_teams: - title: Create Microsoft Teams connector request - description: The Microsoft Teams connector uses Incoming Webhooks. - type: object - required: - - connector_type_id - - name - - secrets - properties: - connector_type_id: - type: string - description: The type of connector. - enum: - - .teams - example: .teams - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_teams' - Connectors_create_connector_request_tines: - title: Create Tines connector request - description: > - The Tines connector uses Tines Webhook actions to send events via POST - request. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_tines' - connector_type_id: - type: string - description: The type of connector. - enum: - - .tines - example: .tines - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_tines' - Connectors_create_connector_request_torq: - title: Create Torq connector request - description: > - The Torq connector uses a Torq webhook to trigger workflows with Kibana - actions. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_torq' - connector_type_id: - type: string - description: The type of connector. - enum: - - .torq - example: .torq - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_torq' - Connectors_create_connector_request_webhook: - title: Create Webhook connector request - description: > - The Webhook connector uses axios to send a POST or PUT request to a web - service. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_webhook' - connector_type_id: - type: string - description: The type of connector. - enum: - - .webhook - example: .webhook - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_webhook' - Connectors_create_connector_request_xmatters: - title: Create xMatters connector request - description: > - The xMatters connector uses the xMatters Workflow for Elastic to send - actionable alerts to on-call xMatters resources. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_xmatters' - connector_type_id: - type: string - description: The type of connector. - enum: - - .xmatters - example: .xmatters - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_xmatters' - Connectors_config_properties_bedrock: - title: Connector request properties for an Amazon Bedrock connector - description: Defines properties for connectors when type is `.bedrock`. - type: object - required: - - apiUrl - properties: - apiUrl: - type: string - description: The Amazon Bedrock request URL. - defaultModel: - type: string - description: > - The generative artificial intelligence model for Amazon Bedrock to - use. Current support is for the Anthropic Claude models. - default: anthropic.claude-3-5-sonnet-20240620-v1:0 - Connectors_secrets_properties_bedrock: - title: Connector secrets properties for an Amazon Bedrock connector - description: Defines secrets for connectors when type is `.bedrock`. - type: object - required: - - accessKey - - secret - properties: - accessKey: - type: string - description: The AWS access key for authentication. - secret: - type: string - description: The AWS secret for authentication. - Connectors_config_properties_gemini: - title: Connector request properties for an Google Gemini connector - description: Defines properties for connectors when type is `.gemini`. - type: object - required: - - apiUrl - - gcpRegion - - gcpProjectID - properties: - apiUrl: - type: string - description: The Google Gemini request URL. - defaultModel: - type: string - description: >- - The generative artificial intelligence model for Google Gemini to - use. - default: gemini-1.5-pro-001 - gcpRegion: - type: string - description: The GCP region where the Vertex AI endpoint enabled. - gcpProjectID: - type: string - description: The Google ProjectID that has Vertex AI endpoint enabled. - Connectors_secrets_properties_gemini: - title: Connector secrets properties for a Google Gemini connector - description: Defines secrets for connectors when type is `.gemini`. - type: object - required: - - credentialsJSON - properties: - credentialsJSON: - type: string - description: >- - The service account credentials JSON file. The service account - should have Vertex AI user IAM role assigned to it. - Connectors_config_properties_cases_webhook: - title: Connector request properties for Webhook - Case Management connector - required: - - createIncidentJson - - createIncidentResponseKey - - createIncidentUrl - - getIncidentResponseExternalTitleKey - - getIncidentUrl - - updateIncidentJson - - updateIncidentUrl - - viewIncidentUrl - description: Defines properties for connectors when type is `.cases-webhook`. - type: object - properties: - createCommentJson: - type: string - description: > - A JSON payload sent to the create comment URL to create a case - comment. You can use variables to add Kibana Cases data to the - payload. The required variable is `case.comment`. Due to Mustache - template variables (the text enclosed in triple braces, for example, - `{{{case.title}}}`), the JSON is not validated when you create the - connector. The JSON is validated once the Mustache variables have - been placed when the REST method runs. Manually ensure that the JSON - is valid, disregarding the Mustache variables, so the later - validation will pass. - example: '{"body": {{{case.comment}}}}' - createCommentMethod: - type: string - description: > - The REST API HTTP request method to create a case comment in the - third-party system. Valid values are `patch`, `post`, and `put`. - default: put - enum: - - patch - - post - - put - createCommentUrl: - type: string - description: > - The REST API URL to create a case comment by ID in the third-party - system. You can use a variable to add the external system ID to the - URL. If you are using the `xpack.actions.allowedHosts setting`, add - the hostname to the allowed hosts. - example: https://example.com/issue/{{{external.system.id}}}/comment - createIncidentJson: - type: string - description: > - A JSON payload sent to the create case URL to create a case. You can - use variables to add case data to the payload. Required variables - are `case.title` and `case.description`. Due to Mustache template - variables (which is the text enclosed in triple braces, for example, - `{{{case.title}}}`), the JSON is not validated when you create the - connector. The JSON is validated after the Mustache variables have - been placed when REST method runs. Manually ensure that the JSON is - valid to avoid future validation errors; disregard Mustache - variables during your review. - example: >- - {"fields": {"summary": {{{case.title}}},"description": - {{{case.description}}},"labels": {{{case.tags}}}}} - createIncidentMethod: - type: string - description: > - The REST API HTTP request method to create a case in the third-party - system. Valid values are `patch`, `post`, and `put`. - enum: - - patch - - post - - put - default: post - createIncidentResponseKey: - type: string - description: >- - The JSON key in the create external case response that contains the - case ID. - createIncidentUrl: - type: string - description: > - The REST API URL to create a case in the third-party system. If you - are using the `xpack.actions.allowedHosts` setting, add the hostname - to the allowed hosts. - getIncidentResponseExternalTitleKey: - type: string - description: >- - The JSON key in get external case response that contains the case - title. - getIncidentUrl: - type: string - description: > - The REST API URL to get the case by ID from the third-party system. - If you are using the `xpack.actions.allowedHosts` setting, add the - hostname to the allowed hosts. You can use a variable to add the - external system ID to the URL. Due to Mustache template variables - (the text enclosed in triple braces, for example, - `{{{case.title}}}`), the JSON is not validated when you create the - connector. The JSON is validated after the Mustache variables have - been placed when REST method runs. Manually ensure that the JSON is - valid, disregarding the Mustache variables, so the later validation - will pass. - example: https://example.com/issue/{{{external.system.id}}} - hasAuth: - type: boolean - description: >- - If true, a username and password for login type authentication must - be provided. - default: true - headers: - type: string - description: > - A set of key-value pairs sent as headers with the request URLs for - the create case, update case, get case, and create comment methods. - updateIncidentJson: - type: string - description: > - The JSON payload sent to the update case URL to update the case. You - can use variables to add Kibana Cases data to the payload. Required - variables are `case.title` and `case.description`. Due to Mustache - template variables (which is the text enclosed in triple braces, for - example, `{{{case.title}}}`), the JSON is not validated when you - create the connector. The JSON is validated after the Mustache - variables have been placed when REST method runs. Manually ensure - that the JSON is valid to avoid future validation errors; disregard - Mustache variables during your review. - example: >- - {"fields": {"summary": {{{case.title}}},"description": - {{{case.description}}},"labels": {{{case.tags}}}}} - updateIncidentMethod: - type: string - description: > - The REST API HTTP request method to update the case in the - third-party system. Valid values are `patch`, `post`, and `put`. - default: put - enum: - - patch - - post - - put - updateIncidentUrl: - type: string - description: > - The REST API URL to update the case by ID in the third-party system. - You can use a variable to add the external system ID to the URL. If - you are using the `xpack.actions.allowedHosts` setting, add the - hostname to the allowed hosts. - example: https://example.com/issue/{{{external.system.ID}}} - viewIncidentUrl: - type: string - description: > - The URL to view the case in the external system. You can use - variables to add the external system ID or external system title to - the URL. - example: >- - https://testing-jira.atlassian.net/browse/{{{external.system.title}}} - Connectors_secrets_properties_cases_webhook: - title: Connector secrets properties for Webhook - Case Management connector - type: object - properties: - password: - type: string - description: >- - The password for HTTP basic authentication. If `hasAuth` is set to - `true`, this property is required. - user: - type: string - description: >- - The username for HTTP basic authentication. If `hasAuth` is set to - `true`, this property is required. - Connectors_config_properties_d3security: - title: Connector request properties for a D3 Security connector - description: Defines properties for connectors when type is `.d3security`. - type: object - required: - - url - properties: - url: - type: string - description: > - The D3 Security API request URL. If you are using the - `xpack.actions.allowedHosts` setting, add the hostname to the - allowed hosts. - Connectors_secrets_properties_d3security: - title: Connector secrets properties for a D3 Security connector - description: Defines secrets for connectors when type is `.d3security`. - required: - - token - type: object - properties: - token: - type: string - description: The D3 Security token. - Connectors_config_properties_email: - title: Connector request properties for an email connector - description: Defines properties for connectors when type is `.email`. - required: - - from - type: object - properties: - clientId: - description: > - The client identifier, which is a part of OAuth 2.0 client - credentials authentication, in GUID format. If `service` is - `exchange_server`, this property is required. - type: string - nullable: true - from: - description: > - The from address for all emails sent by the connector. It must be - specified in `user@host-name` format. - type: string - hasAuth: - description: > - Specifies whether a user and password are required inside the - secrets configuration. - default: true - type: boolean - host: - description: > - The host name of the service provider. If the `service` is - `elastic_cloud` (for Elastic Cloud notifications) or one of - Nodemailer's well-known email service providers, this property is - ignored. If `service` is `other`, this property must be defined. - type: string - oauthTokenUrl: - type: string - nullable: true - port: - description: > - The port to connect to on the service provider. If the `service` is - `elastic_cloud` (for Elastic Cloud notifications) or one of - Nodemailer's well-known email service providers, this property is - ignored. If `service` is `other`, this property must be defined. - type: integer - secure: - description: > - Specifies whether the connection to the service provider will use - TLS. If the `service` is `elastic_cloud` (for Elastic Cloud - notifications) or one of Nodemailer's well-known email service - providers, this property is ignored. - type: boolean - service: - description: | - The name of the email service. - type: string - enum: - - elastic_cloud - - exchange_server - - gmail - - other - - outlook365 - - ses - tenantId: - description: > - The tenant identifier, which is part of OAuth 2.0 client credentials - authentication, in GUID format. If `service` is `exchange_server`, - this property is required. - type: string - nullable: true - Connectors_secrets_properties_email: - title: Connector secrets properties for an email connector - description: Defines secrets for connectors when type is `.email`. - type: object - properties: - clientSecret: - type: string - description: > - The Microsoft Exchange Client secret for OAuth 2.0 client - credentials authentication. It must be URL-encoded. If `service` is - `exchange_server`, this property is required. - password: - type: string - description: > - The password for HTTP basic authentication. If `hasAuth` is set to - `true`, this property is required. - user: - type: string - description: > - The username for HTTP basic authentication. If `hasAuth` is set to - `true`, this property is required. - Connectors_config_properties_genai_azure: - title: >- - Connector request properties for an OpenAI connector that uses Azure - OpenAI - description: > - Defines properties for connectors when type is `.gen-ai` and the API - provider is `Azure OpenAI'. - type: object - required: - - apiProvider - - apiUrl - properties: - apiProvider: - type: string - description: The OpenAI API provider. - enum: - - Azure OpenAI - apiUrl: - type: string - description: The OpenAI API endpoint. - Connectors_config_properties_genai_openai: - title: Connector request properties for an OpenAI connector - description: > - Defines properties for connectors when type is `.gen-ai` and the API - provider is `OpenAI'. - type: object - required: - - apiProvider - - apiUrl - properties: - apiProvider: - type: string - description: The OpenAI API provider. - enum: - - OpenAI - apiUrl: - type: string - description: The OpenAI API endpoint. - defaultModel: - type: string - description: The default model to use for requests. - Connectors_config_properties_genai: - title: Connector request properties for an OpenAI connector - description: Defines properties for connectors when type is `.gen-ai`. - oneOf: - - $ref: '#/components/schemas/Connectors_config_properties_genai_azure' - - $ref: '#/components/schemas/Connectors_config_properties_genai_openai' - discriminator: - propertyName: apiProvider - mapping: - Azure OpenAI: '#/components/schemas/Connectors_config_properties_genai_azure' - OpenAI: '#/components/schemas/Connectors_config_properties_genai_openai' - Connectors_secrets_properties_genai: - title: Connector secrets properties for an OpenAI connector - description: Defines secrets for connectors when type is `.gen-ai`. - type: object - properties: - apiKey: - type: string - description: The OpenAI API key. - Connectors_config_properties_index: - title: Connector request properties for an index connector - required: - - index - description: Defines properties for connectors when type is `.index`. - type: object - properties: - executionTimeField: - description: A field that indicates when the document was indexed. - default: null - type: string - nullable: true - index: - description: The Elasticsearch index to be written to. - type: string - refresh: - description: > - The refresh policy for the write request, which affects when changes - are made visible to search. Refer to the refresh setting for - Elasticsearch document APIs. - default: false - type: boolean - Connectors_config_properties_jira: - title: Connector request properties for a Jira connector - required: - - apiUrl - - projectKey - description: Defines properties for connectors when type is `.jira`. - type: object - properties: - apiUrl: - description: The Jira instance URL. - type: string - projectKey: - description: The Jira project key. - type: string - Connectors_secrets_properties_jira: - title: Connector secrets properties for a Jira connector - required: - - apiToken - - email - description: Defines secrets for connectors when type is `.jira`. - type: object - properties: - apiToken: - description: The Jira API authentication token for HTTP basic authentication. - type: string - email: - description: The account email for HTTP Basic authentication. - type: string - Connectors_config_properties_opsgenie: - title: Connector request properties for an Opsgenie connector - required: - - apiUrl - description: Defines properties for connectors when type is `.opsgenie`. - type: object - properties: - apiUrl: - description: > - The Opsgenie URL. For example, `https://api.opsgenie.com` or - `https://api.eu.opsgenie.com`. If you are using the - `xpack.actions.allowedHosts` setting, add the hostname to the - allowed hosts. - type: string - Connectors_secrets_properties_opsgenie: - title: Connector secrets properties for an Opsgenie connector - required: - - apiKey - description: Defines secrets for connectors when type is `.opsgenie`. - type: object - properties: - apiKey: - description: The Opsgenie API authentication key for HTTP Basic authentication. - type: string - Connectors_config_properties_pagerduty: - title: Connector request properties for a PagerDuty connector - description: Defines properties for connectors when type is `.pagerduty`. - type: object - properties: - apiUrl: - description: The PagerDuty event URL. - type: string - nullable: true - example: https://events.pagerduty.com/v2/enqueue - Connectors_secrets_properties_pagerduty: - title: Connector secrets properties for a PagerDuty connector - description: Defines secrets for connectors when type is `.pagerduty`. - type: object - required: - - routingKey - properties: - routingKey: - description: > - A 32 character PagerDuty Integration Key for an integration on a - service. - type: string - Connectors_config_properties_resilient: - title: Connector request properties for a IBM Resilient connector - required: - - apiUrl - - orgId - description: Defines properties for connectors when type is `.resilient`. - type: object - properties: - apiUrl: - description: The IBM Resilient instance URL. - type: string - orgId: - description: The IBM Resilient organization ID. - type: string - Connectors_secrets_properties_resilient: - title: Connector secrets properties for IBM Resilient connector - required: - - apiKeyId - - apiKeySecret - description: Defines secrets for connectors when type is `.resilient`. - type: object - properties: - apiKeyId: - type: string - description: The authentication key ID for HTTP Basic authentication. - apiKeySecret: - type: string - description: The authentication key secret for HTTP Basic authentication. - Connectors_config_properties_sentinelone: - title: Connector request properties for a SentinelOne connector - required: - - url - description: Defines properties for connectors when type is `.sentinelone`. - type: object - properties: - url: - description: > - The SentinelOne tenant URL. If you are using the - `xpack.actions.allowedHosts` setting, add the hostname to the - allowed hosts. - type: string - Connectors_secrets_properties_sentinelone: - title: Connector secrets properties for a SentinelOne connector - description: Defines secrets for connectors when type is `.sentinelone`. - type: object - required: - - token - properties: - token: - description: The A SentinelOne API token. - type: string - Connectors_config_properties_servicenow: - title: Connector request properties for a ServiceNow ITSM connector - required: - - apiUrl - description: Defines properties for connectors when type is `.servicenow`. - type: object - properties: - apiUrl: - type: string - description: The ServiceNow instance URL. - clientId: - description: > - The client ID assigned to your OAuth application. This property is - required when `isOAuth` is `true`. - type: string - isOAuth: - description: > - The type of authentication to use. The default value is false, which - means basic authentication is used instead of open authorization - (OAuth). - default: false - type: boolean - jwtKeyId: - description: > - The key identifier assigned to the JWT verifier map of your OAuth - application. This property is required when `isOAuth` is `true`. - type: string - userIdentifierValue: - description: > - The identifier to use for OAuth authentication. This identifier - should be the user field you selected when you created an OAuth JWT - API endpoint for external clients in your ServiceNow instance. For - example, if the selected user field is `Email`, the user identifier - should be the user's email address. This property is required when - `isOAuth` is `true`. - type: string - usesTableApi: - description: > - Determines whether the connector uses the Table API or the Import - Set API. This property is supported only for ServiceNow ITSM and - ServiceNow SecOps connectors. NOTE: If this property is set to - `false`, the Elastic application should be installed in ServiceNow. - default: true - type: boolean - Connectors_secrets_properties_servicenow: - title: >- - Connector secrets properties for ServiceNow ITOM, ServiceNow ITSM, and - ServiceNow SecOps connectors - description: >- - Defines secrets for connectors when type is `.servicenow`, - `.servicenow-sir`, or `.servicenow-itom`. - type: object - properties: - clientSecret: - type: string - description: >- - The client secret assigned to your OAuth application. This property - is required when `isOAuth` is `true`. - password: - type: string - description: >- - The password for HTTP basic authentication. This property is - required when `isOAuth` is `false`. - privateKey: - type: string - description: >- - The RSA private key that you created for use in ServiceNow. This - property is required when `isOAuth` is `true`. - privateKeyPassword: - type: string - description: >- - The password for the RSA private key. This property is required when - `isOAuth` is `true` and you set a password on your private key. - username: - type: string - description: >- - The username for HTTP basic authentication. This property is - required when `isOAuth` is `false`. - Connectors_config_properties_servicenow_itom: - title: Connector request properties for a ServiceNow ITSM connector - required: - - apiUrl - description: Defines properties for connectors when type is `.servicenow`. - type: object - properties: - apiUrl: - type: string - description: The ServiceNow instance URL. - clientId: - description: > - The client ID assigned to your OAuth application. This property is - required when `isOAuth` is `true`. - type: string - isOAuth: - description: > - The type of authentication to use. The default value is false, which - means basic authentication is used instead of open authorization - (OAuth). - default: false - type: boolean - jwtKeyId: - description: > - The key identifier assigned to the JWT verifier map of your OAuth - application. This property is required when `isOAuth` is `true`. - type: string - userIdentifierValue: - description: > - The identifier to use for OAuth authentication. This identifier - should be the user field you selected when you created an OAuth JWT - API endpoint for external clients in your ServiceNow instance. For - example, if the selected user field is `Email`, the user identifier - should be the user's email address. This property is required when - `isOAuth` is `true`. - type: string - Connectors_config_properties_slack_api: - title: Connector request properties for a Slack connector - description: Defines properties for connectors when type is `.slack_api`. - type: object - properties: - allowedChannels: - type: array - description: A list of valid Slack channels. - items: - type: object - required: - - id - - name - maxItems: 25 + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Get rule details + tags: + - alerting + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%3F%7D#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: >- + The identifier for the rule. If it is omitted, an ID is randomly + generated. + in: path + name: id + required: false + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + default: [] + items: + additionalProperties: false + description: An action that runs under defined conditions. + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Conditions that affect whether the action runs. If you + specify multiple conditions, all conditions must be + met for the action to run. For example, if an alert + occurs within the specified time frame and matches the + query, the action runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL) as defined in the + `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the days + of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + description: >- + Defines the range of time in a day that the + action can run. If the `start` value is + `00:00` and the `end` value is `24:00`, + actions be generated all day. + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work but + lack built-in daylight savings time support + and are not recommended. + type: string + required: + - days + - hours + - timezone + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. Valid + values include: `onActionGroupChange`: Actions run + when the alert status changes; `onActiveAlert`: + Actions run when the alert becomes active and at + each check interval while the rule conditions are + met; `onThrottleInterval`: Actions run when the + alert becomes active and at the interval specified + in the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` at + both the rule and action level. The recommended + method is to set it for each action. If you set it + at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific + values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often an + alert generates repeated actions. It is specified + in seconds, minutes, hours, or days and is + applicable only if `notify_when` is set to + `onThrottleInterval`. NOTE: You cannot specify the + throttle interval at both the rule and action + level. The recommended method is to set it for + each action. If you set it at the rule level then + update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + default: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: A universally unique identifier (UUID) for the action. + type: string + required: + - id + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, `infrastructure`, + `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, + `siem`, `stackAlerts`, or `uptime`. + type: string + enabled: + default: true + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + name: + description: >- + The name of the rule. While this name does not have to be + unique, a distinctive name can help you identify a rule. + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while the rule + conditions are met; `onThrottleInterval`: Actions run when + the alert becomes active and at the interval specified in + the throttle property while the rule conditions are met. + NOTE: You cannot specify `notify_when` at both the rule and + action level. The recommended method is to set it for each + action. If you set it at the rule level then update the rule + in Kibana, it is automatically changed to use + action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + default: {} + description: The parameters for the rule. + type: object + rule_type_id: + description: The rule type identifier. + type: string + schedule: + additionalProperties: false + description: >- + The check interval, which specifies how frequently the rule + conditions are checked. + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, or + days. + type: string + required: + - interval + tags: + default: [] + description: The tags for the rule. + items: + type: string + type: array + throttle: + description: >- + Use the `throttle` property in the action `frequency` object + instead. The throttle interval, which defines how often an + alert generates repeated actions. NOTE: You cannot specify + the throttle interval at both the rule and action level. If + you set it at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific values. + nullable: true + type: string + required: + - name + - rule_type_id + - consumer + - schedule + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Create a rule + tags: + - alerting + put: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#1' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + default: [] + items: + additionalProperties: false + description: An action that runs under defined conditions. + type: object + properties: + alerts_filter: + additionalProperties: false + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL) as defined in the + `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the days + of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + description: >- + Defines the range of time in a day that the + action can run. If the `start` value is + `00:00` and the `end` value is `24:00`, + actions be generated all day. + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work but + lack built-in daylight savings time support + and are not recommended. + type: string + required: + - days + - hours + - timezone + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. Valid + values include: `onActionGroupChange`: Actions run + when the alert status changes; `onActiveAlert`: + Actions run when the alert becomes active and at + each check interval while the rule conditions are + met; `onThrottleInterval`: Actions run when the + alert becomes active and at the interval specified + in the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` at + both the rule and action level. The recommended + method is to set it for each action. If you set it + at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific + values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often an + alert generates repeated actions. It is specified + in seconds, minutes, hours, or days and is + applicable only if `notify_when` is set to + `onThrottleInterval`. NOTE: You cannot specify the + throttle interval at both the rule and action + level. The recommended method is to set it for + each action. If you set it at the rule level then + update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + default: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: A universally unique identifier (UUID) for the action. + type: string + required: + - id + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + name: + description: >- + The name of the rule. While this name does not have to be + unique, a distinctive name can help you identify a rule. + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while the rule + conditions are met; `onThrottleInterval`: Actions run when + the alert becomes active and at the interval specified in + the throttle property while the rule conditions are met. + NOTE: You cannot specify `notify_when` at both the rule and + action level. The recommended method is to set it for each + action. If you set it at the rule level then update the rule + in Kibana, it is automatically changed to use + action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + default: {} + description: The parameters for the rule. + type: object + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, or + days. + type: string + required: + - interval + tags: + default: [] + items: + description: The tags for the rule. + type: string + type: array + throttle: + description: >- + Use the `throttle` property in the action `frequency` object + instead. The throttle interval, which defines how often an + alert generates repeated actions. NOTE: You cannot specify + the throttle interval at both the rule and action level. If + you set it at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific values. + nullable: true + type: string + required: + - name + - schedule + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Update a rule + tags: + - alerting + '/api/alerting/rule/{id}/_disable': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_disable#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + nullable: true + type: object + properties: + untrack: + description: Defines whether this rule's alerts should be untracked. + type: boolean + x-oas-optional: true + responses: + '204': + description: Indicates a successful call. + summary: Disable a rule + tags: + - alerting + '/api/alerting/rule/{id}/_enable': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_enable#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Enable a rule + tags: + - alerting + '/api/alerting/rule/{id}/_mute_all': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_mute_all#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Mute all alerts + tags: + - alerting + '/api/alerting/rule/{id}/_unmute_all': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_unmute_all#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Unmute all alerts + tags: + - alerting + '/api/alerting/rule/{id}/_update_api_key': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_update_api_key#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Update the API key for a rule + tags: + - alerting + '/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute': + post: + operationId: >- + %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_mute#0 + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: rule_id + required: true + schema: + type: string + - description: The identifier for the alert. + in: path + name: alert_id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Mute an alert + tags: + - alerting + '/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute': + post: + operationId: >- + %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_unmute#0 + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: rule_id + required: true + schema: + type: string + - description: The identifier for the alert. + in: path + name: alert_id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Unmute an alert + tags: + - alerting + /api/alerting/rules/_find: + get: + operationId: '%2Fapi%2Falerting%2Frules%2F_find#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: The number of rules to return per page. + in: query + name: per_page + required: false + schema: + default: 10 + minimum: 0 + type: number + - description: The page number to return. + in: query + name: page + required: false + schema: + default: 1 + minimum: 1 + type: number + - description: >- + An Elasticsearch simple_query_string query that filters the objects + in the response. + in: query + name: search + required: false + schema: + type: string + - description: The default operator to use for the simple_query_string. + in: query + name: default_search_operator + required: false + schema: + default: OR + enum: + - OR + - AND + type: string + - description: The fields to perform the simple_query_string parsed query against. + in: query + name: search_fields + required: false + schema: + anyOf: + - items: + type: string + type: array + - type: string + - description: >- + Determines which field is used to sort the results. The field must + exist in the `attributes` key of the response. + in: query + name: sort_field + required: false + schema: + type: string + - description: Determines the sort order. + in: query + name: sort_order + required: false + schema: + enum: + - asc + - desc + type: string + - description: >- + Filters the rules that have a relation with the reference objects + with a specific type and identifier. + in: query + name: has_reference + required: false + schema: + additionalProperties: false + nullable: true + type: object properties: id: type: string - description: The Slack channel ID. - example: C123ABC456 - minLength: 1 - name: + type: type: string - description: The Slack channel name. - minLength: 1 - Connectors_secrets_properties_slack_api: - title: Connector secrets properties for a Web API Slack connector - description: Defines secrets for connectors when type is `.slack`. - required: - - token - type: object - properties: - token: - type: string - description: Slack bot user OAuth token. - Connectors_secrets_properties_slack_webhook: - title: Connector secrets properties for a Webhook Slack connector - description: Defines secrets for connectors when type is `.slack`. - required: - - webhookUrl - type: object - properties: - webhookUrl: - type: string - description: Slack webhook url. - Connectors_config_properties_swimlane: - title: Connector request properties for a Swimlane connector - required: - - apiUrl - - appId - - connectorType - description: Defines properties for connectors when type is `.swimlane`. - type: object - properties: - apiUrl: - description: The Swimlane instance URL. - type: string - appId: - description: The Swimlane application ID. - type: string - connectorType: + required: + - type + - id + - in: query + name: fields + required: false + schema: + items: + description: The fields to return in the `attributes` key of the response. + type: string + type: array + - description: >- + A KQL string that you filter with an attribute from your saved + object. It should look like `savedObjectType.attributes.title: + "myTitle"`. However, if you used a direct attribute of a saved + object, such as `updatedAt`, you must define your filter, for + example, `savedObjectType.updatedAt > 2018-12-22`. + in: query + name: filter + required: false + schema: + type: string + - in: query + name: filter_consumers + required: false + schema: + items: + description: List of consumers to filter. + type: string + type: array + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Get information about rules + tags: + - alerting + /api/apm/agent_keys: + post: + description: Create a new agent key for APM. + operationId: createAgentKey + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + privileges: + items: + enum: + - 'event:write' + - 'config_agent:read' + type: string + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + api_key: + type: string + encoded: + type: string + expiration: + format: int64 + type: integer + id: + type: string + name: + type: string + description: Agent key created successfully + summary: Create an APM agent key + tags: + - APM agent keys + '/api/apm/services/{serviceName}/annotation': + post: + description: Create a new annotation for a specific service. + operationId: createAnnotation + parameters: + - description: The name of the service + in: path + name: serviceName + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + '@timestamp': + type: string + message: + type: string + service: + type: object + properties: + environment: + type: string + version: + type: string + tags: + items: + type: string + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + _id: + type: string + _index: + type: string + _source: + type: object + properties: + '@timestamp': + type: string + annotation: + type: string + event: + type: object + properties: + created: + type: string + message: + type: string + service: + type: object + properties: + environment: + type: string + name: + type: string + version: + type: string + tags: + items: + type: string + type: array + description: Annotation created successfully + summary: Create a service annotation + tags: + - APM annotations + '/api/apm/services/{serviceName}/annotation/search': + get: + description: Search for annotations related to a specific service. + operationId: getAnnotation + parameters: + - description: The name of the service + in: path + name: serviceName + required: true + schema: + type: string + - description: The environment to filter annotations by + in: query + name: environment + required: false + schema: + type: string + - description: The start date for the search + in: query + name: start + required: false + schema: + type: string + - description: The end date for the search + in: query + name: end + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + annotations: + items: + type: object + properties: + '@timestamp': + type: number + id: + type: string + text: + type: string + type: + enum: + - version + type: string + type: array + description: Successful response + summary: Search for annotations + tags: + - APM annotations + /api/data_views: + get: + operationId: getAllDataViewsDefault + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getAllDataViewsResponse: + $ref: '#/components/examples/Data_views_get_data_views_response' + schema: + type: object + properties: + data_view: + items: + type: object + properties: + id: + type: string + name: + type: string + namespaces: + items: + type: string + type: array + title: + type: string + typeMeta: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Get all data views + tags: + - data views + /api/data_views/data_view: + post: + operationId: createDataViewDefaultw + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createDataViewRequest: + $ref: '#/components/examples/Data_views_create_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_create_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Create a data view + tags: + - data views + '/api/data_views/data_view/{viewId}': + delete: + description: | + WARNING: When you delete a data view, it cannot be recovered. + operationId: deleteDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '204': + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Delete a data view + tags: + - data views + get: + operationId: getDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDataViewResponse: + $ref: '#/components/examples/Data_views_get_data_view_response' + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Get a data view + tags: + - data views + post: + operationId: updateDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateDataViewRequest: + $ref: '#/components/examples/Data_views_update_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_update_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update a data view + tags: + - data views + '/api/data_views/data_view/{viewId}/fields': + post: + description: > + Update fields presentation metadata such as count, customLabel, + customDescription, and format. + operationId: updateFieldsMetadataDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateFieldsMetadataRequest: + $ref: '#/components/examples/Data_views_update_field_metadata_request' + schema: + type: object + properties: + fields: + description: The field object. + type: object + required: + - fields + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + acknowledged: + type: boolean + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update data view fields metadata + tags: + - data views + '/api/data_views/data_view/{viewId}/runtime_field': + post: + operationId: createRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_create_runtime_field_request' + schema: + type: object + properties: + name: + description: | + The name for a runtime field. + type: string + runtimeField: + description: | + The runtime field definition object. + type: object + required: + - name + - runtimeField + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + summary: Create a runtime field + tags: + - data views + put: + operationId: createUpdateRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - description: | + The ID of the data view fields you want to update. + in: path + name: viewId + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_create_runtime_field_request' + schema: + type: object + properties: + name: + description: | + The name for a runtime field. + type: string + runtimeField: + description: | + The runtime field definition object. + type: object + required: + - name + - runtimeField + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + data_view: + type: object + fields: + items: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Create or update a runtime field + tags: + - data views + '/api/data_views/data_view/{viewId}/runtime_field/{fieldName}': + delete: + operationId: deleteRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Delete a runtime field from a data view + tags: + - data views + get: + operationId: getRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getRuntimeFieldResponse: + $ref: '#/components/examples/Data_views_get_runtime_field_response' + schema: + type: object + properties: + data_view: + type: object + fields: + items: + type: object + type: array + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Get a runtime field + tags: + - data views + post: + operationId: updateRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_update_runtime_field_request' + schema: + type: object + properties: + runtimeField: + description: | + The runtime field definition object. + + You can update following fields: + + - `type` + - `script` + type: object + required: + - runtimeField + required: true + responses: + '200': + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update a runtime field + tags: + - data views + /api/data_views/default: + get: + operationId: getDefaultDataViewDefault + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDefaultDataViewResponse: + $ref: >- + #/components/examples/Data_views_get_default_data_view_response + schema: + type: object + properties: + data_view_id: + type: string + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Get the default data view + tags: + - data views + post: + operationId: setDefaultDatailViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + setDefaultDataViewRequest: + $ref: '#/components/examples/Data_views_set_default_data_view_request' + schema: + type: object + properties: + data_view_id: + description: > + The data view identifier. NOTE: The API does not validate + whether it is a valid identifier. Use `null` to unset the + default data view. + nullable: true + type: string + force: + default: false + description: Update an existing default data view identifier. + type: boolean + required: + - data_view_id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + acknowledged: + type: boolean + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Set the default data view + tags: + - data views + /api/data_views/swap_references: + post: + description: > + Changes saved object references from one data view identifier to + another. WARNING: Misuse can break large numbers of saved objects! + Practicing with a backup is recommended. + operationId: swapDataViewsDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + swapDataViewRequest: + $ref: '#/components/examples/Data_views_swap_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_swap_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + deleteStatus: + type: object + properties: + deletePerformed: + type: boolean + remainingRefs: + type: integer + result: + items: + type: object + properties: + id: + description: A saved object identifier. + type: string + type: + description: The saved object type. + type: string + type: array + description: Indicates a successful call. + summary: Swap saved object references + tags: + - data views + /api/data_views/swap_references/_preview: + post: + description: > + Preview the impact of swapping saved object references from one data + view identifier to another. + operationId: previewSwapDataViewsDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + previewSwapDataViewRequest: + $ref: >- + #/components/examples/Data_views_preview_swap_data_view_request + schema: + $ref: '#/components/schemas/Data_views_swap_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + result: + items: + type: object + properties: + id: + description: A saved object identifier. + type: string + type: + description: The saved object type. + type: string + type: array + description: Indicates a successful call. + summary: Preview a saved object reference swap + tags: + - data views + /api/ml/saved_objects/sync: + get: + description: > + Synchronizes Kibana saved objects for machine learning jobs and trained + models. This API runs automatically when you start Kibana and + periodically thereafter. + operationId: mlSync + parameters: + - $ref: '#/components/parameters/Machine_learning_APIs_simulateParam' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + syncExample: + $ref: '#/components/examples/Machine_learning_APIs_mlSyncExample' + schema: + $ref: '#/components/schemas/Machine_learning_APIs_mlSync200Response' + description: Indicates a successful call + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Machine_learning_APIs_mlSync4xxResponse' + description: Authorization information is missing or invalid. + summary: Sync machine learning saved objects + tags: + - ml + /api/saved_objects/_export: + post: + description: > + Retrieve sets of saved objects that you want to import into Kibana. + + You must include `type` or `objects` in the request body. + + + Exported saved objects are not backwards compatible and cannot be + imported into an older version of Kibana. + + + NOTE: The `savedObjects.maxImportExportSize` configuration setting + limits the number of saved objects which may be exported. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: exportSavedObjectsDefault + parameters: + - $ref: '#/components/parameters/Serverless_saved_objects_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + exportSavedObjectsRequest: + $ref: >- + #/components/examples/Serverless_saved_objects_export_objects_request + schema: + type: object + properties: + excludeExportDetails: + default: false + description: Do not add export details entry at the end of the stream. + type: boolean + includeReferencesDeep: + description: >- + Includes all of the referenced objects in the exported + objects. + type: boolean + objects: + description: A list of objects to export. + items: + type: object + type: array + type: + description: >- + The saved object types to include in the export. Use `*` to + export all the types. + oneOf: + - type: string + - items: + type: string + type: array + required: true + responses: + '200': + content: + application/x-ndjson; Elastic-Api-Version=2023-10-31: + examples: + exportSavedObjectsResponse: + $ref: >- + #/components/examples/Serverless_saved_objects_export_objects_response + schema: + additionalProperties: true + type: object + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Serverless_saved_objects_400_response' + description: Bad request. + summary: Export saved objects + tags: + - saved objects + /api/saved_objects/_import: + post: + description: > + Create sets of Kibana saved objects from a file created by the export + API. + + Saved objects can be imported only into the same version, a newer minor + on the same major, or the next major. Exported saved objects are not + backwards compatible and cannot be imported into an older version of + Kibana. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: importSavedObjectsDefault + parameters: + - $ref: '#/components/parameters/Serverless_saved_objects_kbn_xsrf' + - description: > + Creates copies of saved objects, regenerates each object ID, and + resets the origin. When used, potential conflict errors are avoided. + NOTE: This option cannot be used with the `overwrite` and + `compatibilityMode` options. + in: query + name: createNewCopies + required: false + schema: + type: boolean + - description: > + Overwrites saved objects when they already exist. When used, + potential conflict errors are automatically resolved by overwriting + the destination object. NOTE: This option cannot be used with the + `createNewCopies` option. + in: query + name: overwrite + required: false + schema: + type: boolean + - description: > + Applies various adjustments to the saved objects that are being + imported to maintain compatibility between different Kibana + versions. Use this option only if you encounter issues with imported + saved objects. NOTE: This option cannot be used with the + `createNewCopies` option. + in: query + name: compatibilityMode + required: false + schema: + type: boolean + requestBody: + content: + multipart/form-data; Elastic-Api-Version=2023-10-31: + examples: + importObjectsRequest: + $ref: >- + #/components/examples/Serverless_saved_objects_import_objects_request + schema: + type: object + properties: + file: + description: > + A file exported using the export API. NOTE: The + `savedObjects.maxImportExportSize` configuration setting + limits the number of saved objects which may be included in + this file. Similarly, the + `savedObjects.maxImportPayloadBytes` setting limits the + overall size of the file that can be imported. + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + importObjectsResponse: + $ref: >- + #/components/examples/Serverless_saved_objects_import_objects_response + schema: + type: object + properties: + errors: + description: > + Indicates the import was unsuccessful and specifies the + objects that failed to import. + + + NOTE: One object may result in multiple errors, which + requires separate steps to resolve. For instance, a + `missing_references` error and conflict error. + items: + type: object + type: array + success: + description: > + Indicates when the import was successfully completed. When + set to false, some objects may not have been created. For + additional information, refer to the `errors` and + `successResults` properties. + type: boolean + successCount: + description: Indicates the number of successfully imported records. + type: integer + successResults: + description: > + Indicates the objects that are successfully imported, with + any metadata if applicable. + + + NOTE: Objects are created only when all resolvable errors + are addressed, including conflicts and missing references. + If objects are created as new copies, each entry in the + `successResults` array includes a `destinationId` + attribute. + items: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Serverless_saved_objects_400_response' + description: Bad request. + summary: Import saved objects + tags: + - saved objects + /api/status: + get: + operationId: '%2Fapi%2Fstatus#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: Set to "true" to get the response in v7 format. + in: query + name: v7format + required: false + schema: + type: boolean + - description: Set to "true" to get the response in v8 format. + in: query + name: v8format + required: false + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + anyOf: + - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' + - $ref: >- + #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse + description: >- + Kibana's operational status. A minimal response is sent for + unauthorized users. + description: Overall status is OK and Kibana should be functioning normally. + '503': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + anyOf: + - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' + - $ref: >- + #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse + description: >- + Kibana's operational status. A minimal response is sent for + unauthorized users. description: >- - The type of connector. Valid values are `all`, `alerts`, and - `cases`. + Kibana or some of it's essential services are unavailable. Kibana + may be degraded or unavailable. + summary: Get Kibana's current status + tags: + - system + /data_streams: + get: + operationId: data-streams-list + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + data_streams: + items: + $ref: '#/components/schemas/Fleet_data_stream' + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List data streams + tags: + - Data streams + parameters: [] + /enrollment_api_keys: + get: + operationId: get-enrollment-api-keys + parameters: [] + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - page + - perPage + - total + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List enrollment API keys + tags: + - Fleet enrollment API keys + post: + operationId: create-enrollment-api-keys + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - created + type: string + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create enrollment API key + tags: + - Fleet enrollment API keys + '/enrollment_api_keys/{keyId}': + delete: + operationId: delete-enrollment-api-key + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - deleted + type: string + required: + - action + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete enrollment API key by ID + tags: + - Fleet enrollment API keys + get: + operationId: get-enrollment-api-key + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment API key by ID + tags: + - Fleet enrollment API keys + parameters: + - in: path + name: keyId + required: true + schema: type: string - enum: - - all - - alerts - - cases - mappings: - title: Connector mappings properties for a Swimlane connector - description: The field mapping. - type: object - properties: - alertIdConfig: - title: Alert identifier mapping - description: Mapping for the alert ID. + /enrollment-api-keys: + get: + deprecated: true + operationId: get-enrollment-api-keys-deprecated + parameters: [] + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - page + - perPage + - total + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List enrollment API keys + tags: + - Fleet enrollment API keys + post: + deprecated: true + operationId: create-enrollment-api-keys-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - created + type: string + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create enrollment API key + tags: + - Fleet enrollment API keys + '/enrollment-api-keys/{keyId}': + delete: + deprecated: true + operationId: delete-enrollment-api-key-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - deleted + type: string + required: + - action + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete enrollment API key by ID + tags: + - Fleet enrollment API keys + get: + deprecated: true + operationId: get-enrollment-api-key-deprecated + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment API key by ID + tags: + - Fleet enrollment API keys + parameters: + - in: path + name: keyId + required: true + schema: + type: string + /epm/bulk_assets: + post: + operationId: bulk-get-assets + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + assetIds: + description: list of items necessary to fetch assets + items: + type: object + properties: + id: + type: string + type: + type: string + type: array + required: + - assetIds + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_get_bulk_assets_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get assets + tags: + - Elastic Package Manager (EPM) + /epm/categories: + get: + operationId: get-package-categories + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_get_categories_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List package categories + tags: + - Elastic Package Manager (EPM) + parameters: + - description: >- + Whether to include prerelease packages in categories count (e.g. beta, + rc, preview) + in: query + name: prerelease + schema: + default: false + type: boolean + - deprecated: true + in: query + name: experimental + schema: + default: false + type: boolean + - in: query + name: include_policy_templates + schema: + default: false + type: boolean + /epm/packages: + get: + operationId: list-all-packages + parameters: + - description: >- + Whether to exclude the install status of each package. Enabling this + option will opt in to caching for the response via `cache-control` + headers. If you don't need up-to-date installation info for a + package, and are querying for a list of available packages, + providing this flag can improve performance substantially. + in: query + name: excludeInstallStatus + schema: + default: false + type: boolean + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean + - deprecated: true + in: query + name: experimental + schema: + default: false + type: boolean + - in: query + name: category + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_get_packages_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List packages + tags: + - Elastic Package Manager (EPM) + post: + description: '' + operationId: install-package-by-upload + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean + requestBody: + content: + application/gzip; Elastic-Api-Version=2023-10-31: + schema: + format: binary + type: string + application/zip; Elastic-Api-Version=2023-10-31: + schema: + format: binary + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + _meta: + type: object + properties: + install_source: + enum: + - upload + - registry + - bundled + type: string + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + '429': + $ref: '#/components/responses/Fleet_error' + summary: Install by package by direct upload + tags: + - Elastic Package Manager (EPM) + /epm/packages/_bulk: + post: + operationId: bulk-install-packages + parameters: + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object + properties: + force: + description: force install to ignore package verification errors + type: boolean + packages: + description: list of packages to install + items: + oneOf: + - description: package name + type: string + - type: object + properties: + name: + description: package name + type: string + version: + description: package version + type: string + type: array required: - - fieldType - - id - - key - - name + - packages + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_bulk_install_packages_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk install packages + tags: + - Elastic Package Manager (EPM) + '/epm/packages/{pkgkey}': + delete: + deprecated: true + operationId: delete-package-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgkey + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - caseIdConfig: - title: Case identifier mapping - description: Mapping for the case ID. + force: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + response: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - response + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete ackage + tags: + - Elastic Package Manager (EPM) + get: + deprecated: true + operationId: get-package-deprecated + parameters: + - in: path + name: pkgkey + required: true + schema: + type: string + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + allOf: + - properties: + response: + $ref: '#/components/schemas/Fleet_package_info' + - properties: + savedObject: + type: string + status: + enum: + - installed + - installing + - install_failed + - not_installed + type: string + required: + - status + - savedObject + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package + tags: + - Elastic Package Manager (EPM) + post: + deprecated: true + description: '' + operationId: install-package-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgkey + required: true + schema: + type: string + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - required: - - fieldType - - id - - key - - name properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - caseNameConfig: - title: Case name mapping - description: Mapping for the case name. + force: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + response: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - response + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Install package + tags: + - Elastic Package Manager (EPM) + '/epm/packages/{pkgName}/{pkgVersion}': + delete: + operationId: delete-package + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: delete package even if policies used by agents + in: query + name: force + schema: + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + deprecated: true + type: object + properties: + force: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete package + tags: + - Elastic Package Manager (EPM) + get: + operationId: get-package + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + allOf: + - properties: + item: + $ref: '#/components/schemas/Fleet_package_info' + - properties: + keepPoliciesUpToDate: + type: boolean + latestVersion: + type: string + licensePath: + type: string + notice: + type: string + savedObject: + deprecated: true + type: object + status: + enum: + - installed + - installing + - install_failed + - not_installed + type: string + required: + - status + - savedObject + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: Ignore if the package is fails signature verification + in: query + name: ignoreUnverified + schema: + type: boolean + - description: >- + Return all fields from the package manifest, not just those supported + by the Elastic Package Registry + in: query + name: full + schema: + type: boolean + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean + post: + description: '' + operationId: install-package + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - required: - - fieldType - - id - - key - - name properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - commentsConfig: - title: Case comment mapping - description: Mapping for the case comments. + force: + type: boolean + ignore_constraints: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + _meta: + type: object + properties: + install_source: + enum: + - registry + - upload + - bundled + type: string + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Install package + tags: + - Elastic Package Manager (EPM) + put: + description: '' + operationId: update-package + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - required: - - fieldType - - id - - key - - name properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - descriptionConfig: - title: Case description mapping - description: Mapping for the case description. + keepPoliciesUpToDate: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update package settings + tags: + - Elastic Package Manager (EPM) + '/epm/packages/{pkgName}/{pkgVersion}/{filePath}': + get: + operationId: packages-get-file + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + body: + type: object + headers: + type: object + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package file + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - in: path + name: filePath + required: true + schema: + type: string + '/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': + post: + description: '' + operationId: reauthorize-transforms + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: >- + Whether to include prerelease packages in categories count (e.g. + beta, rc, preview) + in: query + name: prerelease + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - required: - - fieldType - - id - - key - - name properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - ruleNameConfig: - title: Rule name mapping - description: Mapping for the name of the alert's rule. + transforms: + items: + type: object + properties: + transformId: + type: string + type: array + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + error: + type: string + success: + type: boolean + transformId: + type: string + required: + - transformId + - error + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Authorize transforms + tags: + - Elastic Package Manager (EPM) + '/epm/packages/{pkgName}/stats': + get: + operationId: get-package-stats + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + response: + $ref: '#/components/schemas/Fleet_package_usage_stats' + required: + - response + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package stats + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + /epm/packages/limited: + get: + operationId: list-limited-packages + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: string + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get limited package list + tags: + - Elastic Package Manager (EPM) + parameters: [] + '/epm/templates/{pkgName}/{pkgVersion}/inputs': + get: + operationId: get-inputs-template + responses: + '200': + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get inputs template + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: Format of response - json or yaml + in: query + name: format + schema: + enum: + - json + - yaml + - yml + type: string + - description: Specify if version is prerelease + in: query + name: prerelease + schema: + type: boolean + - description: Ignore if the package is fails signature verification + in: query + name: ignoreUnverified + schema: + type: boolean + /epm/verification_key_id: + get: + operationId: packages-get-verification-key-id + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + body: + type: object + properties: + id: + description: >- + the key ID of the GPG key used to verify package + signatures + nullable: true + type: string + headers: + type: object + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package signature verification key ID + tags: + - Elastic Package Manager (EPM) + parameters: [] + /fleet_server_hosts: + get: + operationId: get-fleet-server-hosts + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_fleet_server_host' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List Fleet Server hosts + tags: + - Fleet Server hosts + post: + operationId: post-fleet-server-hosts + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - required: - - fieldType - - id - - key - - name properties: - fieldType: - type: string - description: The type of field in Swimlane. + host_urls: + items: + type: string + type: array id: type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. + is_default: + type: boolean + is_internal: + type: boolean name: type: string - description: The name of the field in Swimlane. - severityConfig: - title: Severity mapping - description: Mapping for the severity. - type: object + proxy_id: + description: >- + The ID of the proxy to use for this fleet server host. See + the proxies API for more information. + type: string required: - - fieldType - - id - - key - name - properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - Connectors_secrets_properties_swimlane: - title: Connector secrets properties for a Swimlane connector - description: Defines secrets for connectors when type is `.swimlane`. - type: object - properties: - apiToken: - description: Swimlane API authentication token. - type: string - Connectors_secrets_properties_teams: - title: Connector secrets properties for a Microsoft Teams connector - description: Defines secrets for connectors when type is `.teams`. - type: object - required: - - webhookUrl - properties: - webhookUrl: - type: string - description: > - The URL of the incoming webhook. If you are using the - `xpack.actions.allowedHosts` setting, add the hostname to the - allowed hosts. - Connectors_config_properties_tines: - title: Connector request properties for a Tines connector - description: Defines properties for connectors when type is `.tines`. - type: object - required: - - url - properties: - url: - description: > - The Tines tenant URL. If you are using the - `xpack.actions.allowedHosts` setting, make sure this hostname is - added to the allowed hosts. - type: string - Connectors_secrets_properties_tines: - title: Connector secrets properties for a Tines connector - description: Defines secrets for connectors when type is `.tines`. - type: object - required: - - email - - token - properties: - email: - description: The email used to sign in to Tines. - type: string - token: - description: The Tines API token. - type: string - Connectors_config_properties_torq: - title: Connector request properties for a Torq connector - description: Defines properties for connectors when type is `.torq`. - type: object - required: - - webhookIntegrationUrl - properties: - webhookIntegrationUrl: - description: The endpoint URL of the Elastic Security integration in Torq. - type: string - Connectors_secrets_properties_torq: - title: Connector secrets properties for a Torq connector - description: Defines secrets for connectors when type is `.torq`. - type: object - required: - - token - properties: - token: - description: The secret of the webhook authentication header. - type: string - Connectors_config_properties_webhook: - title: Connector request properties for a Webhook connector - description: Defines properties for connectors when type is `.webhook`. - type: object - properties: - authType: - type: string - nullable: true - enum: - - webhook-authentication-basic - - webhook-authentication-ssl - description: | - The type of authentication to use: basic, SSL, or none. - ca: - type: string - description: > - A base64 encoded version of the certificate authority file that the - connector can trust to sign and validate certificates. This option - is available for all authentication types. - certType: - type: string - description: > - If the `authType` is `webhook-authentication-ssl`, specifies whether - the certificate authentication data is in a CRT and key file format - or a PFX file format. - enum: - - ssl-crt-key - - ssl-pfx - hasAuth: - type: boolean - description: > - If `true`, a user name and password must be provided for login type - authentication. - headers: - type: object - nullable: true - description: A set of key-value pairs sent as headers with the request. - method: - type: string - default: post - enum: - - post - - put - description: | - The HTTP request method, either `post` or `put`. - url: - type: string - description: > - The request URL. If you are using the `xpack.actions.allowedHosts` - setting, add the hostname to the allowed hosts. - verificationMode: - type: string - enum: - - certificate - - full - - none - default: full - description: > - Controls the verification of certificates. Use `full` to validate - that the certificate has an issue date within the `not_before` and - `not_after` dates, chains to a trusted certificate authority (CA), - and has a hostname or IP address that matches the names within the - certificate. Use `certificate` to validate the certificate and - verify that it is signed by a trusted authority; this option does - not check the certificate hostname. Use `none` to skip certificate - validation. - Connectors_secrets_properties_webhook: - title: Connector secrets properties for a Webhook connector - description: Defines secrets for connectors when type is `.webhook`. - type: object - properties: - crt: - type: string - description: >- - If `authType` is `webhook-authentication-ssl` and `certType` is - `ssl-crt-key`, it is a base64 encoded version of the CRT or CERT - file. - key: - type: string - description: >- - If `authType` is `webhook-authentication-ssl` and `certType` is - `ssl-crt-key`, it is a base64 encoded version of the KEY file. - pfx: - type: string - description: >- - If `authType` is `webhook-authentication-ssl` and `certType` is - `ssl-pfx`, it is a base64 encoded version of the PFX or P12 file. - password: - type: string - description: > - The password for HTTP basic authentication or the passphrase for the - SSL certificate files. If `hasAuth` is set to `true` and `authType` - is `webhook-authentication-basic`, this property is required. - user: - type: string - description: > - The username for HTTP basic authentication. If `hasAuth` is set to - `true` and `authType` is `webhook-authentication-basic`, this - property is required. - Connectors_config_properties_xmatters: - title: Connector request properties for an xMatters connector - description: Defines properties for connectors when type is `.xmatters`. - type: object - properties: - configUrl: - description: > - The request URL for the Elastic Alerts trigger in xMatters. It is - applicable only when `usesBasic` is `true`. + - host_urls + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create Fleet Server host + tags: + - Fleet Server hosts + '/fleet_server_hosts/{itemId}': + delete: + operationId: delete-fleet-server-hosts + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete Fleet Server host by ID + tags: + - Fleet Server hosts + get: + operationId: get-one-fleet-server-hosts + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get Fleet Server host by ID + tags: + - Fleet Server hosts + parameters: + - in: path + name: itemId + required: true + schema: type: string - nullable: true - usesBasic: - description: >- - Specifies whether the connector uses HTTP basic authentication - (`true`) or URL authentication (`false`). - type: boolean - default: true - Connectors_secrets_properties_xmatters: - title: Connector secrets properties for an xMatters connector - description: Defines secrets for connectors when type is `.xmatters`. - type: object - properties: - password: - description: > - A user name for HTTP basic authentication. It is applicable only - when `usesBasic` is `true`. + put: + operationId: update-fleet-server-hosts + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host_urls: + items: + type: string + type: array + is_default: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this fleet server host. See + the proxies API for more information. + nullable: true + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update Fleet Server host by ID + tags: + - Fleet Server hosts + /health_check: + post: + operationId: fleet-server-health-check + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + deprecated: true + type: string + id: + type: string + required: + - id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + deprecated: true + type: string + id: + description: Fleet Server host id + type: string + status: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Fleet Server health check + tags: + - Fleet internals + /kubernetes: + get: + operationId: get-full-k8s-manifest + parameters: + - in: query + name: download + required: false + schema: + type: boolean + - in: query + name: fleetServer + required: false + schema: + type: string + - in: query + name: enrolToken + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get full K8s agent manifest + tags: + - Fleet Kubernetes + /logstash_api_keys: + post: + operationId: generate-logstash-api-key + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + api_key: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Generate Logstash API key + tags: + - Fleet outputs + /outputs: + get: + operationId: get-outputs + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_output_create_request' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List outputs + tags: + - Fleet outputs + post: + operationId: post-outputs + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_output_create_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_output_create_request' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create output + tags: + - Fleet outputs + '/outputs/{outputId}': + delete: + operationId: delete-output + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete output by ID + tags: + - Fleet outputs + get: + operationId: get-output + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_output_create_request' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get output by ID + tags: + - Fleet outputs + parameters: + - in: path + name: outputId + required: true + schema: type: string - secretsUrl: - description: > - The request URL for the Elastic Alerts trigger in xMatters with the - API key included in the URL. It is applicable only when `usesBasic` - is `false`. + put: + operationId: update-output + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_output_update_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_output_update_request' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update output by ID + tags: + - Fleet outputs + '/outputs/{outputId}/health': + get: + operationId: get-output-health + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + message: + description: long message if unhealthy + type: string + state: + description: 'state of output, HEALTHY or DEGRADED' + type: string + timestamp: + description: timestamp of reported state + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get latest output health + tags: + - Fleet outputs + parameters: + - in: path + name: outputId + required: true + schema: type: string - user: - description: > - A password for HTTP basic authentication. It is applicable only when - `usesBasic` is `true`. + /package_policies: + get: + operationId: get-package-policies + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_format' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List package policies + tags: + - Fleet package policies + parameters: [] + post: + operationId: create-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_format' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_package_policy_request' + description: >- + You should use inputs as an object and not use the deprecated inputs + array. + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_package_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + '409': + $ref: '#/components/responses/Fleet_error' + summary: Create package policy + tags: + - Fleet package policies + /package_policies/_bulk_get: + post: + operationId: bulk-get-package-policies + parameters: + - $ref: '#/components/parameters/Fleet_format' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + ids: + description: list of package policy ids + items: + type: string + type: array + ignoreMissing: + type: boolean + required: + - ids + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get package policies + tags: + - Fleet package policies + '/package_policies/{packagePolicyId}': + delete: + operationId: delete-package-policy + parameters: + - in: query + name: force + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete package policy by ID + tags: + - Fleet package policies + get: + operationId: get-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_format' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_package_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package policy by ID + tags: + - Fleet package policies + parameters: + - in: path + name: packagePolicyId + required: true + schema: type: string - Connectors_create_connector_request: - title: Create connector request body properties - description: The properties vary depending on the connector type. - oneOf: - - $ref: '#/components/schemas/Connectors_create_connector_request_bedrock' - - $ref: '#/components/schemas/Connectors_create_connector_request_gemini' - - $ref: >- - #/components/schemas/Connectors_create_connector_request_cases_webhook - - $ref: '#/components/schemas/Connectors_create_connector_request_d3security' - - $ref: '#/components/schemas/Connectors_create_connector_request_email' - - $ref: '#/components/schemas/Connectors_create_connector_request_genai' - - $ref: '#/components/schemas/Connectors_create_connector_request_index' - - $ref: '#/components/schemas/Connectors_create_connector_request_jira' - - $ref: '#/components/schemas/Connectors_create_connector_request_opsgenie' - - $ref: '#/components/schemas/Connectors_create_connector_request_pagerduty' - - $ref: '#/components/schemas/Connectors_create_connector_request_resilient' - - $ref: '#/components/schemas/Connectors_create_connector_request_sentinelone' - - $ref: '#/components/schemas/Connectors_create_connector_request_serverlog' - - $ref: '#/components/schemas/Connectors_create_connector_request_servicenow' - - $ref: >- - #/components/schemas/Connectors_create_connector_request_servicenow_itom - - $ref: >- - #/components/schemas/Connectors_create_connector_request_servicenow_sir - - $ref: '#/components/schemas/Connectors_create_connector_request_slack_api' - - $ref: >- - #/components/schemas/Connectors_create_connector_request_slack_webhook - - $ref: '#/components/schemas/Connectors_create_connector_request_swimlane' - - $ref: '#/components/schemas/Connectors_create_connector_request_teams' - - $ref: '#/components/schemas/Connectors_create_connector_request_tines' - - $ref: '#/components/schemas/Connectors_create_connector_request_torq' - - $ref: '#/components/schemas/Connectors_create_connector_request_webhook' - - $ref: '#/components/schemas/Connectors_create_connector_request_xmatters' - discriminator: - propertyName: connector_type_id - mapping: - .bedrock: '#/components/schemas/Connectors_create_connector_request_bedrock' - .gemini: '#/components/schemas/Connectors_create_connector_request_gemini' - .cases-webhook: >- - #/components/schemas/Connectors_create_connector_request_cases_webhook - .d3security: '#/components/schemas/Connectors_create_connector_request_d3security' - .email: '#/components/schemas/Connectors_create_connector_request_email' - .gen-ai: '#/components/schemas/Connectors_create_connector_request_genai' - .index: '#/components/schemas/Connectors_create_connector_request_index' - .jira: '#/components/schemas/Connectors_create_connector_request_jira' - .opsgenie: '#/components/schemas/Connectors_create_connector_request_opsgenie' - .pagerduty: '#/components/schemas/Connectors_create_connector_request_pagerduty' - .resilient: '#/components/schemas/Connectors_create_connector_request_resilient' - .sentinelone: '#/components/schemas/Connectors_create_connector_request_sentinelone' - .server-log: '#/components/schemas/Connectors_create_connector_request_serverlog' - .servicenow: '#/components/schemas/Connectors_create_connector_request_servicenow' - .servicenow-itom: >- - #/components/schemas/Connectors_create_connector_request_servicenow_itom - .servicenow-sir: >- - #/components/schemas/Connectors_create_connector_request_servicenow_sir - .slack_api: '#/components/schemas/Connectors_create_connector_request_slack_api' - .slack: >- - #/components/schemas/Connectors_create_connector_request_slack_webhook - .swimlane: '#/components/schemas/Connectors_create_connector_request_swimlane' - .teams: '#/components/schemas/Connectors_create_connector_request_teams' - .tines: '#/components/schemas/Connectors_create_connector_request_tines' - .torq: '#/components/schemas/Connectors_create_connector_request_torq' - .webhook: '#/components/schemas/Connectors_create_connector_request_webhook' - .xmatters: '#/components/schemas/Connectors_create_connector_request_xmatters' - Connectors_connector_response_properties_bedrock: - title: Connector response properties for an Amazon Bedrock connector - type: object - required: - - config - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: + put: + operationId: update-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_format' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_package_policy_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_package_policy' + sucess: + type: boolean + required: + - item + - sucess + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update package policy by ID + tags: + - Fleet package policies + /package_policies/delete: + post: + operationId: post-delete-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean + packagePolicyIds: + items: + type: string + type: array + required: + - packagePolicyIds + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete package policy + tags: + - Fleet package policies + /package_policies/upgrade: + post: + operationId: upgrade-package-policy + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + packagePolicyIds: + items: + type: string + type: array + required: + - packagePolicyIds + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + '409': + $ref: '#/components/responses/Fleet_error' + summary: Upgrade package policy to a newer package version + tags: + - Fleet package policies + /package_policies/upgrade/dryrun: + post: + operationId: upgrade-package-policy-dry-run + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + packagePolicyIds: + items: + type: string + type: array + packageVersion: + type: string + required: + - packagePolicyIds + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + properties: + agent_diff: + $ref: '#/components/schemas/Fleet_upgrade_agent_diff' + diff: + $ref: '#/components/schemas/Fleet_upgrade_diff' + hasErrors: + type: boolean + required: + - hasErrors + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Dry run package policy upgrade + tags: + - Fleet package policies + /proxies: + get: + operationId: get-fleet-proxies + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_proxies' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List proxies + tags: + - Fleet proxies + post: + operationId: post-fleet-proxies + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + id: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string + required: + - name + - url + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_proxies' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create proxy + tags: + - Fleet proxies + '/proxies/{itemId}': + delete: + operationId: delete-fleet-proxies + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete proxy by ID + tags: + - Fleet proxies + get: + operationId: get-one-fleet-proxies + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_proxies' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get proxy by ID + tags: + - Fleet proxies + parameters: + - in: path + name: itemId + required: true + schema: + type: string + put: + operationId: update-fleet-proxies + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_proxies' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update proxy by ID + tags: + - Fleet proxies + '/s/{spaceId}/api/observability/slos': + get: + description: > + You must have the `read` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: findSlosOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - description: A valid kql query to filter the SLO with + example: 'slo.name:latency* and slo.tags : "prod"' + in: query + name: kqlQuery + schema: + type: string + - description: 'The page to use for pagination, must be greater or equal than 1' + example: 1 + in: query + name: page + schema: + default: 1 + type: integer + - description: Number of SLOs returned by page + example: 25 + in: query + name: perPage + schema: + default: 25 + maximum: 5000 + type: integer + - description: Sort by field + example: status + in: query + name: sortBy + schema: + default: status + enum: + - sli_value + - status + - error_budget_consumed + - error_budget_remaining + type: string + - description: Sort order + example: asc + in: query + name: sortDirection + schema: + default: asc + enum: + - asc + - desc + type: string + - description: >- + Hide stale SLOs from the list as defined by stale SLO threshold in + SLO settings + in: query + name: hideStale + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_find_slo_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Get a paginated list of SLOs + tags: + - slo + post: + description: > + You must have `all` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: createSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_create_slo_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_create_slo_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '409': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_409_response' + description: Conflict - The SLO id already exists + servers: + - url: 'https://localhost:5601' + summary: Create an SLO + tags: + - slo + '/s/{spaceId}/api/observability/slos/_delete_instances': + post: + description: > + The deletion occurs for the specified list of `sloId` and `instanceId`. + You must have `all` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: deleteSloInstancesOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_delete_slo_instances_request' + required: true + responses: + '204': + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + servers: + - url: 'https://localhost:5601' + summary: Batch delete rollup and summary data + tags: + - slo + '/s/{spaceId}/api/observability/slos/{sloId}': + delete: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: deleteSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + responses: + '204': + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Delete an SLO + tags: + - slo + get: + description: > + You must have the `read` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: getSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + - description: the specific instanceId used by the summary calculation + example: host-abcde + in: query + name: instanceId + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_slo_with_summary_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Get an SLO + tags: + - slo + put: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: updateSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_update_slo_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_slo_definition_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Update an SLO + tags: + - slo + '/s/{spaceId}/api/observability/slos/{sloId}/_reset': + post: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: resetSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + responses: + '204': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_slo_definition_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Reset an SLO + tags: + - slo + '/s/{spaceId}/api/observability/slos/{sloId}/disable': + post: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: disableSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + responses: + '200': + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Disable an SLO + tags: + - slo + '/s/{spaceId}/api/observability/slos/{sloId}/enable': + post: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: enableSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + responses: + '204': + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Enable an SLO + tags: + - slo + /service_tokens: + post: + operationId: generate-service-token + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + value: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create service token + tags: + - Fleet service tokens + /service-tokens: + post: + deprecated: true + operationId: generate-service-token-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + value: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create service token + tags: + - Fleet service tokens + /settings: + get: + operationId: get-settings + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_settings_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get settings + tags: + - Fleet internals + put: + operationId: update-settings + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + additional_yaml_config: + type: string + fleet_server_hosts: + description: Protocol and path must be the same for each URL + items: + type: string + type: array + has_seen_add_data_notice: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_settings_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update settings + tags: + - Fleet internals + /settings/enrollment: + get: + operationId: get-enrollment-settings + parameters: + - description: >- + An agent policy ID to scope the enrollment settings to. For example, + that policy's Fleet Server host, its proxy, download location, etc. + If not provided, the default Fleet Server policy is used (if any). + in: query + name: agentPolicyId + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_settings_enrollment_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment settings + tags: + - Fleet internals + servers: + - description: Used for Fleet internals and not supported + url: 'http://KIBANA_HOST:5601/internal/fleet' + /setup: + post: + operationId: setup + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_setup_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + '500': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + message: + type: string + description: Internal Server Error + summary: Initiate Fleet setup + tags: + - Fleet internals + /uninstall_tokens: + get: + operationId: get-uninstall-tokens + parameters: + - description: The number of items to return + in: query + name: perPage + required: false + schema: + default: 20 + minimum: 5 + type: integer + - $ref: '#/components/parameters/Fleet_page_index' + - description: Partial match filtering for policy IDs + in: query + name: policyId + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + created_at: + type: string + id: + type: string + policy_id: + type: string + required: + - id + - policy_id + - created_at + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - total + - page + - perPage + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List metadata for latest uninstall tokens per agent policy + tags: + - Fleet uninstall tokens + '/uninstall_tokens/{uninstallTokenId}': + get: + operationId: get-uninstall-token + parameters: + - in: path + name: uninstallTokenId + required: true + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + type: object + properties: + created_at: + type: string + id: + type: string + policy_id: + type: string + token: + type: string + required: + - id + - token + - policy_id + - created_at + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get one decrypted uninstall token by its ID + tags: + - Fleet uninstall tokens +components: + examples: + Connectors_create_email_connector_request: + summary: Create an email connector. + value: config: - $ref: '#/components/schemas/Connectors_config_properties_bedrock' - connector_type_id: - type: string - description: The type of connector. - enum: - - .bedrock - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - Connectors_connector_response_properties_gemini: - title: Connector response properties for a Google Gemini connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: + from: tester@example.com + hasAuth: true + host: 'https://example.com' + port: 1025 + secure: false + service: other + connector_type_id: .email + name: email-connector-1 + secrets: + password: password + user: username + Connectors_create_email_connector_response: + summary: A new email connector. + value: + config: + clientId: null + from: tester@example.com + hasAuth: true + host: 'https://example.com' + oauthTokenUrl: null + port: 1025 + secure: false + service: other + tenantId: null + connector_type_id: .email + id: 90a82c60-478f-11ee-a343-f98a117c727f + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: email-connector-1 + Connectors_create_index_connector_request: + summary: Create an index connector. + value: + config: + index: test-index + connector_type_id: .index + name: my-connector + Connectors_create_index_connector_response: + summary: A new index connector. + value: + config: + executionTimeField: null + index: test-index + refresh: false + connector_type_id: .index + id: c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my-connector + Connectors_create_webhook_connector_request: + summary: Create a webhook connector with SSL authentication. + value: + config: + authType: webhook-authentication-ssl + certType: ssl-crt-key + method: post + url: 'https://example.com' + connector_type_id: .webhook + name: my-webhook-connector + secrets: + crt: QmFnIEF0dH... + key: LS0tLS1CRUdJ... + password: my-passphrase + Connectors_create_webhook_connector_response: + summary: A new webhook connector. + value: + config: + authType: webhook-authentication-ssl + certType: ssl-crt-key + hasAuth: true + headers: null + method: post + url: 'https://example.com' + verificationMode: full + connector_type_id: .webhook + id: 900eb010-3b9d-11ee-a642-8ffbb94e38bd + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my-webhook-connector + Connectors_create_xmatters_connector_request: + summary: Create an xMatters connector with URL authentication. + value: + config: + usesBasic: false + connector_type_id: .xmatters + name: my-xmatters-connector + secrets: + secretsUrl: 'https://example.com?apiKey=xxxxx' + Connectors_create_xmatters_connector_response: + summary: A new xMatters connector. + value: + config: + configUrl: null + usesBasic: false + connector_type_id: .xmatters + id: 4d2d8da0-4d1f-11ee-9367-577408be4681 + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my-xmatters-connector + Connectors_get_connector_response: + summary: Get connector details. + value: + config: {} + connector_type_id: .server-log + id: df770e30-8b8b-11ed-a780-3b746c987a81 + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my_server_log_connector + Connectors_get_connector_types_generativeai_response: + summary: A list of connector types for the `generativeAI` feature. + value: + - enabled: true + enabled_in_config: true + enabled_in_license: true + id: .gen-ai + is_system_action_type: false + minimum_license_required: enterprise + name: OpenAI + supported_feature_ids: + - generativeAIForSecurity + - generativeAIForObservability + - generativeAIForSearchPlayground + - enabled: true + enabled_in_config: true + enabled_in_license: true + id: .bedrock + is_system_action_type: false + minimum_license_required: enterprise + name: AWS Bedrock + supported_feature_ids: + - generativeAIForSecurity + - generativeAIForObservability + - generativeAIForSearchPlayground + - enabled: true + enabled_in_config: true + enabled_in_license: true + id: .gemini + is_system_action_type: false + minimum_license_required: enterprise + name: Google Gemini + supported_feature_ids: + - generativeAIForSecurity + Connectors_get_connectors_response: + summary: A list of connectors + value: + - connector_type_id: .email + id: preconfigured-email-connector + is_deprecated: false + is_preconfigured: true + is_system_action: false + name: my-preconfigured-email-notification + referenced_by_count: 0 + - config: + executionTimeField: null + index: test-index + refresh: false + connector_type_id: .index + id: e07d0c80-8b8b-11ed-a780-3b746c987a81 + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my-index-connector + referenced_by_count: 2 + Connectors_update_index_connector_request: + summary: Update an index connector. + value: config: - $ref: '#/components/schemas/Connectors_config_properties_gemini' - connector_type_id: - type: string - description: The type of connector. - enum: - - .gemini - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_cases_webhook: - title: Connector request properties for a Webhook - Case Management connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + index: updated-index + name: updated-connector + Data_views_create_data_view_request: + summary: Create a data view with runtime fields. + value: + data_view: + name: My Logstash data view + runtimeFieldMap: + runtime_shape_name: + script: + source: 'emit(doc[''shape_name''].value)' + type: keyword + title: logstash-* + Data_views_create_runtime_field_request: + summary: Create a runtime field. + value: + name: runtimeFoo + runtimeField: + script: + source: 'emit(doc["foo"].value)' + type: long + Data_views_get_data_view_response: + summary: >- + The get data view API returns a JSON object that contains information + about the data view. + value: + data_view: + allowNoIndex: false + fieldAttrs: + products.manufacturer: + count: 1 + products.price: + count: 1 + products.product_name: + count: 1 + total_quantity: + count: 1 + fieldFormats: + products.base_price: + id: number + params: + pattern: '$0,0.00' + products.base_unit_price: + id: number + params: + pattern: '$0,0.00' + products.min_price: + id: number + params: + pattern: '$0,0.00' + products.price: + id: number + params: + pattern: '$0,0.00' + products.taxful_price: + id: number + params: + pattern: '$0,0.00' + products.taxless_price: + id: number + params: + pattern: '$0,0.00' + taxful_total_price: + id: number + params: + pattern: '$0,0.[00]' + taxless_total_price: + id: number + params: + pattern: '$0,0.00' + fields: + _id: + aggregatable: false + count: 0 + esTypes: + - _id + format: + id: string + isMapped: true + name: _id + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + _index: + aggregatable: true + count: 0 + esTypes: + - _index + format: + id: string + isMapped: true + name: _index + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + _score: + aggregatable: false + count: 0 + format: + id: number + isMapped: true + name: _score + readFromDocValues: false + scripted: false + searchable: false + shortDotsEnable: false + type: number + _source: + aggregatable: false + count: 0 + esTypes: + - _source + format: + id: _source + isMapped: true + name: _source + readFromDocValues: false + scripted: false + searchable: false + shortDotsEnable: false + type: _source + category: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: category + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + category.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: category.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: category + type: string + currency: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: currency + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_birth_date: + aggregatable: true + count: 0 + esTypes: + - date + format: + id: date + isMapped: true + name: customer_birth_date + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: date + customer_first_name: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: customer_first_name + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_first_name.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_first_name.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: customer_first_name + type: string + customer_full_name: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: customer_full_name + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_full_name.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_full_name.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: customer_full_name + type: string + customer_gender: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_gender + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_id: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_id + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_last_name: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: customer_last_name + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_last_name.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_last_name.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: customer_last_name + type: string + customer_phone: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_phone + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + day_of_week: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: day_of_week + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + day_of_week_i: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: day_of_week_i + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + email: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: email + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + event.dataset: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: event.dataset + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + geoip.city_name: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: geoip.city_name + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + geoip.continent_name: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: geoip.continent_name + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + geoip.country_iso_code: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: geoip.country_iso_code + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + geoip.location: + aggregatable: true + count: 0 + esTypes: + - geo_point + format: + id: geo_point + params: + transform: wkt + isMapped: true + name: geoip.location + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: geo_point + geoip.region_name: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: geoip.region_name + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + manufacturer: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: manufacturer + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + manufacturer.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: manufacturer.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: manufacturer + type: string + order_date: + aggregatable: true + count: 0 + esTypes: + - date + format: + id: date + isMapped: true + name: order_date + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: date + order_id: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: order_id + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + products._id: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: products._id + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + products._id.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products._id.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: products._id + type: string + products.base_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.base_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.base_unit_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.base_unit_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.category: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: products.category + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + products.category.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products.category.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: products.category + type: string + products.created_on: + aggregatable: true + count: 0 + esTypes: + - date + format: + id: date + isMapped: true + name: products.created_on + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: date + products.discount_amount: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + isMapped: true + name: products.discount_amount + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.discount_percentage: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + isMapped: true + name: products.discount_percentage + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.manufacturer: + aggregatable: false + count: 1 + esTypes: + - text + format: + id: string + isMapped: true + name: products.manufacturer + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + products.manufacturer.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products.manufacturer.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: products.manufacturer + type: string + products.min_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.min_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.price: + aggregatable: true + count: 1 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.product_id: + aggregatable: true + count: 0 + esTypes: + - long + format: + id: number + isMapped: true + name: products.product_id + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.product_name: + aggregatable: false + count: 1 + esTypes: + - text + format: + id: string + isMapped: true + name: products.product_name + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + products.product_name.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products.product_name.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: products.product_name + type: string + products.quantity: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: products.quantity + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.sku: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products.sku + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + products.tax_amount: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + isMapped: true + name: products.tax_amount + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.taxful_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.taxful_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.taxless_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.taxless_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.unit_discount_amount: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + isMapped: true + name: products.unit_discount_amount + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + sku: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: sku + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + taxful_total_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.[00]' + isMapped: true + name: taxful_total_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + taxless_total_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: taxless_total_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + total_quantity: + aggregatable: true + count: 1 + esTypes: + - integer + format: + id: number + isMapped: true + name: total_quantity + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + total_unique_products: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: total_unique_products + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + type: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: type + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + user: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: user + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + id: ff959d40-b880-11e8-a6d9-e546fe2bba5f + name: Kibana Sample Data eCommerce + namespaces: + - default + runtimeFieldMap: {} + sourceFilters: [] + timeFieldName: order_date + title: kibana_sample_data_ecommerce + typeMeta: {} + version: WzUsMV0= + Data_views_get_data_views_response: + summary: The get all data views API returns a list of data views. + value: + data_view: + - id: ff959d40-b880-11e8-a6d9-e546fe2bba5f + name: Kibana Sample Data eCommerce + namespaces: + - default + title: kibana_sample_data_ecommerce + typeMeta: {} + - id: d3d7af60-4c81-11e8-b3d7-01146121b73d + name: Kibana Sample Data Flights + namespaces: + - default + title: kibana_sample_data_flights + - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + name: Kibana Sample Data Logs + namespaces: + - default + title: kibana_sample_data_logs + Data_views_get_default_data_view_response: + summary: The get default data view API returns the default data view identifier. + value: + data_view_id: ff959d40-b880-11e8-a6d9-e546fe2bba5f + Data_views_get_runtime_field_response: + summary: >- + The get runtime field API returns a JSON object that contains + information about the runtime field (`hour_of_day`) and the data view + (`d3d7af60-4c81-11e8-b3d7-01146121b73d`). + value: + data_view: + allowNoIndex: false + fieldAttrs: {} + fieldFormats: + AvgTicketPrice: + id: number + params: + pattern: '$0,0.[00]' + hour_of_day: + id: number + params: + pattern: '00' + fields: + _id: + aggregatable: false + count: 0 + esTypes: + - _id + format: + id: string + isMapped: true + name: _id + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + _index: + aggregatable: true + count: 0 + esTypes: + - _index + format: + id: string + isMapped: true + name: _index + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + _score: + aggregatable: false + count: 0 + format: + id: number + isMapped: true + name: _score + readFromDocValues: false + scripted: false + searchable: false + shortDotsEnable: false + type: number + _source: + aggregatable: false + count: 0 + esTypes: + - _source + format: + id: _source + isMapped: true + name: _source + readFromDocValues: false + scripted: false + searchable: false + shortDotsEnable: false + type: _source + AvgTicketPrice: + aggregatable: true + count: 0 + esTypes: + - float + format: + id: number + params: + pattern: '$0,0.[00]' + isMapped: true + name: AvgTicketPrice + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + Cancelled: + aggregatable: true + count: 0 + esTypes: + - boolean + format: + id: boolean + isMapped: true + name: Cancelled + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: boolean + Carrier: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: Carrier + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + dayOfWeek: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: dayOfWeek + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + Dest: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: Dest + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestAirportID: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestAirportID + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestCityName: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestCityName + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestCountry: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestCountry + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestLocation: + aggregatable: true + count: 0 + esTypes: + - geo_point + format: + id: geo_point + params: + transform: wkt + isMapped: true + name: DestLocation + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: geo_point + DestRegion: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestRegion + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestWeather: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestWeather + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DistanceKilometers: + aggregatable: true + count: 0 + esTypes: + - float + format: + id: number + isMapped: true + name: DistanceKilometers + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + DistanceMiles: + aggregatable: true + count: 0 + esTypes: + - float + format: + id: number + isMapped: true + name: DistanceMiles + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + FlightDelay: + aggregatable: true + count: 0 + esTypes: + - boolean + format: + id: boolean + isMapped: true + name: FlightDelay + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: boolean + FlightDelayMin: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: FlightDelayMin + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + FlightDelayType: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: FlightDelayType + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + FlightNum: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: FlightNum + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + FlightTimeHour: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: FlightTimeHour + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + FlightTimeMin: + aggregatable: true + count: 0 + esTypes: + - float + format: + id: number + isMapped: true + name: FlightTimeMin + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + hour_of_day: + aggregatable: true + count: 0 + esTypes: + - long + format: + id: number + params: + pattern: '00' + name: hour_of_day + readFromDocValues: false + runtimeField: + script: + source: 'emit(doc[''timestamp''].value.getHour());' + type: long + scripted: false + searchable: true + shortDotsEnable: false + type: number + Origin: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: Origin + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginAirportID: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginAirportID + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginCityName: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginCityName + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginCountry: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginCountry + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginLocation: + aggregatable: true + count: 0 + esTypes: + - geo_point + format: + id: geo_point + params: + transform: wkt + isMapped: true + name: OriginLocation + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: geo_point + OriginRegion: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginRegion + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginWeather: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginWeather + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + timestamp: + aggregatable: true + count: 0 + esTypes: + - date + format: + id: date + isMapped: true + name: timestamp + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: date + id: d3d7af60-4c81-11e8-b3d7-01146121b73d + name: Kibana Sample Data Flights + runtimeFieldMap: + hour_of_day: + script: + source: 'emit(doc[''timestamp''].value.getHour());' + type: long + sourceFilters: [] + timeFieldName: timestamp + title: kibana_sample_data_flights + version: WzM2LDJd + fields: + - aggregatable: true + count: 0 + esTypes: + - long + name: hour_of_day + readFromDocValues: false + runtimeField: + script: + source: 'emit(doc[''timestamp''].value.getHour());' + type: long + scripted: false + searchable: true + shortDotsEnable: false + type: number + Data_views_preview_swap_data_view_request: + summary: Preview swapping references from data view ID "abcd-efg" to "xyz-123". + value: + fromId: abcd-efg + toId: xyz-123 + Data_views_set_default_data_view_request: + summary: Set the default data view identifier. + value: + data_view_id: ff959d40-b880-11e8-a6d9-e546fe2bba5f + force: true + Data_views_swap_data_view_request: + summary: >- + Swap references from data view ID "abcd-efg" to "xyz-123" and remove the + data view that is no longer referenced. + value: + delete: true + fromId: abcd-efg + toId: xyz-123 + Data_views_update_data_view_request: + summary: Update some properties for a data view. + value: + data_view: + allowNoIndex: false + name: Kibana Sample Data eCommerce + timeFieldName: order_date + title: kibana_sample_data_ecommerce + refresh_fields: true + Data_views_update_field_metadata_request: + summary: Update metadata for multiple fields. + value: + fields: + field1: + count: 123 + customLabel: Field 1 label + field2: + customDescription: Field 2 description + customLabel: Field 2 label + Data_views_update_runtime_field_request: + summary: Update an existing runtime field on a data view. + value: + runtimeField: + script: + source: 'emit(doc["bar"].value)' + Machine_learning_APIs_mlSyncExample: + summary: Two anomaly detection jobs required synchronization in this example. + value: + datafeedsAdded: {} + datafeedsRemoved: {} + savedObjectsCreated: + anomaly-detector: + myjob1: + success: true + myjob2: + success: true + savedObjectsDeleted: {} + Serverless_saved_objects_export_objects_request: + summary: Export a specific saved object. + value: + excludeExportDetails: true + includeReferencesDeep: false + objects: + - id: de71f4f0-1902-11e9-919b-ffe5949a18d2 + type: map + Serverless_saved_objects_export_objects_response: + summary: >- + The export objects API response contains a JSON record for each exported + object. + value: + attributes: + description: '' + layerListJSON: >- + [{"id":"0hmz5","alpha":1,"sourceDescriptor":{"type":"EMS_TMS","isAutoSelect":true,"lightModeDefault":"road_map_desaturated"},"visible":true,"style":{},"type":"EMS_VECTOR_TILE","minZoom":0,"maxZoom":24},{"id":"edh66","label":"Total + Requests by + Destination","minZoom":0,"maxZoom":24,"alpha":0.5,"sourceDescriptor":{"type":"EMS_FILE","id":"world_countries","tooltipProperties":["name","iso2"]},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"DYNAMIC","options":{"field":{"name":"__kbnjoin__count__673ff994-fc75-4c67-909b-69fcb0e1060e","origin":"join"},"color":"Greys","fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"lineColor":{"type":"STATIC","options":{"color":"#FFFFFF"}},"lineWidth":{"type":"STATIC","options":{"size":1}},"iconSize":{"type":"STATIC","options":{"size":10}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR","joins":[{"leftField":"iso2","right":{"type":"ES_TERM_SOURCE","id":"673ff994-fc75-4c67-909b-69fcb0e1060e","indexPatternTitle":"kibana_sample_data_logs","term":"geo.dest","indexPatternRefName":"layer_1_join_0_index_pattern","metrics":[{"type":"count","label":"web + logs + count"}],"applyGlobalQuery":true}}]},{"id":"gaxya","label":"Actual + Requests","minZoom":9,"maxZoom":24,"alpha":1,"sourceDescriptor":{"id":"b7486535-171b-4d3b-bb2e-33c1a0a2854c","type":"ES_SEARCH","geoField":"geo.coordinates","limit":2048,"filterByMapBounds":true,"tooltipProperties":["clientip","timestamp","host","request","response","machine.os","agent","bytes"],"indexPatternRefName":"layer_2_source_index_pattern","applyGlobalQuery":true,"scalingType":"LIMIT"},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"STATIC","options":{"color":"#2200ff"}},"lineColor":{"type":"STATIC","options":{"color":"#FFFFFF"}},"lineWidth":{"type":"STATIC","options":{"size":2}},"iconSize":{"type":"DYNAMIC","options":{"field":{"name":"bytes","origin":"source"},"minSize":1,"maxSize":23,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR"},{"id":"tfi3f","label":"Total + Requests and + Bytes","minZoom":0,"maxZoom":9,"alpha":1,"sourceDescriptor":{"type":"ES_GEO_GRID","resolution":"COARSE","id":"8aaa65b5-a4e9-448b-9560-c98cb1c5ac5b","geoField":"geo.coordinates","requestType":"point","metrics":[{"type":"count","label":"web + logs + count"},{"type":"sum","field":"bytes"}],"indexPatternRefName":"layer_3_source_index_pattern","applyGlobalQuery":true},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"color":"Blues","fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"lineColor":{"type":"STATIC","options":{"color":"#cccccc"}},"lineWidth":{"type":"STATIC","options":{"size":1}},"iconSize":{"type":"DYNAMIC","options":{"field":{"name":"sum_of_bytes","origin":"source"},"minSize":7,"maxSize":25,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"labelText":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"labelSize":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"minSize":12,"maxSize":24,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR"}] + mapStateJSON: >- + {"zoom":3.64,"center":{"lon":-88.92107,"lat":42.16337},"timeFilters":{"from":"now-7d","to":"now"},"refreshConfig":{"isPaused":true,"interval":0},"query":{"language":"kuery","query":""},"settings":{"autoFitToDataBounds":false}} + title: '[Logs] Total Requests and Bytes' + uiStateJSON: '{"isDarkMode":false}' + coreMigrationVersion: 8.8.0 + created_at: '2023-08-23T20:03:32.204Z' + id: de71f4f0-1902-11e9-919b-ffe5949a18d2 + managed: false + references: + - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + name: layer_1_join_0_index_pattern + type: index-pattern + - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + name: layer_2_source_index_pattern + type: index-pattern + - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + name: layer_3_source_index_pattern + type: index-pattern + type: map + typeMigrationVersion: 8.4.0 + updated_at: '2023-08-23T20:03:32.204Z' + version: WzEzLDFd + Serverless_saved_objects_import_objects_request: + value: + file: file.ndjson + Serverless_saved_objects_import_objects_response: + summary: >- + The import objects API response indicates a successful import and the + objects are created. Since these objects are created as new copies, each + entry in the successResults array includes a destinationId attribute. + value: + success: true + successCount: 1 + successResults: + - destinationId: 82d2760c-468f-49cf-83aa-b9a35b6a8943 + id: 90943e30-9a47-11e8-b64d-95841ca0b247 + managed: false + meta: + icon: indexPatternApp + title: Kibana Sample Data Logs + type: index-pattern + parameters: + Connectors_connector_id: + description: An identifier for the connector. + in: path + name: connectorId + required: true + schema: + example: df770e30-8b8b-11ed-a780-3b746c987a81 + type: string + Connectors_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + Data_views_field_name: + description: The name of the runtime field. + in: path + name: fieldName + required: true + schema: + example: hour_of_day + type: string + Data_views_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + Data_views_view_id: + description: An identifier for the data view. + in: path + name: viewId + required: true + schema: + example: ff959d40-b880-11e8-a6d9-e546fe2bba5f + type: string + Fleet_format: + description: Simplified or legacy format for package inputs + in: query + name: format + required: false + schema: + enum: + - simplified + - legacy + type: string + Fleet_kbn_xsrf: + description: Kibana's anti Cross-Site Request Forgery token. Can be any string value. + in: header + name: kbn-xsrf + required: true + schema: + type: string + Fleet_kuery: + in: query + name: kuery + required: false + schema: + type: string + Fleet_page_index: + in: query + name: page + required: false + schema: + default: 1 + type: integer + Fleet_page_size: + description: The number of items to return + in: query + name: perPage + required: false + schema: + default: 20 + type: integer + Fleet_show_inactive: + in: query + name: showInactive + required: false + schema: + type: boolean + Fleet_show_upgradeable: + in: query + name: showUpgradeable + required: false + schema: + type: boolean + Fleet_sort_field: + in: query + name: sortField + required: false + schema: + deprecated: true + type: string + Fleet_sort_order: + in: query + name: sortOrder + required: false + schema: + enum: + - asc + - desc + type: string + Fleet_with_metrics: + description: 'Return agent metrics, false by default' + in: query + name: withMetrics + required: false + schema: + type: boolean + Machine_learning_APIs_simulateParam: + description: >- + When true, simulates the synchronization by returning only the list of + actions that would be performed. + example: 'true' + in: query + name: simulate + required: false + schema: + type: boolean + Serverless_saved_objects_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + SLOs_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + SLOs_slo_id: + description: An identifier for the slo. + in: path + name: sloId + required: true + schema: + example: 9c235211-6834-11ea-a78c-6feb38a34414 + type: string + SLOs_space_id: + description: >- + An identifier for the space. If `/s/` and the identifier are omitted + from the path, the default space is used. + in: path + name: spaceId + required: true + schema: + example: default + type: string + responses: + Connectors_401: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + properties: + error: + enum: + - Unauthorized + example: Unauthorized + type: string + message: + type: string + statusCode: + enum: + - 401 + example: 401 + type: integer + title: Unauthorized response + type: object + description: Authorization information is missing or invalid. + Connectors_404: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + properties: + error: + enum: + - Not Found + example: Not Found + type: string + message: + example: >- + Saved object [action/baf33fc0-920c-11ed-b36a-874bd1548a00] not + found + type: string + statusCode: + enum: + - 404 + example: 404 + type: integer + title: Not found response + type: object + description: Object is not found. + Fleet_error: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + error: + type: string + message: + type: string + statusCode: + type: number + description: Generic Error + schemas: + Connectors_config_properties_bedrock: + description: Defines properties for connectors when type is `.bedrock`. properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' - connector_type_id: - description: The type of connector. - type: string - enum: - - .cases-webhook - id: + apiUrl: + description: The Amazon Bedrock request URL. type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + defaultModel: + default: 'anthropic.claude-3-5-sonnet-20240620-v1:0' + description: > + The generative artificial intelligence model for Amazon Bedrock to + use. Current support is for the Anthropic Claude models. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_d3security: - title: Connector response properties for a D3 Security connector - type: object required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - apiUrl + title: Connector request properties for an Amazon Bedrock connector + type: object + Connectors_config_properties_cases_webhook: + description: Defines properties for connectors when type is `.cases-webhook`. + type: object properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_d3security' - connector_type_id: + createCommentJson: + description: > + A JSON payload sent to the create comment URL to create a case + comment. You can use variables to add Kibana Cases data to the + payload. The required variable is `case.comment`. Due to Mustache + template variables (the text enclosed in triple braces, for example, + `{{{case.title}}}`), the JSON is not validated when you create the + connector. The JSON is validated once the Mustache variables have + been placed when the REST method runs. Manually ensure that the JSON + is valid, disregarding the Mustache variables, so the later + validation will pass. + example: '{"body": {{{case.comment}}}}' type: string - description: The type of connector. + createCommentMethod: + default: put + description: > + The REST API HTTP request method to create a case comment in the + third-party system. Valid values are `patch`, `post`, and `put`. enum: - - .d3security - id: + - patch + - post + - put type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + createCommentUrl: + description: > + The REST API URL to create a case comment by ID in the third-party + system. You can use a variable to add the external system ID to the + URL. If you are using the `xpack.actions.allowedHosts setting`, add + the hostname to the allowed hosts. + example: 'https://example.com/issue/{{{external.system.id}}}/comment' type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_email: - title: Connector response properties for an email connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_email' - connector_type_id: + createIncidentJson: + description: > + A JSON payload sent to the create case URL to create a case. You can + use variables to add case data to the payload. Required variables + are `case.title` and `case.description`. Due to Mustache template + variables (which is the text enclosed in triple braces, for example, + `{{{case.title}}}`), the JSON is not validated when you create the + connector. The JSON is validated after the Mustache variables have + been placed when REST method runs. Manually ensure that the JSON is + valid to avoid future validation errors; disregard Mustache + variables during your review. + example: >- + {"fields": {"summary": {{{case.title}}},"description": + {{{case.description}}},"labels": {{{case.tags}}}}} type: string - description: The type of connector. + createIncidentMethod: + default: post + description: > + The REST API HTTP request method to create a case in the third-party + system. Valid values are `patch`, `post`, and `put`. enum: - - .email - id: + - patch + - post + - put type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + createIncidentResponseKey: + description: >- + The JSON key in the create external case response that contains the + case ID. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_genai: - title: Connector response properties for an OpenAI connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_genai' - connector_type_id: + createIncidentUrl: + description: > + The REST API URL to create a case in the third-party system. If you + are using the `xpack.actions.allowedHosts` setting, add the hostname + to the allowed hosts. type: string - description: The type of connector. - enum: - - .gen-ai - id: + getIncidentResponseExternalTitleKey: + description: >- + The JSON key in get external case response that contains the case + title. type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + getIncidentUrl: + description: > + The REST API URL to get the case by ID from the third-party system. + If you are using the `xpack.actions.allowedHosts` setting, add the + hostname to the allowed hosts. You can use a variable to add the + external system ID to the URL. Due to Mustache template variables + (the text enclosed in triple braces, for example, + `{{{case.title}}}`), the JSON is not validated when you create the + connector. The JSON is validated after the Mustache variables have + been placed when REST method runs. Manually ensure that the JSON is + valid, disregarding the Mustache variables, so the later validation + will pass. + example: 'https://example.com/issue/{{{external.system.id}}}' type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_index: - title: Connector response properties for an index connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_index' - connector_type_id: + hasAuth: + default: true + description: >- + If true, a username and password for login type authentication must + be provided. + type: boolean + headers: + description: > + A set of key-value pairs sent as headers with the request URLs for + the create case, update case, get case, and create comment methods. type: string - description: The type of connector. + updateIncidentJson: + description: > + The JSON payload sent to the update case URL to update the case. You + can use variables to add Kibana Cases data to the payload. Required + variables are `case.title` and `case.description`. Due to Mustache + template variables (which is the text enclosed in triple braces, for + example, `{{{case.title}}}`), the JSON is not validated when you + create the connector. The JSON is validated after the Mustache + variables have been placed when REST method runs. Manually ensure + that the JSON is valid to avoid future validation errors; disregard + Mustache variables during your review. + example: >- + {"fields": {"summary": {{{case.title}}},"description": + {{{case.description}}},"labels": {{{case.tags}}}}} + type: string + updateIncidentMethod: + default: put + description: > + The REST API HTTP request method to update the case in the + third-party system. Valid values are `patch`, `post`, and `put`. enum: - - .index - id: + - patch + - post + - put + type: string + updateIncidentUrl: + description: > + The REST API URL to update the case by ID in the third-party system. + You can use a variable to add the external system ID to the URL. If + you are using the `xpack.actions.allowedHosts` setting, add the + hostname to the allowed hosts. + example: 'https://example.com/issue/{{{external.system.ID}}}' + type: string + viewIncidentUrl: + description: > + The URL to view the case in the external system. You can use + variables to add the external system ID or external system title to + the URL. + example: >- + https://testing-jira.atlassian.net/browse/{{{external.system.title}}} type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + required: + - createIncidentJson + - createIncidentResponseKey + - createIncidentUrl + - getIncidentResponseExternalTitleKey + - getIncidentUrl + - updateIncidentJson + - updateIncidentUrl + - viewIncidentUrl + title: Connector request properties for Webhook - Case Management connector + Connectors_config_properties_d3security: + description: Defines properties for connectors when type is `.d3security`. + properties: + url: + description: > + The D3 Security API request URL. If you are using the + `xpack.actions.allowedHosts` setting, add the hostname to the + allowed hosts. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_jira: - title: Connector response properties for a Jira connector - type: object required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - url + title: Connector request properties for a D3 Security connector + type: object + Connectors_config_properties_email: + description: Defines properties for connectors when type is `.email`. + type: object properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_jira' - connector_type_id: + clientId: + description: > + The client identifier, which is a part of OAuth 2.0 client + credentials authentication, in GUID format. If `service` is + `exchange_server`, this property is required. + nullable: true type: string - description: The type of connector. - enum: - - .jira - id: + from: + description: > + The from address for all emails sent by the connector. It must be + specified in `user@host-name` format. type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + hasAuth: + default: true + description: > + Specifies whether a user and password are required inside the + secrets configuration. + type: boolean + host: + description: > + The host name of the service provider. If the `service` is + `elastic_cloud` (for Elastic Cloud notifications) or one of + Nodemailer's well-known email service providers, this property is + ignored. If `service` is `other`, this property must be defined. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_opsgenie: - title: Connector response properties for an Opsgenie connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_opsgenie' - connector_type_id: + oauthTokenUrl: + nullable: true type: string - description: The type of connector. + port: + description: > + The port to connect to on the service provider. If the `service` is + `elastic_cloud` (for Elastic Cloud notifications) or one of + Nodemailer's well-known email service providers, this property is + ignored. If `service` is `other`, this property must be defined. + type: integer + secure: + description: > + Specifies whether the connection to the service provider will use + TLS. If the `service` is `elastic_cloud` (for Elastic Cloud + notifications) or one of Nodemailer's well-known email service + providers, this property is ignored. + type: boolean + service: + description: | + The name of the email service. enum: - - .opsgenie - id: + - elastic_cloud + - exchange_server + - gmail + - other + - outlook365 + - ses type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + tenantId: + description: > + The tenant identifier, which is part of OAuth 2.0 client credentials + authentication, in GUID format. If `service` is `exchange_server`, + this property is required. + nullable: true type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_pagerduty: - title: Connector response properties for a PagerDuty connector - type: object required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - from + title: Connector request properties for an email connector + Connectors_config_properties_gemini: + description: Defines properties for connectors when type is `.gemini`. properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_pagerduty' - connector_type_id: + apiUrl: + description: The Google Gemini request URL. type: string - description: The type of connector. - enum: - - .pagerduty - id: + defaultModel: + default: gemini-1.5-pro-001 + description: >- + The generative artificial intelligence model for Google Gemini to + use. type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + gcpProjectID: + description: The Google ProjectID that has Vertex AI endpoint enabled. + type: string + gcpRegion: + description: The GCP region where the Vertex AI endpoint enabled. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_resilient: - title: Connector response properties for a IBM Resilient connector - type: object required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - apiUrl + - gcpRegion + - gcpProjectID + title: Connector request properties for an Google Gemini connector + type: object + Connectors_config_properties_genai: + description: Defines properties for connectors when type is `.gen-ai`. + discriminator: + mapping: + Azure OpenAI: '#/components/schemas/Connectors_config_properties_genai_azure' + OpenAI: '#/components/schemas/Connectors_config_properties_genai_openai' + propertyName: apiProvider + oneOf: + - $ref: '#/components/schemas/Connectors_config_properties_genai_azure' + - $ref: '#/components/schemas/Connectors_config_properties_genai_openai' + title: Connector request properties for an OpenAI connector + Connectors_config_properties_genai_azure: + description: > + Defines properties for connectors when type is `.gen-ai` and the API + provider is `Azure OpenAI'. properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_resilient' - connector_type_id: - type: string - description: The type of connector. + apiProvider: + description: The OpenAI API provider. enum: - - .resilient - id: + - Azure OpenAI type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + apiUrl: + description: The OpenAI API endpoint. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_sentinelone: - title: Connector response properties for a SentinelOne connector + required: + - apiProvider + - apiUrl + title: >- + Connector request properties for an OpenAI connector that uses Azure + OpenAI type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + Connectors_config_properties_genai_openai: + description: > + Defines properties for connectors when type is `.gen-ai` and the API + provider is `OpenAI'. properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_sentinelone' - connector_type_id: - type: string - description: The type of connector. + apiProvider: + description: The OpenAI API provider. enum: - - .sentinelone - id: + - OpenAI type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + apiUrl: + description: The OpenAI API endpoint. + type: string + defaultModel: + description: The default model to use for requests. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_serverlog: - title: Connector response properties for a server log connector - type: object required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - apiProvider + - apiUrl + title: Connector request properties for an OpenAI connector + type: object + Connectors_config_properties_index: + description: Defines properties for connectors when type is `.index`. + type: object properties: - config: - type: object + executionTimeField: + default: null + description: A field that indicates when the document was indexed. nullable: true - connector_type_id: type: string - description: The type of connector. - enum: - - .server-log - id: + index: + description: The Elasticsearch index to be written to. type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + refresh: + default: false + description: > + The refresh policy for the write request, which affects when changes + are made visible to search. Refer to the refresh setting for + Elasticsearch document APIs. + type: boolean + required: + - index + title: Connector request properties for an index connector + Connectors_config_properties_jira: + description: Defines properties for connectors when type is `.jira`. + type: object + properties: + apiUrl: + description: The Jira instance URL. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_servicenow: - title: Connector response properties for a ServiceNow ITSM connector + projectKey: + description: The Jira project key. + type: string + required: + - apiUrl + - projectKey + title: Connector request properties for a Jira connector + Connectors_config_properties_opsgenie: + description: Defines properties for connectors when type is `.opsgenie`. type: object + properties: + apiUrl: + description: > + The Opsgenie URL. For example, `https://api.opsgenie.com` or + `https://api.eu.opsgenie.com`. If you are using the + `xpack.actions.allowedHosts` setting, add the hostname to the + allowed hosts. + type: string required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - apiUrl + title: Connector request properties for an Opsgenie connector + Connectors_config_properties_pagerduty: + description: Defines properties for connectors when type is `.pagerduty`. properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - connector_type_id: + apiUrl: + description: The PagerDuty event URL. + example: 'https://events.pagerduty.com/v2/enqueue' + nullable: true type: string - description: The type of connector. - enum: - - .servicenow - id: + title: Connector request properties for a PagerDuty connector + type: object + Connectors_config_properties_resilient: + description: Defines properties for connectors when type is `.resilient`. + type: object + properties: + apiUrl: + description: The IBM Resilient instance URL. type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + orgId: + description: The IBM Resilient organization ID. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_servicenow_itom: - title: Connector response properties for a ServiceNow ITOM connector + required: + - apiUrl + - orgId + title: Connector request properties for a IBM Resilient connector + Connectors_config_properties_sentinelone: + description: Defines properties for connectors when type is `.sentinelone`. type: object + properties: + url: + description: > + The SentinelOne tenant URL. If you are using the + `xpack.actions.allowedHosts` setting, add the hostname to the + allowed hosts. + type: string required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - url + title: Connector request properties for a SentinelOne connector + Connectors_config_properties_servicenow: + description: Defines properties for connectors when type is `.servicenow`. + type: object properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' - connector_type_id: + apiUrl: + description: The ServiceNow instance URL. type: string - description: The type of connector. - enum: - - .servicenow-itom - id: + clientId: + description: > + The client ID assigned to your OAuth application. This property is + required when `isOAuth` is `true`. type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + isOAuth: + default: false + description: > + The type of authentication to use. The default value is false, which + means basic authentication is used instead of open authorization + (OAuth). + type: boolean + jwtKeyId: + description: > + The key identifier assigned to the JWT verifier map of your OAuth + application. This property is required when `isOAuth` is `true`. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_servicenow_sir: - title: Connector response properties for a ServiceNow SecOps connector - type: object + userIdentifierValue: + description: > + The identifier to use for OAuth authentication. This identifier + should be the user field you selected when you created an OAuth JWT + API endpoint for external clients in your ServiceNow instance. For + example, if the selected user field is `Email`, the user identifier + should be the user's email address. This property is required when + `isOAuth` is `true`. + type: string + usesTableApi: + default: true + description: > + Determines whether the connector uses the Table API or the Import + Set API. This property is supported only for ServiceNow ITSM and + ServiceNow SecOps connectors. NOTE: If this property is set to + `false`, the Elastic application should be installed in ServiceNow. + type: boolean required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - apiUrl + title: Connector request properties for a ServiceNow ITSM connector + Connectors_config_properties_servicenow_itom: + description: Defines properties for connectors when type is `.servicenow`. + type: object properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - connector_type_id: + apiUrl: + description: The ServiceNow instance URL. + type: string + clientId: + description: > + The client ID assigned to your OAuth application. This property is + required when `isOAuth` is `true`. type: string - description: The type of connector. - enum: - - .servicenow-sir - id: + isOAuth: + default: false + description: > + The type of authentication to use. The default value is false, which + means basic authentication is used instead of open authorization + (OAuth). + type: boolean + jwtKeyId: + description: > + The key identifier assigned to the JWT verifier map of your OAuth + application. This property is required when `isOAuth` is `true`. type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + userIdentifierValue: + description: > + The identifier to use for OAuth authentication. This identifier + should be the user field you selected when you created an OAuth JWT + API endpoint for external clients in your ServiceNow instance. For + example, if the selected user field is `Email`, the user identifier + should be the user's email address. This property is required when + `isOAuth` is `true`. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_slack_api: - title: Connector response properties for a Slack connector - type: object required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - apiUrl + title: Connector request properties for a ServiceNow ITSM connector + Connectors_config_properties_slack_api: + description: Defines properties for connectors when type is `.slack_api`. properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_slack_api' - connector_type_id: + allowedChannels: + description: A list of valid Slack channels. + items: + maxItems: 25 + type: object + properties: + id: + description: The Slack channel ID. + example: C123ABC456 + minLength: 1 + type: string + name: + description: The Slack channel name. + minLength: 1 + type: string + required: + - id + - name + type: array + title: Connector request properties for a Slack connector + type: object + Connectors_config_properties_swimlane: + description: Defines properties for connectors when type is `.swimlane`. + type: object + properties: + apiUrl: + description: The Swimlane instance URL. type: string - description: The type of connector. + appId: + description: The Swimlane application ID. + type: string + connectorType: + description: >- + The type of connector. Valid values are `all`, `alerts`, and + `cases`. enum: - - .slack_api - id: + - all + - alerts + - cases type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + mappings: + description: The field mapping. + properties: + alertIdConfig: + description: Mapping for the alert ID. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Alert identifier mapping + type: object + caseIdConfig: + description: Mapping for the case ID. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Case identifier mapping + type: object + caseNameConfig: + description: Mapping for the case name. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Case name mapping + type: object + commentsConfig: + description: Mapping for the case comments. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Case comment mapping + type: object + descriptionConfig: + description: Mapping for the case description. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Case description mapping + type: object + ruleNameConfig: + description: Mapping for the name of the alert's rule. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Rule name mapping + type: object + severityConfig: + description: Mapping for the severity. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Severity mapping + type: object + title: Connector mappings properties for a Swimlane connector + type: object + required: + - apiUrl + - appId + - connectorType + title: Connector request properties for a Swimlane connector + Connectors_config_properties_tines: + description: Defines properties for connectors when type is `.tines`. + properties: + url: + description: > + The Tines tenant URL. If you are using the + `xpack.actions.allowedHosts` setting, make sure this hostname is + added to the allowed hosts. type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_slack_webhook: - title: Connector response properties for a Slack connector + required: + - url + title: Connector request properties for a Tines connector type: object + Connectors_config_properties_torq: + description: Defines properties for connectors when type is `.torq`. + properties: + webhookIntegrationUrl: + description: The endpoint URL of the Elastic Security integration in Torq. + type: string required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name + - webhookIntegrationUrl + title: Connector request properties for a Torq connector + type: object + Connectors_config_properties_webhook: + description: Defines properties for connectors when type is `.webhook`. properties: - connector_type_id: + authType: + description: | + The type of authentication to use: basic, SSL, or none. + enum: + - webhook-authentication-basic + - webhook-authentication-ssl + nullable: true type: string - description: The type of connector. + ca: + description: > + A base64 encoded version of the certificate authority file that the + connector can trust to sign and validate certificates. This option + is available for all authentication types. + type: string + certType: + description: > + If the `authType` is `webhook-authentication-ssl`, specifies whether + the certificate authentication data is in a CRT and key file format + or a PFX file format. enum: - - .slack - id: + - ssl-crt-key + - ssl-pfx type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + hasAuth: + description: > + If `true`, a user name and password must be provided for login type + authentication. + type: boolean + headers: + description: A set of key-value pairs sent as headers with the request. + nullable: true + type: object + method: + default: post + description: | + The HTTP request method, either `post` or `put`. + enum: + - post + - put type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_swimlane: - title: Connector response properties for a Swimlane connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_swimlane' - connector_type_id: + url: + description: > + The request URL. If you are using the `xpack.actions.allowedHosts` + setting, add the hostname to the allowed hosts. type: string - description: The type of connector. + verificationMode: + default: full + description: > + Controls the verification of certificates. Use `full` to validate + that the certificate has an issue date within the `not_before` and + `not_after` dates, chains to a trusted certificate authority (CA), + and has a hostname or IP address that matches the names within the + certificate. Use `certificate` to validate the certificate and + verify that it is signed by a trusted authority; this option does + not check the certificate hostname. Use `none` to skip certificate + validation. enum: - - .swimlane - id: + - certificate + - full + - none type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: + title: Connector request properties for a Webhook connector + type: object + Connectors_config_properties_xmatters: + description: Defines properties for connectors when type is `.xmatters`. + properties: + configUrl: + description: > + The request URL for the Elastic Alerts trigger in xMatters. It is + applicable only when `usesBasic` is `true`. + nullable: true type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_teams: - title: Connector response properties for a Microsoft Teams connector + usesBasic: + default: true + description: >- + Specifies whether the connector uses HTTP basic authentication + (`true`) or URL authentication (`false`). + type: boolean + title: Connector request properties for an xMatters connector + type: object + Connectors_connector_response_properties: + description: The properties vary depending on the connector type. + discriminator: + mapping: + .bedrock: >- + #/components/schemas/Connectors_connector_response_properties_bedrock + .cases-webhook: >- + #/components/schemas/Connectors_connector_response_properties_cases_webhook + .d3security: >- + #/components/schemas/Connectors_connector_response_properties_d3security + .email: '#/components/schemas/Connectors_connector_response_properties_email' + .gemini: '#/components/schemas/Connectors_connector_response_properties_gemini' + .gen-ai: '#/components/schemas/Connectors_connector_response_properties_genai' + .index: '#/components/schemas/Connectors_connector_response_properties_index' + .jira: '#/components/schemas/Connectors_connector_response_properties_jira' + .opsgenie: >- + #/components/schemas/Connectors_connector_response_properties_opsgenie + .pagerduty: >- + #/components/schemas/Connectors_connector_response_properties_pagerduty + .resilient: >- + #/components/schemas/Connectors_connector_response_properties_resilient + .sentinelone: >- + #/components/schemas/Connectors_connector_response_properties_sentinelone + .server-log: >- + #/components/schemas/Connectors_connector_response_properties_serverlog + .servicenow: >- + #/components/schemas/Connectors_connector_response_properties_servicenow + .servicenow-itom: >- + #/components/schemas/Connectors_connector_response_properties_servicenow_itom + .servicenow-sir: >- + #/components/schemas/Connectors_connector_response_properties_servicenow_sir + .slack: >- + #/components/schemas/Connectors_connector_response_properties_slack_webhook + .slack_api: >- + #/components/schemas/Connectors_connector_response_properties_slack_api + .swimlane: >- + #/components/schemas/Connectors_connector_response_properties_swimlane + .teams: '#/components/schemas/Connectors_connector_response_properties_teams' + .tines: '#/components/schemas/Connectors_connector_response_properties_tines' + .torq: '#/components/schemas/Connectors_connector_response_properties_torq' + .webhook: >- + #/components/schemas/Connectors_connector_response_properties_webhook + .xmatters: >- + #/components/schemas/Connectors_connector_response_properties_xmatters + propertyName: connector_type_id + oneOf: + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_bedrock + - $ref: '#/components/schemas/Connectors_connector_response_properties_gemini' + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_cases_webhook + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_d3security + - $ref: '#/components/schemas/Connectors_connector_response_properties_email' + - $ref: '#/components/schemas/Connectors_connector_response_properties_genai' + - $ref: '#/components/schemas/Connectors_connector_response_properties_index' + - $ref: '#/components/schemas/Connectors_connector_response_properties_jira' + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_opsgenie + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_pagerduty + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_resilient + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_sentinelone + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_serverlog + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_servicenow + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_servicenow_itom + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_servicenow_sir + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_slack_api + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_slack_webhook + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_swimlane + - $ref: '#/components/schemas/Connectors_connector_response_properties_teams' + - $ref: '#/components/schemas/Connectors_connector_response_properties_tines' + - $ref: '#/components/schemas/Connectors_connector_response_properties_torq' + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_webhook + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_xmatters + title: Connector response properties + Connectors_connector_response_properties_bedrock: + title: Connector response properties for an Amazon Bedrock connector type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name properties: config: - type: object + $ref: '#/components/schemas/Connectors_config_properties_bedrock' connector_type_id: - type: string description: The type of connector. enum: - - .teams - id: + - .bedrock type: string + id: description: The identifier for the connector. + type: string is_deprecated: $ref: '#/components/schemas/Connectors_is_deprecated' is_missing_secrets: @@ -4277,30 +12634,29 @@ components: is_system_action: $ref: '#/components/schemas/Connectors_is_system_action' name: - type: string description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_tines: - title: Connector response properties for a Tines connector - type: object + type: string required: + - config - connector_type_id - id - is_deprecated - is_preconfigured - name + Connectors_connector_response_properties_cases_webhook: + title: Connector request properties for a Webhook - Case Management connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_tines' + $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' connector_type_id: - type: string description: The type of connector. enum: - - .tines - id: + - .cases-webhook type: string + id: description: The identifier for the connector. + type: string is_deprecated: $ref: '#/components/schemas/Connectors_is_deprecated' is_missing_secrets: @@ -4310,30 +12666,30 @@ components: is_system_action: $ref: '#/components/schemas/Connectors_is_system_action' name: - type: string description: The display name for the connector. + type: string referenced_by_count: $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_torq: - title: Connector response properties for a Torq connector - type: object required: - connector_type_id - id - is_deprecated - is_preconfigured - name + Connectors_connector_response_properties_d3security: + title: Connector response properties for a D3 Security connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_torq' + $ref: '#/components/schemas/Connectors_config_properties_d3security' connector_type_id: - type: string description: The type of connector. enum: - - .torq - id: + - .d3security type: string + id: description: The identifier for the connector. + type: string is_deprecated: $ref: '#/components/schemas/Connectors_is_deprecated' is_missing_secrets: @@ -4343,30 +12699,30 @@ components: is_system_action: $ref: '#/components/schemas/Connectors_is_system_action' name: - type: string description: The display name for the connector. + type: string referenced_by_count: $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_webhook: - title: Connector response properties for a Webhook connector - type: object required: - connector_type_id - id - is_deprecated - is_preconfigured - name + Connectors_connector_response_properties_email: + title: Connector response properties for an email connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_webhook' + $ref: '#/components/schemas/Connectors_config_properties_email' connector_type_id: - type: string description: The type of connector. enum: - - .webhook - id: + - .email type: string + id: description: The identifier for the connector. + type: string is_deprecated: $ref: '#/components/schemas/Connectors_is_deprecated' is_missing_secrets: @@ -4376,30 +12732,30 @@ components: is_system_action: $ref: '#/components/schemas/Connectors_is_system_action' name: - type: string description: The display name for the connector. + type: string referenced_by_count: $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_xmatters: - title: Connector response properties for an xMatters connector - type: object required: - connector_type_id - id - is_deprecated - is_preconfigured - name + Connectors_connector_response_properties_gemini: + title: Connector response properties for a Google Gemini connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_xmatters' + $ref: '#/components/schemas/Connectors_config_properties_gemini' connector_type_id: - type: string description: The type of connector. enum: - - .xmatters - id: + - .gemini type: string + id: description: The identifier for the connector. + type: string is_deprecated: $ref: '#/components/schemas/Connectors_is_deprecated' is_missing_secrets: @@ -4409,4270 +12765,6276 @@ components: is_system_action: $ref: '#/components/schemas/Connectors_is_system_action' name: - type: string description: The display name for the connector. + type: string referenced_by_count: $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_is_deprecated: - type: boolean - description: Indicates whether the connector type is deprecated. - example: false - Connectors_is_missing_secrets: - type: boolean - description: >- - Indicates whether secrets are missing for the connector. Secrets - configuration properties vary depending on the connector type. - example: false - Connectors_is_preconfigured: - type: boolean - description: > - Indicates whether it is a preconfigured connector. If true, the `config` - and `is_missing_secrets` properties are omitted from the response. - example: false - Connectors_is_system_action: - type: boolean - description: Indicates whether the connector is used for system actions. - example: false - Connectors_referenced_by_count: - type: integer - description: > - Indicates the number of saved objects that reference the connector. If - `is_preconfigured` is true, this value is not calculated. This property - is returned only by the get all connectors API. - example: 2 - Connectors_connector_response_properties: - title: Connector response properties - description: The properties vary depending on the connector type. - oneOf: - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_bedrock - - $ref: '#/components/schemas/Connectors_connector_response_properties_gemini' - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_cases_webhook - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_d3security - - $ref: '#/components/schemas/Connectors_connector_response_properties_email' - - $ref: '#/components/schemas/Connectors_connector_response_properties_genai' - - $ref: '#/components/schemas/Connectors_connector_response_properties_index' - - $ref: '#/components/schemas/Connectors_connector_response_properties_jira' - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_opsgenie - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_pagerduty - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_resilient - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_sentinelone - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_serverlog - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_servicenow - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_servicenow_itom - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_servicenow_sir - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_slack_api - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_slack_webhook - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_swimlane - - $ref: '#/components/schemas/Connectors_connector_response_properties_teams' - - $ref: '#/components/schemas/Connectors_connector_response_properties_tines' - - $ref: '#/components/schemas/Connectors_connector_response_properties_torq' - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_webhook - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_xmatters - discriminator: - propertyName: connector_type_id - mapping: - .bedrock: >- - #/components/schemas/Connectors_connector_response_properties_bedrock - .gemini: '#/components/schemas/Connectors_connector_response_properties_gemini' - .cases-webhook: >- - #/components/schemas/Connectors_connector_response_properties_cases_webhook - .d3security: >- - #/components/schemas/Connectors_connector_response_properties_d3security - .email: '#/components/schemas/Connectors_connector_response_properties_email' - .gen-ai: '#/components/schemas/Connectors_connector_response_properties_genai' - .index: '#/components/schemas/Connectors_connector_response_properties_index' - .jira: '#/components/schemas/Connectors_connector_response_properties_jira' - .opsgenie: >- - #/components/schemas/Connectors_connector_response_properties_opsgenie - .pagerduty: >- - #/components/schemas/Connectors_connector_response_properties_pagerduty - .resilient: >- - #/components/schemas/Connectors_connector_response_properties_resilient - .sentinelone: >- - #/components/schemas/Connectors_connector_response_properties_sentinelone - .server-log: >- - #/components/schemas/Connectors_connector_response_properties_serverlog - .servicenow: >- - #/components/schemas/Connectors_connector_response_properties_servicenow - .servicenow-itom: >- - #/components/schemas/Connectors_connector_response_properties_servicenow_itom - .servicenow-sir: >- - #/components/schemas/Connectors_connector_response_properties_servicenow_sir - .slack_api: >- - #/components/schemas/Connectors_connector_response_properties_slack_api - .slack: >- - #/components/schemas/Connectors_connector_response_properties_slack_webhook - .swimlane: >- - #/components/schemas/Connectors_connector_response_properties_swimlane - .teams: '#/components/schemas/Connectors_connector_response_properties_teams' - .tines: '#/components/schemas/Connectors_connector_response_properties_tines' - .torq: '#/components/schemas/Connectors_connector_response_properties_torq' - .webhook: >- - #/components/schemas/Connectors_connector_response_properties_webhook - .xmatters: >- - #/components/schemas/Connectors_connector_response_properties_xmatters - Connectors_update_connector_request_bedrock: - title: Update Amazon Bedrock connector request - type: object - required: - - config - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_bedrock' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_bedrock' - Connectors_update_connector_request_gemini: - title: Update Google Gemini connector request - type: object - required: - - config - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_gemini' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_gemini' - Connectors_update_connector_request_cases_webhook: - title: Update Webhook - Case Managment connector request - type: object required: - - config - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_cases_webhook' - Connectors_update_connector_request_d3security: - title: Update D3 Security connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_d3security' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_d3security' - Connectors_update_connector_request_email: - title: Update email connector request - type: object - required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name + Connectors_connector_response_properties_genai: + title: Connector response properties for an OpenAI connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_email' - name: + $ref: '#/components/schemas/Connectors_config_properties_genai' + connector_type_id: + description: The type of connector. + enum: + - .gen-ai + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_email' - Connectors_update_connector_request_index: - title: Update index connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name + Connectors_connector_response_properties_index: + title: Connector response properties for an index connector + type: object properties: config: $ref: '#/components/schemas/Connectors_config_properties_index' - name: + connector_type_id: + description: The type of connector. + enum: + - .index + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - Connectors_update_connector_request_jira: - title: Update Jira connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_jira: + title: Connector response properties for a Jira connector + type: object properties: config: $ref: '#/components/schemas/Connectors_config_properties_jira' - name: + connector_type_id: + description: The type of connector. + enum: + - .jira + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_jira' - Connectors_update_connector_request_opsgenie: - title: Update Opsgenie connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_opsgenie: + title: Connector response properties for an Opsgenie connector + type: object properties: config: $ref: '#/components/schemas/Connectors_config_properties_opsgenie' - name: + connector_type_id: + description: The type of connector. + enum: + - .opsgenie type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_opsgenie' - Connectors_update_connector_request_pagerduty: - title: Update PagerDuty connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_pagerduty: + title: Connector response properties for a PagerDuty connector + type: object properties: config: $ref: '#/components/schemas/Connectors_config_properties_pagerduty' - name: + connector_type_id: + description: The type of connector. + enum: + - .pagerduty + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_pagerduty' - Connectors_update_connector_request_resilient: - title: Update IBM Resilient connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_resilient: + title: Connector response properties for a IBM Resilient connector + type: object properties: config: $ref: '#/components/schemas/Connectors_config_properties_resilient' - name: + connector_type_id: + description: The type of connector. + enum: + - .resilient type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_resilient' - Connectors_update_connector_request_sentinelone: - title: Update SentinelOne connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_sentinelone: + title: Connector response properties for a SentinelOne connector + type: object properties: config: $ref: '#/components/schemas/Connectors_config_properties_sentinelone' - name: + connector_type_id: + description: The type of connector. + enum: + - .sentinelone + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_sentinelone' - Connectors_update_connector_request_serverlog: - title: Update server log connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name + Connectors_connector_response_properties_serverlog: + title: Connector response properties for a server log connector + type: object properties: + config: + nullable: true + type: object + connector_type_id: + description: The type of connector. + enum: + - .server-log + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' name: - type: string description: The display name for the connector. - Connectors_update_connector_request_servicenow: - title: Update ServiceNow ITSM connector or ServiceNow SecOps request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_servicenow: + title: Connector response properties for a ServiceNow ITSM connector + type: object properties: config: $ref: '#/components/schemas/Connectors_config_properties_servicenow' - name: + connector_type_id: + description: The type of connector. + enum: + - .servicenow + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_update_connector_request_servicenow_itom: - title: Create ServiceNow ITOM connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_servicenow_itom: + title: Connector response properties for a ServiceNow ITOM connector + type: object properties: config: $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' - name: + connector_type_id: + description: The type of connector. + enum: + - .servicenow-itom + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_update_connector_request_slack_api: - title: Update Slack connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_servicenow_sir: + title: Connector response properties for a ServiceNow SecOps connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_slack_api' - name: + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + connector_type_id: + description: The type of connector. + enum: + - .servicenow-sir type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_slack_api' - Connectors_update_connector_request_slack_webhook: - title: Update Slack connector request - type: object - required: - - name - - secrets - properties: - name: + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_slack_webhook' - Connectors_update_connector_request_swimlane: - title: Update Swimlane connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_slack_api: + title: Connector response properties for a Slack connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_swimlane' - name: + $ref: '#/components/schemas/Connectors_config_properties_slack_api' + connector_type_id: + description: The type of connector. + enum: + - .slack_api type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_swimlane' - Connectors_update_connector_request_teams: - title: Update Microsoft Teams connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_slack_webhook: + title: Connector response properties for a Slack connector + type: object properties: - name: + connector_type_id: + description: The type of connector. + enum: + - .slack + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_teams' - Connectors_update_connector_request_tines: - title: Update Tines connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_swimlane: + title: Connector response properties for a Swimlane connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_tines' - name: + $ref: '#/components/schemas/Connectors_config_properties_swimlane' + connector_type_id: + description: The type of connector. + enum: + - .swimlane + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_tines' - Connectors_update_connector_request_torq: - title: Update Torq connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_teams: + title: Connector response properties for a Microsoft Teams connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_torq' + type: object + connector_type_id: + description: The type of connector. + enum: + - .teams + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' name: - type: string description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_torq' - Connectors_update_connector_request_webhook: - title: Update Webhook connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_tines: + title: Connector response properties for a Tines connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_webhook' - name: + $ref: '#/components/schemas/Connectors_config_properties_tines' + connector_type_id: + description: The type of connector. + enum: + - .tines + type: string + id: + description: The identifier for the connector. type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_webhook' - Connectors_update_connector_request_xmatters: - title: Update xMatters connector request - type: object + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured - name - - secrets + Connectors_connector_response_properties_torq: + title: Connector response properties for a Torq connector + type: object properties: config: - $ref: '#/components/schemas/Connectors_config_properties_xmatters' - name: + $ref: '#/components/schemas/Connectors_config_properties_torq' + connector_type_id: + description: The type of connector. + enum: + - .torq type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_xmatters' - Connectors_update_connector_request: - title: Update connector request body properties - description: The properties vary depending on the connector type. - oneOf: - - $ref: '#/components/schemas/Connectors_update_connector_request_bedrock' - - $ref: '#/components/schemas/Connectors_update_connector_request_gemini' - - $ref: >- - #/components/schemas/Connectors_update_connector_request_cases_webhook - - $ref: '#/components/schemas/Connectors_update_connector_request_d3security' - - $ref: '#/components/schemas/Connectors_update_connector_request_email' - - $ref: '#/components/schemas/Connectors_create_connector_request_genai' - - $ref: '#/components/schemas/Connectors_update_connector_request_index' - - $ref: '#/components/schemas/Connectors_update_connector_request_jira' - - $ref: '#/components/schemas/Connectors_update_connector_request_opsgenie' - - $ref: '#/components/schemas/Connectors_update_connector_request_pagerduty' - - $ref: '#/components/schemas/Connectors_update_connector_request_resilient' - - $ref: '#/components/schemas/Connectors_update_connector_request_sentinelone' - - $ref: '#/components/schemas/Connectors_update_connector_request_serverlog' - - $ref: '#/components/schemas/Connectors_update_connector_request_servicenow' - - $ref: >- - #/components/schemas/Connectors_update_connector_request_servicenow_itom - - $ref: '#/components/schemas/Connectors_update_connector_request_slack_api' - - $ref: >- - #/components/schemas/Connectors_update_connector_request_slack_webhook - - $ref: '#/components/schemas/Connectors_update_connector_request_swimlane' - - $ref: '#/components/schemas/Connectors_update_connector_request_teams' - - $ref: '#/components/schemas/Connectors_update_connector_request_tines' - - $ref: '#/components/schemas/Connectors_update_connector_request_torq' - - $ref: '#/components/schemas/Connectors_update_connector_request_webhook' - - $ref: '#/components/schemas/Connectors_update_connector_request_xmatters' - Connectors_features: - type: string - description: | - The feature that uses the connector. - enum: - - alerting - - cases - - generativeAIForSecurity - - generativeAIForObservability - - generativeAIForSearchPlayground - - siem - - uptime - Connectors_connector_types: - title: Connector types - type: string - description: >- - The type of connector. For example, `.email`, `.index`, `.jira`, - `.opsgenie`, or `.server-log`. - enum: - - .bedrock - - .gemini - - .cases-webhook - - .d3security - - .email - - .gen-ai - - .index - - .jira - - .opsgenie - - .pagerduty - - .resilient - - .sentinelone - - .servicenow - - .servicenow-itom - - .servicenow-sir - - .server-log - - .slack - - .slack_api - - .swimlane - - .teams - - .tines - - .torq - - .webhook - - .xmatters - example: .server-log - Data_views_400_response: - title: Bad request - type: object - required: - - statusCode - - error - - message - properties: - statusCode: - type: number - example: 400 - error: + id: + description: The identifier for the connector. type: string - example: Bad Request - message: + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. type: string - Data_views_allownoindex: - type: boolean - description: Allows the data view saved object to exist before the data is available. - Data_views_fieldattrs: + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_webhook: + title: Connector response properties for a Webhook connector type: object - description: A map of field attributes by field name. properties: - count: - type: integer - description: Popularity count for the field. - customDescription: + config: + $ref: '#/components/schemas/Connectors_config_properties_webhook' + connector_type_id: + description: The type of connector. + enum: + - .webhook type: string - description: Custom description for the field. - maxLength: 300 - customLabel: + id: + description: The identifier for the connector. type: string - description: Custom label for the field. - Data_views_fieldformats: - type: object - description: A map of field formats by field name. - Data_views_namespaces: - type: array - description: >- - An array of space identifiers for sharing the data view between multiple - spaces. - items: - type: string - default: default - Data_views_runtimefieldmap: - type: object - description: A map of runtime field definitions by field name. - required: - - script - - type - properties: - script: - type: object - properties: - source: - type: string - description: Script for the runtime field. - type: + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. type: string - description: Mapping type of the runtime field. - Data_views_sourcefilters: - type: array - description: The array of field names you want to filter out in Discover. - items: - type: object - required: - - value - properties: - value: - type: string - Data_views_timefieldname: - type: string - description: The timestamp field name, which you use for time-based data views. - Data_views_title: - type: string - description: >- - Comma-separated list of data streams, indices, and aliases that you want - to search. Supports wildcards (`*`). - Data_views_type: - type: string - description: When set to `rollup`, identifies the rollup data views. - Data_views_typemeta: - type: object - description: >- - When you use rollup indices, contains the field list for the rollup data - view API endpoints. + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' required: - - aggs - - params - properties: - aggs: - type: object - description: A map of rollup restrictions by aggregation type and field name. - params: - type: object - description: Properties for retrieving rollup fields. - Data_views_create_data_view_request_object: - title: Create data view request + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_xmatters: + title: Connector response properties for an xMatters connector type: object - required: - - data_view properties: - data_view: - type: object - required: - - title - description: The data view object. - properties: - allowNoIndex: - $ref: '#/components/schemas/Data_views_allownoindex' - fieldAttrs: - type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_fieldattrs' - fieldFormats: - $ref: '#/components/schemas/Data_views_fieldformats' - fields: - type: object - id: - type: string - name: - type: string - description: The data view name. - namespaces: - $ref: '#/components/schemas/Data_views_namespaces' - runtimeFieldMap: - type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_runtimefieldmap' - sourceFilters: - $ref: '#/components/schemas/Data_views_sourcefilters' - timeFieldName: - $ref: '#/components/schemas/Data_views_timefieldname' - title: - $ref: '#/components/schemas/Data_views_title' - type: - $ref: '#/components/schemas/Data_views_type' - typeMeta: - $ref: '#/components/schemas/Data_views_typemeta' - version: - type: string - override: - type: boolean - description: >- - Override an existing data view if a data view with the provided - title already exists. - default: false - Data_views_typemeta_response: - type: object + config: + $ref: '#/components/schemas/Connectors_config_properties_xmatters' + connector_type_id: + description: The type of connector. + enum: + - .xmatters + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_types: description: >- - When you use rollup indices, contains the field list for the rollup data - view API endpoints. - nullable: true - properties: - aggs: - type: object - description: A map of rollup restrictions by aggregation type and field name. - params: - type: object - description: Properties for retrieving rollup fields. - Data_views_data_view_response_object: - title: Data view response properties - type: object + The type of connector. For example, `.email`, `.index`, `.jira`, + `.opsgenie`, or `.server-log`. + enum: + - .bedrock + - .gemini + - .cases-webhook + - .d3security + - .email + - .gen-ai + - .index + - .jira + - .opsgenie + - .pagerduty + - .resilient + - .sentinelone + - .servicenow + - .servicenow-itom + - .servicenow-sir + - .server-log + - .slack + - .slack_api + - .swimlane + - .teams + - .tines + - .torq + - .webhook + - .xmatters + example: .server-log + title: Connector types + type: string + Connectors_create_connector_request: + description: The properties vary depending on the connector type. + discriminator: + mapping: + .bedrock: '#/components/schemas/Connectors_create_connector_request_bedrock' + .cases-webhook: >- + #/components/schemas/Connectors_create_connector_request_cases_webhook + .d3security: '#/components/schemas/Connectors_create_connector_request_d3security' + .email: '#/components/schemas/Connectors_create_connector_request_email' + .gemini: '#/components/schemas/Connectors_create_connector_request_gemini' + .gen-ai: '#/components/schemas/Connectors_create_connector_request_genai' + .index: '#/components/schemas/Connectors_create_connector_request_index' + .jira: '#/components/schemas/Connectors_create_connector_request_jira' + .opsgenie: '#/components/schemas/Connectors_create_connector_request_opsgenie' + .pagerduty: '#/components/schemas/Connectors_create_connector_request_pagerduty' + .resilient: '#/components/schemas/Connectors_create_connector_request_resilient' + .sentinelone: '#/components/schemas/Connectors_create_connector_request_sentinelone' + .server-log: '#/components/schemas/Connectors_create_connector_request_serverlog' + .servicenow: '#/components/schemas/Connectors_create_connector_request_servicenow' + .servicenow-itom: >- + #/components/schemas/Connectors_create_connector_request_servicenow_itom + .servicenow-sir: >- + #/components/schemas/Connectors_create_connector_request_servicenow_sir + .slack: >- + #/components/schemas/Connectors_create_connector_request_slack_webhook + .slack_api: '#/components/schemas/Connectors_create_connector_request_slack_api' + .swimlane: '#/components/schemas/Connectors_create_connector_request_swimlane' + .teams: '#/components/schemas/Connectors_create_connector_request_teams' + .tines: '#/components/schemas/Connectors_create_connector_request_tines' + .torq: '#/components/schemas/Connectors_create_connector_request_torq' + .webhook: '#/components/schemas/Connectors_create_connector_request_webhook' + .xmatters: '#/components/schemas/Connectors_create_connector_request_xmatters' + propertyName: connector_type_id + oneOf: + - $ref: '#/components/schemas/Connectors_create_connector_request_bedrock' + - $ref: '#/components/schemas/Connectors_create_connector_request_gemini' + - $ref: >- + #/components/schemas/Connectors_create_connector_request_cases_webhook + - $ref: '#/components/schemas/Connectors_create_connector_request_d3security' + - $ref: '#/components/schemas/Connectors_create_connector_request_email' + - $ref: '#/components/schemas/Connectors_create_connector_request_genai' + - $ref: '#/components/schemas/Connectors_create_connector_request_index' + - $ref: '#/components/schemas/Connectors_create_connector_request_jira' + - $ref: '#/components/schemas/Connectors_create_connector_request_opsgenie' + - $ref: '#/components/schemas/Connectors_create_connector_request_pagerduty' + - $ref: '#/components/schemas/Connectors_create_connector_request_resilient' + - $ref: '#/components/schemas/Connectors_create_connector_request_sentinelone' + - $ref: '#/components/schemas/Connectors_create_connector_request_serverlog' + - $ref: '#/components/schemas/Connectors_create_connector_request_servicenow' + - $ref: >- + #/components/schemas/Connectors_create_connector_request_servicenow_itom + - $ref: >- + #/components/schemas/Connectors_create_connector_request_servicenow_sir + - $ref: '#/components/schemas/Connectors_create_connector_request_slack_api' + - $ref: >- + #/components/schemas/Connectors_create_connector_request_slack_webhook + - $ref: '#/components/schemas/Connectors_create_connector_request_swimlane' + - $ref: '#/components/schemas/Connectors_create_connector_request_teams' + - $ref: '#/components/schemas/Connectors_create_connector_request_tines' + - $ref: '#/components/schemas/Connectors_create_connector_request_torq' + - $ref: '#/components/schemas/Connectors_create_connector_request_webhook' + - $ref: '#/components/schemas/Connectors_create_connector_request_xmatters' + title: Create connector request body properties + Connectors_create_connector_request_bedrock: + description: >- + The Amazon Bedrock connector uses axios to send a POST request to Amazon + Bedrock. properties: - data_view: - type: object - properties: - allowNoIndex: - $ref: '#/components/schemas/Data_views_allownoindex' - fieldAttrs: - type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_fieldattrs' - fieldFormats: - $ref: '#/components/schemas/Data_views_fieldformats' - fields: - type: object - id: - type: string - example: ff959d40-b880-11e8-a6d9-e546fe2bba5f - name: - type: string - description: The data view name. - namespaces: - $ref: '#/components/schemas/Data_views_namespaces' - runtimeFieldMap: - type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_runtimefieldmap' - sourceFilters: - $ref: '#/components/schemas/Data_views_sourcefilters' - timeFieldName: - $ref: '#/components/schemas/Data_views_timefieldname' - title: - $ref: '#/components/schemas/Data_views_title' - typeMeta: - $ref: '#/components/schemas/Data_views_typemeta_response' - version: - type: string - example: WzQ2LDJd - Data_views_404_response: + config: + $ref: '#/components/schemas/Connectors_config_properties_bedrock' + connector_type_id: + description: The type of connector. + enum: + - .bedrock + example: .bedrock + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_bedrock' + required: + - config + - connector_type_id + - name + - secrets + title: Create Amazon Bedrock connector request type: object + Connectors_create_connector_request_cases_webhook: + description: > + The Webhook - Case Management connector uses axios to send POST, PUT, + and GET requests to a case management RESTful API web service. properties: - error: - type: string - example: Not Found + config: + $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' + connector_type_id: + description: The type of connector. enum: - - Not Found - message: + - .cases-webhook + example: .cases-webhook type: string - example: >- - Saved object [index-pattern/caaad6d0-920c-11ed-b36a-874bd1548a00] - not found - statusCode: - type: integer - example: 404 - enum: - - 404 - Data_views_update_data_view_request_object: - title: Update data view request - type: object + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_cases_webhook' required: - - data_view + - config + - connector_type_id + - name + title: Create Webhook - Case Managment connector request + type: object + Connectors_create_connector_request_d3security: + description: > + The connector uses axios to send a POST request to a D3 Security + endpoint. properties: - data_view: - type: object - description: > - The data view properties you want to update. Only the specified - properties are updated in the data view. Unspecified fields stay as - they are persisted. - properties: - allowNoIndex: - $ref: '#/components/schemas/Data_views_allownoindex' - fieldFormats: - $ref: '#/components/schemas/Data_views_fieldformats' - fields: - type: object - name: - type: string - runtimeFieldMap: - type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_runtimefieldmap' - sourceFilters: - $ref: '#/components/schemas/Data_views_sourcefilters' - timeFieldName: - $ref: '#/components/schemas/Data_views_timefieldname' - title: - $ref: '#/components/schemas/Data_views_title' - type: - $ref: '#/components/schemas/Data_views_type' - typeMeta: - $ref: '#/components/schemas/Data_views_typemeta' - refresh_fields: - type: boolean - description: Reloads the data view fields after the data view is updated. - default: false - Data_views_swap_data_view_request_object: - title: Data view reference swap request + config: + $ref: '#/components/schemas/Connectors_config_properties_d3security' + connector_type_id: + description: The type of connector. + enum: + - .d3security + example: .d3security + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_d3security' + required: + - config + - connector_type_id + - name + - secrets + title: Create D3 Security connector request type: object + Connectors_create_connector_request_email: + description: > + The email connector uses the SMTP protocol to send mail messages, using + an integration of Nodemailer. An exception is Microsoft Exchange, which + uses HTTP protocol for sending emails, Send mail. Email message text is + sent as both plain text and html text. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_email' + connector_type_id: + description: The type of connector. + enum: + - .email + example: .email + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_email' required: - - fromId - - toId + - config + - connector_type_id + - name + - secrets + title: Create email connector request + type: object + Connectors_create_connector_request_gemini: + description: >- + The Google Gemini connector uses axios to send a POST request to Google + Gemini. properties: - delete: - type: boolean - description: Deletes referenced saved object if all references are removed. - forId: - oneOf: - - type: string - - type: array - items: - type: string - description: Limit the affected saved objects to one or more by identifier. - forType: + config: + $ref: '#/components/schemas/Connectors_config_properties_gemini' + connector_type_id: + description: The type of connector. + enum: + - .gemini + example: .gemini type: string - description: Limit the affected saved objects by type. - fromId: + name: + description: The display name for the connector. + example: my-connector type: string - description: The saved object reference to change. - fromType: + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_gemini' + required: + - config + - connector_type_id + - name + - secrets + title: Create Google Gemini connector request + type: object + Connectors_create_connector_request_genai: + description: > + The OpenAI connector uses axios to send a POST request to either OpenAI + or Azure OpenAPI. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_genai' + connector_type_id: + description: The type of connector. + enum: + - .gen-ai + example: .gen-ai type: string - description: > - Specify the type of the saved object reference to alter. The default - value is `index-pattern` for data views. - toId: + name: + description: The display name for the connector. + example: my-connector type: string - description: New saved object reference value to replace the old value. - Machine_learning_APIs_mlSyncResponseSuccess: - type: boolean - description: The success or failure of the synchronization. - Machine_learning_APIs_mlSyncResponseAnomalyDetectors: + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_genai' + required: + - config + - connector_type_id + - name + - secrets + title: Create OpenAI connector request type: object - title: Sync API response for anomaly detection jobs - description: >- - The sync machine learning saved objects API response contains this - object when there are anomaly detection jobs affected by the - synchronization. There is an object for each relevant job, which - contains the synchronization status. + Connectors_create_connector_request_index: + description: The index connector indexes a document into Elasticsearch. properties: - success: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' - Machine_learning_APIs_mlSyncResponseDatafeeds: + config: + $ref: '#/components/schemas/Connectors_config_properties_index' + connector_type_id: + description: The type of connector. + enum: + - .index + example: .index + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + required: + - config + - connector_type_id + - name + title: Create index connector request type: object - title: Sync API response for datafeeds - description: >- - The sync machine learning saved objects API response contains this - object when there are datafeeds affected by the synchronization. There - is an object for each relevant datafeed, which contains the - synchronization status. + Connectors_create_connector_request_jira: + description: The Jira connector uses the REST API v2 to create Jira issues. properties: - success: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' - Machine_learning_APIs_mlSyncResponseDataFrameAnalytics: + config: + $ref: '#/components/schemas/Connectors_config_properties_jira' + connector_type_id: + description: The type of connector. + enum: + - .jira + example: .jira + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_jira' + required: + - config + - connector_type_id + - name + - secrets + title: Create Jira connector request type: object - title: Sync API response for data frame analytics jobs - description: >- - The sync machine learning saved objects API response contains this - object when there are data frame analytics jobs affected by the - synchronization. There is an object for each relevant job, which - contains the synchronization status. + Connectors_create_connector_request_opsgenie: + description: The Opsgenie connector uses the Opsgenie alert API. properties: - success: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' - Machine_learning_APIs_mlSyncResponseSavedObjectsCreated: + config: + $ref: '#/components/schemas/Connectors_config_properties_opsgenie' + connector_type_id: + description: The type of connector. + enum: + - .opsgenie + example: .opsgenie + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_opsgenie' + required: + - config + - connector_type_id + - name + - secrets + title: Create Opsgenie connector request type: object - title: Sync API response for created saved objects - description: >- - If saved objects are missing for machine learning jobs or trained - models, they are created when you run the sync machine learning saved - objects API. + Connectors_create_connector_request_pagerduty: + description: > + The PagerDuty connector uses the v2 Events API to trigger, acknowledge, + and resolve PagerDuty alerts. properties: - anomaly-detector: - type: object - description: >- - If saved objects are missing for anomaly detection jobs, they are - created. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseAnomalyDetectors - data-frame-analytics: - type: object - description: >- - If saved objects are missing for data frame analytics jobs, they are - created. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseDataFrameAnalytics - trained-model: - type: object - description: If saved objects are missing for trained models, they are created. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseTrainedModels - Machine_learning_APIs_mlSyncResponseSavedObjectsDeleted: + config: + $ref: '#/components/schemas/Connectors_config_properties_pagerduty' + connector_type_id: + description: The type of connector. + enum: + - .pagerduty + example: .pagerduty + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_pagerduty' + required: + - config + - connector_type_id + - name + - secrets + title: Create PagerDuty connector request type: object - title: Sync API response for deleted saved objects + Connectors_create_connector_request_resilient: description: >- - If saved objects exist for machine learning jobs or trained models that - no longer exist, they are deleted when you run the sync machine learning - saved objects API. + The IBM Resilient connector uses the RESILIENT REST v2 to create IBM + Resilient incidents. properties: - anomaly-detector: - type: object - description: >- - If there are saved objects exist for nonexistent anomaly detection - jobs, they are deleted. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseAnomalyDetectors - data-frame-analytics: - type: object - description: >- - If there are saved objects exist for nonexistent data frame - analytics jobs, they are deleted. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseDataFrameAnalytics - trained-model: - type: object - description: >- - If there are saved objects exist for nonexistent trained models, - they are deleted. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseTrainedModels - Machine_learning_APIs_mlSyncResponseTrainedModels: + config: + $ref: '#/components/schemas/Connectors_config_properties_resilient' + connector_type_id: + description: The type of connector. + enum: + - .resilient + example: .resilient + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_resilient' + required: + - config + - connector_type_id + - name + - secrets + title: Create IBM Resilient connector request + type: object + Connectors_create_connector_request_sentinelone: + description: > + The SentinelOne connector communicates with SentinelOne Management + Console via REST API. This functionality is in technical preview and may + be changed or removed in a future release. Elastic will work to fix any + issues, but features in technical preview are not subject to the support + SLA of official GA features. + title: Create SentinelOne connector request type: object - title: Sync API response for trained models - description: >- - The sync machine learning saved objects API response contains this - object when there are trained models affected by the synchronization. - There is an object for each relevant trained model, which contains the - synchronization status. properties: - success: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' - Machine_learning_APIs_mlSync200Response: + config: + $ref: '#/components/schemas/Connectors_config_properties_sentinelone' + connector_type_id: + description: The type of connector. + enum: + - .sentinelone + example: .sentinelone + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_sentinelone' + required: + - config + - connector_type_id + - name + - secrets + x-technical-preview: true + Connectors_create_connector_request_serverlog: + description: This connector writes an entry to the Kibana server log. + properties: + connector_type_id: + description: The type of connector. + enum: + - .server-log + example: .server-log + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + required: + - connector_type_id + - name + title: Create server log connector request type: object - title: Successful sync API response + Connectors_create_connector_request_servicenow: + description: > + The ServiceNow ITSM connector uses the import set API to create + ServiceNow incidents. You can use the connector for rule actions and + cases. properties: - datafeedsAdded: - type: object - description: >- - If a saved object for an anomaly detection job is missing a datafeed - identifier, it is added when you run the sync machine learning saved - objects API. - additionalProperties: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseDatafeeds' - datafeedsRemoved: - type: object - description: >- - If a saved object for an anomaly detection job references a datafeed - that no longer exists, it is deleted when you run the sync machine - learning saved objects API. - additionalProperties: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseDatafeeds' - savedObjectsCreated: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseSavedObjectsCreated - savedObjectsDeleted: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseSavedObjectsDeleted - Machine_learning_APIs_mlSync4xxResponse: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + connector_type_id: + description: The type of connector. + enum: + - .servicenow + example: .servicenow + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' + required: + - config + - connector_type_id + - name + - secrets + title: Create ServiceNow ITSM connector request type: object - title: Unsuccessful sync API response + Connectors_create_connector_request_servicenow_itom: + description: > + The ServiceNow ITOM connector uses the event API to create ServiceNow + events. You can use the connector for rule actions. properties: - error: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' + connector_type_id: + description: The type of connector. + enum: + - .servicenow-itom + example: .servicenow-itom type: string - example: Unauthorized - message: + name: + description: The display name for the connector. + example: my-connector type: string - statusCode: - type: integer - example: 401 - Serverless_saved_objects_400_response: - title: Bad request - type: object + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' required: - - error - - message - - statusCode + - config + - connector_type_id + - name + - secrets + title: Create ServiceNow ITOM connector request + type: object + Connectors_create_connector_request_servicenow_sir: + description: > + The ServiceNow SecOps connector uses the import set API to create + ServiceNow security incidents. You can use the connector for rule + actions and cases. properties: - error: - type: string + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + connector_type_id: + description: The type of connector. enum: - - Bad Request - message: + - .servicenow-sir + example: .servicenow-sir type: string - statusCode: - type: integer - enum: - - 400 - SLOs_indicator_properties_apm_availability: - title: APM availability + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' required: - - type - - params - description: Defines properties for the APM availability indicator type + - config + - connector_type_id + - name + - secrets + title: Create ServiceNow SecOps connector request type: object + Connectors_create_connector_request_slack_api: + description: The Slack connector uses an API method to send Slack messages. properties: - params: - description: An object containing the indicator parameters. - type: object - nullable: false - required: - - service - - environment - - transactionType - - transactionName - - index - properties: - service: - description: The APM service name - type: string - example: o11y-app - environment: - description: The APM service environment or "*" - type: string - example: production - transactionType: - description: The APM transaction type or "*" - type: string - example: request - transactionName: - description: The APM transaction name or "*" - type: string - example: GET /my/api - filter: - description: KQL query used for filtering the data - type: string - example: 'service.foo : "bar"' - index: - description: The index used by APM metrics - type: string - example: metrics-apm*,apm* - type: - description: The type of indicator. + config: + $ref: '#/components/schemas/Connectors_config_properties_slack_api' + connector_type_id: + description: The type of connector. + enum: + - .slack_api + example: .slack_api type: string - example: sli.apm.transactionDuration - SLOs_filter_meta: - title: FilterMeta - description: Defines properties for a filter + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_slack_api' + required: + - connector_type_id + - name + - secrets + title: Create Slack connector request type: object + Connectors_create_connector_request_slack_webhook: + description: The Slack connector uses Slack Incoming Webhooks. properties: - alias: - type: string - nullable: true - disabled: - type: boolean - negate: - type: boolean - controlledBy: - type: string - group: - type: string - index: - type: string - isMultiIndex: - type: boolean - type: + connector_type_id: + description: The type of connector. + enum: + - .slack + example: .slack type: string - key: + name: + description: The display name for the connector. + example: my-connector type: string - params: - type: object - value: + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_slack_webhook' + required: + - connector_type_id + - name + - secrets + title: Create Slack connector request + type: object + Connectors_create_connector_request_swimlane: + description: >- + The Swimlane connector uses the Swimlane REST API to create Swimlane + records. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_swimlane' + connector_type_id: + description: The type of connector. + enum: + - .swimlane + example: .swimlane type: string - field: + name: + description: The display name for the connector. + example: my-connector type: string - SLOs_filter: - title: Filter - description: Defines properties for a filter + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_swimlane' + required: + - config + - connector_type_id + - name + - secrets + title: Create Swimlane connector request type: object + Connectors_create_connector_request_teams: + description: The Microsoft Teams connector uses Incoming Webhooks. properties: - query: - type: object - meta: - $ref: '#/components/schemas/SLOs_filter_meta' - SLOs_kql_with_filters: - title: KQL with filters - description: Defines properties for a filter - oneOf: - - description: the KQL query to filter the documents with. - type: string - example: 'field.environment : "production" and service.name : "my-service"' - - type: object - properties: - kqlQuery: - type: string - filters: - type: array - items: - $ref: '#/components/schemas/SLOs_filter' - SLOs_kql_with_filters_good: - title: KQL query for good events - description: The KQL query used to define the good events. - oneOf: - - description: the KQL query to filter the documents with. + connector_type_id: + description: The type of connector. + enum: + - .teams + example: .teams type: string - example: 'request.latency <= 150 and request.status_code : "2xx"' - - type: object - properties: - kqlQuery: - type: string - filters: - type: array - items: - $ref: '#/components/schemas/SLOs_filter' - SLOs_kql_with_filters_total: - title: KQL query for all events - description: The KQL query used to define all events. - oneOf: - - description: the KQL query to filter the documents with. + name: + description: The display name for the connector. + example: my-connector type: string - example: 'field.environment : "production" and service.name : "my-service"' - - type: object - properties: - kqlQuery: - type: string - filters: - type: array - items: - $ref: '#/components/schemas/SLOs_filter' - SLOs_indicator_properties_custom_kql: - title: Custom Query + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_teams' required: - - type - - params - description: Defines properties for a custom query indicator type + - connector_type_id + - name + - secrets + title: Create Microsoft Teams connector request type: object + Connectors_create_connector_request_tines: + description: > + The Tines connector uses Tines Webhook actions to send events via POST + request. properties: - params: - description: An object containing the indicator parameters. - type: object - nullable: false - required: - - index - - timestampField - - good - - total - properties: - index: - description: The index or index pattern to use - type: string - example: my-service-* - dataViewId: - description: >- - The kibana data view id to use, primarily used to include data - view runtime mappings. Make sure to save SLO again if you - add/update run time fields to the data view and if those fields - are being used in slo queries. - type: string - example: 03b80ab3-003d-498b-881c-3beedbaf1162 - filter: - $ref: '#/components/schemas/SLOs_kql_with_filters' - good: - $ref: '#/components/schemas/SLOs_kql_with_filters_good' - total: - $ref: '#/components/schemas/SLOs_kql_with_filters_total' - timestampField: - description: | - The timestamp field used in the source indice. - type: string - example: timestamp - type: - description: The type of indicator. + config: + $ref: '#/components/schemas/Connectors_config_properties_tines' + connector_type_id: + description: The type of connector. + enum: + - .tines + example: .tines type: string - example: sli.kql.custom - SLOs_indicator_properties_apm_latency: - title: APM latency + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_tines' required: - - type - - params - description: Defines properties for the APM latency indicator type + - config + - connector_type_id + - name + - secrets + title: Create Tines connector request type: object + Connectors_create_connector_request_torq: + description: > + The Torq connector uses a Torq webhook to trigger workflows with Kibana + actions. properties: - params: - description: An object containing the indicator parameters. - type: object - nullable: false - required: - - service - - environment - - transactionType - - transactionName - - index - - threshold - properties: - service: - description: The APM service name - type: string - example: o11y-app - environment: - description: The APM service environment or "*" - type: string - example: production - transactionType: - description: The APM transaction type or "*" - type: string - example: request - transactionName: - description: The APM transaction name or "*" - type: string - example: GET /my/api - filter: - description: KQL query used for filtering the data - type: string - example: 'service.foo : "bar"' - index: - description: The index used by APM metrics - type: string - example: metrics-apm*,apm* - threshold: - description: The latency threshold in milliseconds - type: number - example: 250 - type: - description: The type of indicator. + config: + $ref: '#/components/schemas/Connectors_config_properties_torq' + connector_type_id: + description: The type of connector. + enum: + - .torq + example: .torq type: string - example: sli.apm.transactionDuration - SLOs_indicator_properties_custom_metric: - title: Custom metric + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_torq' required: - - type - - params - description: Defines properties for a custom metric indicator type + - config + - connector_type_id + - name + - secrets + title: Create Torq connector request type: object + Connectors_create_connector_request_webhook: + description: > + The Webhook connector uses axios to send a POST or PUT request to a web + service. properties: - params: - description: An object containing the indicator parameters. - type: object - nullable: false - required: - - index - - timestampField - - good - - total - properties: - index: - description: The index or index pattern to use - type: string - example: my-service-* - dataViewId: - description: >- - The kibana data view id to use, primarily used to include data - view runtime mappings. Make sure to save SLO again if you - add/update run time fields to the data view and if those fields - are being used in slo queries. - type: string - example: 03b80ab3-003d-498b-881c-3beedbaf1162 - filter: - description: the KQL query to filter the documents with. - type: string - example: 'field.environment : "production" and service.name : "my-service"' - timestampField: - description: | - The timestamp field used in the source indice. - type: string - example: timestamp - good: - description: | - An object defining the "good" metrics and equation - type: object - required: - - metrics - - equation - properties: - metrics: - description: >- - List of metrics with their name, aggregation type, and - field. - type: array - items: - type: object - required: - - name - - aggregation - - field - properties: - name: - description: The name of the metric. Only valid options are A-Z - type: string - example: A - pattern: ^[A-Z]$ - aggregation: - description: >- - The aggregation type of the metric. Only valid option - is "sum" - type: string - example: sum - enum: - - sum - field: - description: The field of the metric. - type: string - example: processor.processed - filter: - description: The filter to apply to the metric. - type: string - example: 'processor.outcome: "success"' - equation: - description: The equation to calculate the "good" metric. - type: string - example: A - total: - description: | - An object defining the "total" metrics and equation - type: object - required: - - metrics - - equation - properties: - metrics: - description: >- - List of metrics with their name, aggregation type, and - field. - type: array - items: - type: object - required: - - name - - aggregation - - field - properties: - name: - description: The name of the metric. Only valid options are A-Z - type: string - example: A - pattern: ^[A-Z]$ - aggregation: - description: >- - The aggregation type of the metric. Only valid option - is "sum" - type: string - example: sum - enum: - - sum - field: - description: The field of the metric. - type: string - example: processor.processed - filter: - description: The filter to apply to the metric. - type: string - example: 'processor.outcome: *' - equation: - description: The equation to calculate the "total" metric. - type: string - example: A - type: - description: The type of indicator. + config: + $ref: '#/components/schemas/Connectors_config_properties_webhook' + connector_type_id: + description: The type of connector. + enum: + - .webhook + example: .webhook type: string - example: sli.metric.custom - SLOs_indicator_properties_histogram: - title: Histogram indicator + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_webhook' required: - - type - - params - description: Defines properties for a histogram indicator type + - config + - connector_type_id + - name + - secrets + title: Create Webhook connector request type: object + Connectors_create_connector_request_xmatters: + description: > + The xMatters connector uses the xMatters Workflow for Elastic to send + actionable alerts to on-call xMatters resources. properties: - params: - description: An object containing the indicator parameters. - type: object - nullable: false - required: - - index - - timestampField - - good - - total - properties: - index: - description: The index or index pattern to use - type: string - example: my-service-* - dataViewId: - description: >- - The kibana data view id to use, primarily used to include data - view runtime mappings. Make sure to save SLO again if you - add/update run time fields to the data view and if those fields - are being used in slo queries. - type: string - example: 03b80ab3-003d-498b-881c-3beedbaf1162 - filter: - description: the KQL query to filter the documents with. - type: string - example: 'field.environment : "production" and service.name : "my-service"' - timestampField: - description: | - The timestamp field used in the source indice. - type: string - example: timestamp - good: - description: | - An object defining the "good" events - type: object - required: - - aggregation - - field - properties: - field: - description: The field use to aggregate the good events. - type: string - example: processor.latency - aggregation: - description: The type of aggregation to use. - type: string - example: value_count - enum: - - value_count - - range - filter: - description: The filter for good events. - type: string - example: 'processor.outcome: "success"' - from: - description: >- - The starting value of the range. Only required for "range" - aggregations. - type: number - example: 0 - to: - description: >- - The ending value of the range. Only required for "range" - aggregations. - type: number - example: 100 - total: - description: | - An object defining the "total" events - type: object - required: - - aggregation - - field - properties: - field: - description: The field use to aggregate the good events. - type: string - example: processor.latency - aggregation: - description: The type of aggregation to use. - type: string - example: value_count - enum: - - value_count - - range - filter: - description: The filter for total events. - type: string - example: 'processor.outcome : *' - from: - description: >- - The starting value of the range. Only required for "range" - aggregations. - type: number - example: 0 - to: - description: >- - The ending value of the range. Only required for "range" - aggregations. - type: number - example: 100 - type: - description: The type of indicator. + config: + $ref: '#/components/schemas/Connectors_config_properties_xmatters' + connector_type_id: + description: The type of connector. + enum: + - .xmatters + example: .xmatters + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_xmatters' + required: + - config + - connector_type_id + - name + - secrets + title: Create xMatters connector request + type: object + Connectors_features: + description: | + The feature that uses the connector. + enum: + - alerting + - cases + - generativeAIForSecurity + - generativeAIForObservability + - generativeAIForSearchPlayground + - siem + - uptime + type: string + Connectors_is_deprecated: + description: Indicates whether the connector type is deprecated. + example: false + type: boolean + Connectors_is_missing_secrets: + description: >- + Indicates whether secrets are missing for the connector. Secrets + configuration properties vary depending on the connector type. + example: false + type: boolean + Connectors_is_preconfigured: + description: > + Indicates whether it is a preconfigured connector. If true, the `config` + and `is_missing_secrets` properties are omitted from the response. + example: false + type: boolean + Connectors_is_system_action: + description: Indicates whether the connector is used for system actions. + example: false + type: boolean + Connectors_referenced_by_count: + description: > + Indicates the number of saved objects that reference the connector. If + `is_preconfigured` is true, this value is not calculated. This property + is returned only by the get all connectors API. + example: 2 + type: integer + Connectors_secrets_properties_bedrock: + description: Defines secrets for connectors when type is `.bedrock`. + properties: + accessKey: + description: The AWS access key for authentication. + type: string + secret: + description: The AWS secret for authentication. + type: string + required: + - accessKey + - secret + title: Connector secrets properties for an Amazon Bedrock connector + type: object + Connectors_secrets_properties_cases_webhook: + title: Connector secrets properties for Webhook - Case Management connector + type: object + properties: + password: + description: >- + The password for HTTP basic authentication. If `hasAuth` is set to + `true`, this property is required. + type: string + user: + description: >- + The username for HTTP basic authentication. If `hasAuth` is set to + `true`, this property is required. + type: string + Connectors_secrets_properties_d3security: + description: Defines secrets for connectors when type is `.d3security`. + type: object + properties: + token: + description: The D3 Security token. + type: string + required: + - token + title: Connector secrets properties for a D3 Security connector + Connectors_secrets_properties_email: + description: Defines secrets for connectors when type is `.email`. + properties: + clientSecret: + description: > + The Microsoft Exchange Client secret for OAuth 2.0 client + credentials authentication. It must be URL-encoded. If `service` is + `exchange_server`, this property is required. + type: string + password: + description: > + The password for HTTP basic authentication. If `hasAuth` is set to + `true`, this property is required. + type: string + user: + description: > + The username for HTTP basic authentication. If `hasAuth` is set to + `true`, this property is required. + type: string + title: Connector secrets properties for an email connector + type: object + Connectors_secrets_properties_gemini: + description: Defines secrets for connectors when type is `.gemini`. + properties: + credentialsJSON: + description: >- + The service account credentials JSON file. The service account + should have Vertex AI user IAM role assigned to it. type: string - example: sli.histogram.custom - SLOs_timeslice_metric_basic_metric_with_field: - title: Timeslice Metric Basic Metric with Field required: - - name - - aggregation - - field + - credentialsJSON + title: Connector secrets properties for a Google Gemini connector type: object + Connectors_secrets_properties_genai: + description: Defines secrets for connectors when type is `.gen-ai`. properties: - name: - description: The name of the metric. Only valid options are A-Z - type: string - example: A - pattern: ^[A-Z]$ - aggregation: - description: The aggregation type of the metric. + apiKey: + description: The OpenAI API key. type: string - example: sum - enum: - - sum - - avg - - min - - max - - std_deviation - - last_value - - cardinality - field: - description: The field of the metric. + title: Connector secrets properties for an OpenAI connector + type: object + Connectors_secrets_properties_jira: + description: Defines secrets for connectors when type is `.jira`. + type: object + properties: + apiToken: + description: The Jira API authentication token for HTTP basic authentication. type: string - example: processor.processed - filter: - description: The filter to apply to the metric. + email: + description: The account email for HTTP Basic authentication. type: string - example: 'processor.outcome: "success"' - SLOs_timeslice_metric_percentile_metric: - title: Timeslice Metric Percentile Metric required: - - name - - aggregation - - field - - percentile + - apiToken + - email + title: Connector secrets properties for a Jira connector + Connectors_secrets_properties_opsgenie: + description: Defines secrets for connectors when type is `.opsgenie`. type: object properties: - name: - description: The name of the metric. Only valid options are A-Z - type: string - example: A - pattern: ^[A-Z]$ - aggregation: - description: >- - The aggregation type of the metric. Only valid option is - "percentile" - type: string - example: percentile - enum: - - percentile - field: - description: The field of the metric. + apiKey: + description: The Opsgenie API authentication key for HTTP Basic authentication. type: string - example: processor.processed - percentile: - description: The percentile value. - type: number - example: 95 - filter: - description: The filter to apply to the metric. + required: + - apiKey + title: Connector secrets properties for an Opsgenie connector + Connectors_secrets_properties_pagerduty: + description: Defines secrets for connectors when type is `.pagerduty`. + properties: + routingKey: + description: > + A 32 character PagerDuty Integration Key for an integration on a + service. type: string - example: 'processor.outcome: "success"' - SLOs_timeslice_metric_doc_count_metric: - title: Timeslice Metric Doc Count Metric required: - - name - - aggregation + - routingKey + title: Connector secrets properties for a PagerDuty connector + type: object + Connectors_secrets_properties_resilient: + description: Defines secrets for connectors when type is `.resilient`. type: object properties: - name: - description: The name of the metric. Only valid options are A-Z - type: string - example: A - pattern: ^[A-Z]$ - aggregation: - description: The aggregation type of the metric. Only valid option is "doc_count" + apiKeyId: + description: The authentication key ID for HTTP Basic authentication. type: string - example: doc_count - enum: - - doc_count - filter: - description: The filter to apply to the metric. + apiKeySecret: + description: The authentication key secret for HTTP Basic authentication. type: string - example: 'processor.outcome: "success"' - SLOs_indicator_properties_timeslice_metric: - title: Timeslice metric required: - - type - - params - description: Defines properties for a timeslice metric indicator type - type: object + - apiKeyId + - apiKeySecret + title: Connector secrets properties for IBM Resilient connector + Connectors_secrets_properties_sentinelone: + description: Defines secrets for connectors when type is `.sentinelone`. properties: - params: - description: An object containing the indicator parameters. - type: object - nullable: false - required: - - index - - timestampField - - metric - properties: - index: - description: The index or index pattern to use - type: string - example: my-service-* - dataViewId: - description: >- - The kibana data view id to use, primarily used to include data - view runtime mappings. Make sure to save SLO again if you - add/update run time fields to the data view and if those fields - are being used in slo queries. - type: string - example: 03b80ab3-003d-498b-881c-3beedbaf1162 - filter: - description: the KQL query to filter the documents with. - type: string - example: 'field.environment : "production" and service.name : "my-service"' - timestampField: - description: | - The timestamp field used in the source indice. - type: string - example: timestamp - metric: - description: > - An object defining the metrics, equation, and threshold to - determine if it's a good slice or not - type: object - required: - - metrics - - equation - - comparator - - threshold - properties: - metrics: - description: >- - List of metrics with their name, aggregation type, and - field. - type: array - items: - anyOf: - - $ref: >- - #/components/schemas/SLOs_timeslice_metric_basic_metric_with_field - - $ref: >- - #/components/schemas/SLOs_timeslice_metric_percentile_metric - - $ref: >- - #/components/schemas/SLOs_timeslice_metric_doc_count_metric - equation: - description: The equation to calculate the metric. - type: string - example: A - comparator: - description: >- - The comparator to use to compare the equation to the - threshold. - type: string - example: GT - enum: - - GT - - GTE - - LT - - LTE - threshold: - description: >- - The threshold used to determine if the metric is a good - slice or not. - type: number - example: 100 - type: - description: The type of indicator. + token: + description: The A SentinelOne API token. type: string - example: sli.metric.timeslice - SLOs_time_window: - title: Time window required: - - duration - - type - description: Defines properties for the SLO time window + - token + title: Connector secrets properties for a SentinelOne connector type: object + Connectors_secrets_properties_servicenow: + description: >- + Defines secrets for connectors when type is `.servicenow`, + `.servicenow-sir`, or `.servicenow-itom`. properties: - duration: + clientSecret: description: >- - the duration formatted as {duration}{unit}. Accepted values for - rolling: 7d, 30d, 90d. Accepted values for calendar aligned: 1w - (weekly) or 1M (monthly) + The client secret assigned to your OAuth application. This property + is required when `isOAuth` is `true`. type: string - example: 30d - type: + password: description: >- - Indicates weither the time window is a rolling or a calendar aligned - time window. - type: string - example: rolling - enum: - - rolling - - calendarAligned - SLOs_budgeting_method: - title: Budgeting method - type: string - description: The budgeting method to use when computing the rollup data. - enum: - - occurrences - - timeslices - example: occurrences - SLOs_objective: - title: Objective - required: - - target - description: Defines properties for the SLO objective - type: object - properties: - target: - description: the target objective between 0 and 1 excluded - type: number - minimum: 0 - maximum: 100 - exclusiveMinimum: true - exclusiveMaximum: true - example: 0.99 - timesliceTarget: + The password for HTTP basic authentication. This property is + required when `isOAuth` is `false`. + type: string + privateKey: description: >- - the target objective for each slice when using a timeslices - budgeting method - type: number - minimum: 0 - maximum: 100 - example: 0.995 - timesliceWindow: + The RSA private key that you created for use in ServiceNow. This + property is required when `isOAuth` is `true`. + type: string + privateKeyPassword: description: >- - the duration of each slice when using a timeslices budgeting method, - as {duraton}{unit} + The password for the RSA private key. This property is required when + `isOAuth` is `true` and you set a password on your private key. type: string - example: 5m - SLOs_settings: - title: Settings - description: Defines properties for SLO settings. + username: + description: >- + The username for HTTP basic authentication. This property is + required when `isOAuth` is `false`. + type: string + title: >- + Connector secrets properties for ServiceNow ITOM, ServiceNow ITSM, and + ServiceNow SecOps connectors + type: object + Connectors_secrets_properties_slack_api: + description: Defines secrets for connectors when type is `.slack`. type: object properties: - syncDelay: - description: The synch delay to apply to the transform. Default 1m - type: string - default: 1m - example: 5m - frequency: - description: Configure how often the transform runs, default 1m + token: + description: Slack bot user OAuth token. type: string - default: 1m - example: 5m - preventInitialBackfill: - description: Prevents the transform from backfilling data when it starts. - type: boolean - default: false - example: true - SLOs_summary_status: - title: summary status - type: string - enum: - - NO_DATA - - HEALTHY - - DEGRADING - - VIOLATED - example: HEALTHY - SLOs_error_budget: - title: Error budget + required: + - token + title: Connector secrets properties for a Web API Slack connector + Connectors_secrets_properties_slack_webhook: + description: Defines secrets for connectors when type is `.slack`. type: object + properties: + webhookUrl: + description: Slack webhook url. + type: string required: - - initial - - consumed - - remaining - - isEstimated + - webhookUrl + title: Connector secrets properties for a Webhook Slack connector + Connectors_secrets_properties_swimlane: + description: Defines secrets for connectors when type is `.swimlane`. properties: - initial: - type: number - description: The initial error budget, as 1 - objective - example: 0.02 - consumed: - type: number - description: The error budget consummed, as a percentage of the initial value. - example: 0.8 - remaining: - type: number - description: The error budget remaining, as a percentage of the initial value. - example: 0.2 - isEstimated: - type: boolean - description: >- - Only for SLO defined with occurrences budgeting method and calendar - aligned time window. - example: true - SLOs_summary: - title: Summary + apiToken: + description: Swimlane API authentication token. + type: string + title: Connector secrets properties for a Swimlane connector type: object - description: The SLO computed data + Connectors_secrets_properties_teams: + description: Defines secrets for connectors when type is `.teams`. + properties: + webhookUrl: + description: > + The URL of the incoming webhook. If you are using the + `xpack.actions.allowedHosts` setting, add the hostname to the + allowed hosts. + type: string required: - - status - - sliValue - - errorBudget + - webhookUrl + title: Connector secrets properties for a Microsoft Teams connector + type: object + Connectors_secrets_properties_tines: + description: Defines secrets for connectors when type is `.tines`. properties: - status: - $ref: '#/components/schemas/SLOs_summary_status' - sliValue: - type: number - example: 0.9836 - errorBudget: - $ref: '#/components/schemas/SLOs_error_budget' - SLOs_slo_with_summary_response: - title: SLO response + email: + description: The email used to sign in to Tines. + type: string + token: + description: The Tines API token. + type: string + required: + - email + - token + title: Connector secrets properties for a Tines connector type: object + Connectors_secrets_properties_torq: + description: Defines secrets for connectors when type is `.torq`. + properties: + token: + description: The secret of the webhook authentication header. + type: string required: - - id - - name - - description - - indicator - - timeWindow - - budgetingMethod - - objective - - settings - - revision - - summary - - enabled - - groupBy - - instanceId - - tags - - createdAt - - updatedAt - - version + - token + title: Connector secrets properties for a Torq connector + type: object + Connectors_secrets_properties_webhook: + description: Defines secrets for connectors when type is `.webhook`. properties: - id: - description: The identifier of the SLO. + crt: + description: >- + If `authType` is `webhook-authentication-ssl` and `certType` is + `ssl-crt-key`, it is a base64 encoded version of the CRT or CERT + file. type: string - example: 8853df00-ae2e-11ed-90af-09bb6422b258 - name: - description: The name of the SLO. + key: + description: >- + If `authType` is `webhook-authentication-ssl` and `certType` is + `ssl-crt-key`, it is a base64 encoded version of the KEY file. type: string - example: My Service SLO - description: - description: The description of the SLO. + password: + description: > + The password for HTTP basic authentication or the passphrase for the + SSL certificate files. If `hasAuth` is set to `true` and `authType` + is `webhook-authentication-basic`, this property is required. type: string - example: My SLO description - indicator: - discriminator: - propertyName: type - mapping: - sli.apm.transactionErrorRate: '#/components/schemas/SLOs_indicator_properties_apm_availability' - sli.kql.custom: '#/components/schemas/SLOs_indicator_properties_custom_kql' - sli.apm.transactionDuration: '#/components/schemas/SLOs_indicator_properties_apm_latency' - sli.metric.custom: '#/components/schemas/SLOs_indicator_properties_custom_metric' - sli.histogram.custom: '#/components/schemas/SLOs_indicator_properties_histogram' - sli.metric.timeslice: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' - oneOf: - - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' - - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' - - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' - - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' - - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' - - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' - timeWindow: - $ref: '#/components/schemas/SLOs_time_window' - budgetingMethod: - $ref: '#/components/schemas/SLOs_budgeting_method' - objective: - $ref: '#/components/schemas/SLOs_objective' - settings: - $ref: '#/components/schemas/SLOs_settings' - revision: - description: The SLO revision - type: number - example: 2 - summary: - $ref: '#/components/schemas/SLOs_summary' - enabled: - description: Indicate if the SLO is enabled - type: boolean - example: true - groupBy: - description: optional group by field to use to generate an SLO per distinct value + pfx: + description: >- + If `authType` is `webhook-authentication-ssl` and `certType` is + `ssl-pfx`, it is a base64 encoded version of the PFX or P12 file. type: string - example: some.field - instanceId: - description: the value derived from the groupBy field, if present, otherwise '*' + user: + description: > + The username for HTTP basic authentication. If `hasAuth` is set to + `true` and `authType` is `webhook-authentication-basic`, this + property is required. type: string - example: host-abcde - tags: - description: List of tags - type: array - items: - type: string - createdAt: - description: The creation date + title: Connector secrets properties for a Webhook connector + type: object + Connectors_secrets_properties_xmatters: + description: Defines secrets for connectors when type is `.xmatters`. + properties: + password: + description: > + A user name for HTTP basic authentication. It is applicable only + when `usesBasic` is `true`. + type: string + secretsUrl: + description: > + The request URL for the Elastic Alerts trigger in xMatters with the + API key included in the URL. It is applicable only when `usesBasic` + is `false`. type: string - example: '2023-01-12T10:03:19.000Z' - updatedAt: - description: The last update date + user: + description: > + A password for HTTP basic authentication. It is applicable only when + `usesBasic` is `true`. type: string - example: '2023-01-12T10:03:19.000Z' - version: - description: The internal SLO version - type: number - example: 2 - SLOs_find_slo_response: - title: Find SLO response - description: | - A paginated response of SLOs matching the query. + title: Connector secrets properties for an xMatters connector type: object - properties: - page: - type: number - example: 1 - perPage: - type: number - example: 25 - total: - type: number - example: 34 - results: - type: array - items: - $ref: '#/components/schemas/SLOs_slo_with_summary_response' - SLOs_400_response: - title: Bad request + Connectors_update_connector_request: + description: The properties vary depending on the connector type. + oneOf: + - $ref: '#/components/schemas/Connectors_update_connector_request_bedrock' + - $ref: '#/components/schemas/Connectors_update_connector_request_gemini' + - $ref: >- + #/components/schemas/Connectors_update_connector_request_cases_webhook + - $ref: '#/components/schemas/Connectors_update_connector_request_d3security' + - $ref: '#/components/schemas/Connectors_update_connector_request_email' + - $ref: '#/components/schemas/Connectors_create_connector_request_genai' + - $ref: '#/components/schemas/Connectors_update_connector_request_index' + - $ref: '#/components/schemas/Connectors_update_connector_request_jira' + - $ref: '#/components/schemas/Connectors_update_connector_request_opsgenie' + - $ref: '#/components/schemas/Connectors_update_connector_request_pagerduty' + - $ref: '#/components/schemas/Connectors_update_connector_request_resilient' + - $ref: '#/components/schemas/Connectors_update_connector_request_sentinelone' + - $ref: '#/components/schemas/Connectors_update_connector_request_serverlog' + - $ref: '#/components/schemas/Connectors_update_connector_request_servicenow' + - $ref: >- + #/components/schemas/Connectors_update_connector_request_servicenow_itom + - $ref: '#/components/schemas/Connectors_update_connector_request_slack_api' + - $ref: >- + #/components/schemas/Connectors_update_connector_request_slack_webhook + - $ref: '#/components/schemas/Connectors_update_connector_request_swimlane' + - $ref: '#/components/schemas/Connectors_update_connector_request_teams' + - $ref: '#/components/schemas/Connectors_update_connector_request_tines' + - $ref: '#/components/schemas/Connectors_update_connector_request_torq' + - $ref: '#/components/schemas/Connectors_update_connector_request_webhook' + - $ref: '#/components/schemas/Connectors_update_connector_request_xmatters' + title: Update connector request body properties + Connectors_update_connector_request_bedrock: + title: Update Amazon Bedrock connector request type: object - required: - - statusCode - - error - - message properties: - statusCode: - type: number - example: 400 - error: - type: string - example: Bad Request - message: + config: + $ref: '#/components/schemas/Connectors_config_properties_bedrock' + name: + description: The display name for the connector. type: string - example: 'Invalid value ''foo'' supplied to: [...]' - SLOs_401_response: - title: Unauthorized - type: object + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_bedrock' required: - - statusCode - - error - - message + - config + - name + Connectors_update_connector_request_cases_webhook: + title: Update Webhook - Case Managment connector request + type: object properties: - statusCode: - type: number - example: 401 - error: - type: string - example: Unauthorized - message: + config: + $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' + name: + description: The display name for the connector. + example: my-connector type: string - example: "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]" - SLOs_403_response: - title: Unauthorized - type: object + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_cases_webhook' required: - - statusCode - - error - - message + - config + - name + Connectors_update_connector_request_d3security: + title: Update D3 Security connector request + type: object properties: - statusCode: - type: number - example: 403 - error: - type: string - example: Unauthorized - message: + config: + $ref: '#/components/schemas/Connectors_config_properties_d3security' + name: + description: The display name for the connector. type: string - example: "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]" - SLOs_404_response: - title: Not found - type: object + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_d3security' required: - - statusCode - - error - - message + - config + - name + - secrets + Connectors_update_connector_request_email: + title: Update email connector request + type: object properties: - statusCode: - type: number - example: 404 - error: - type: string - example: Not Found - message: + config: + $ref: '#/components/schemas/Connectors_config_properties_email' + name: + description: The display name for the connector. type: string - example: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found - SLOs_create_slo_request: - title: Create SLO request - description: > - The create SLO API request body varies depending on the type of - indicator, time window and budgeting method. - type: object + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_email' required: + - config - name - - description - - indicator - - timeWindow - - budgetingMethod - - objective + Connectors_update_connector_request_gemini: + title: Update Google Gemini connector request + type: object properties: - id: - description: >- - A optional and unique identifier for the SLO. Must be between 8 and - 36 chars + config: + $ref: '#/components/schemas/Connectors_config_properties_gemini' + name: + description: The display name for the connector. type: string - example: my-super-slo-id + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_gemini' + required: + - config + - name + Connectors_update_connector_request_index: + title: Update index connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_index' name: - description: A name for the SLO. + description: The display name for the connector. type: string - description: - description: A description for the SLO. + required: + - config + - name + Connectors_update_connector_request_jira: + title: Update Jira connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_jira' + name: + description: The display name for the connector. type: string - indicator: - oneOf: - - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' - - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' - - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' - - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' - - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' - - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' - timeWindow: - $ref: '#/components/schemas/SLOs_time_window' - budgetingMethod: - $ref: '#/components/schemas/SLOs_budgeting_method' - objective: - $ref: '#/components/schemas/SLOs_objective' - settings: - $ref: '#/components/schemas/SLOs_settings' - groupBy: - description: optional group by field to use to generate an SLO per distinct value + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_jira' + required: + - config + - name + - secrets + Connectors_update_connector_request_opsgenie: + title: Update Opsgenie connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_opsgenie' + name: + description: The display name for the connector. type: string - example: some.field - tags: - description: List of tags - type: array - items: - type: string - SLOs_create_slo_response: - title: Create SLO response + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_opsgenie' + required: + - config + - name + - secrets + Connectors_update_connector_request_pagerduty: + title: Update PagerDuty connector request type: object - required: - - id properties: - id: + config: + $ref: '#/components/schemas/Connectors_config_properties_pagerduty' + name: + description: The display name for the connector. type: string - example: 8853df00-ae2e-11ed-90af-09bb6422b258 - SLOs_409_response: - title: Conflict - type: object + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_pagerduty' required: - - statusCode - - error - - message + - config + - name + - secrets + Connectors_update_connector_request_resilient: + title: Update IBM Resilient connector request + type: object properties: - statusCode: - type: number - example: 409 - error: - type: string - example: Conflict - message: + config: + $ref: '#/components/schemas/Connectors_config_properties_resilient' + name: + description: The display name for the connector. type: string - example: SLO [d077e940-1515-11ee-9c50-9d096392f520] already exists - SLOs_update_slo_request: - title: Update SLO request - description: > - The update SLO API request body varies depending on the type of - indicator, time window and budgeting method. Partial update is handled. + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_resilient' + required: + - config + - name + - secrets + Connectors_update_connector_request_sentinelone: + title: Update SentinelOne connector request type: object properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_sentinelone' name: - description: A name for the SLO. - type: string - description: - description: A description for the SLO. + description: The display name for the connector. type: string - indicator: - oneOf: - - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' - - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' - - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' - - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' - - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' - - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' - timeWindow: - $ref: '#/components/schemas/SLOs_time_window' - budgetingMethod: - $ref: '#/components/schemas/SLOs_budgeting_method' - objective: - $ref: '#/components/schemas/SLOs_objective' - settings: - $ref: '#/components/schemas/SLOs_settings' - tags: - description: List of tags - type: array - items: - type: string - SLOs_slo_definition_response: - title: SLO definition response - type: object + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_sentinelone' required: - - id + - config - name - - description - - indicator - - timeWindow - - budgetingMethod - - objective - - settings - - revision - - enabled - - groupBy - - tags - - createdAt - - updatedAt - - version + - secrets + Connectors_update_connector_request_serverlog: + title: Update server log connector request + type: object properties: - id: - description: The identifier of the SLO. - type: string - example: 8853df00-ae2e-11ed-90af-09bb6422b258 name: - description: The name of the SLO. - type: string - example: My Service SLO - description: - description: The description of the SLO. - type: string - example: My SLO description - indicator: - discriminator: - propertyName: type - mapping: - sli.apm.transactionErrorRate: '#/components/schemas/SLOs_indicator_properties_apm_availability' - sli.kql.custom: '#/components/schemas/SLOs_indicator_properties_custom_kql' - sli.apm.transactionDuration: '#/components/schemas/SLOs_indicator_properties_apm_latency' - sli.metric.custom: '#/components/schemas/SLOs_indicator_properties_custom_metric' - sli.histogram.custom: '#/components/schemas/SLOs_indicator_properties_histogram' - sli.metric.timeslice: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' - oneOf: - - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' - - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' - - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' - - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' - - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' - - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' - timeWindow: - $ref: '#/components/schemas/SLOs_time_window' - budgetingMethod: - $ref: '#/components/schemas/SLOs_budgeting_method' - objective: - $ref: '#/components/schemas/SLOs_objective' - settings: - $ref: '#/components/schemas/SLOs_settings' - revision: - description: The SLO revision - type: number - example: 2 - enabled: - description: Indicate if the SLO is enabled - type: boolean - example: true - groupBy: - description: optional group by field to use to generate an SLO per distinct value - type: string - example: some.field - tags: - description: List of tags - type: array - items: - type: string - createdAt: - description: The creation date - type: string - example: '2023-01-12T10:03:19.000Z' - updatedAt: - description: The last update date + description: The display name for the connector. type: string - example: '2023-01-12T10:03:19.000Z' - version: - description: The internal SLO version - type: number - example: 2 - SLOs_delete_slo_instances_request: - title: Delete SLO instances request - description: > - The delete SLO instances request takes a list of SLO id and instance id, - then delete the rollup and summary data. This API can be used to remove - the staled data of an instance SLO that no longer get updated. + required: + - name + Connectors_update_connector_request_servicenow: + title: Update ServiceNow ITSM connector or ServiceNow SecOps request type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' required: - - list + - config + - name + - secrets + Connectors_update_connector_request_servicenow_itom: + title: Create ServiceNow ITOM connector request + type: object properties: - list: - description: An array of slo id and instance id - type: array - items: - type: object - required: - - sloId - - instanceId - properties: - sloId: - description: The SLO unique identifier - type: string - example: 8853df00-ae2e-11ed-90af-09bb6422b258 - instanceId: - description: The SLO instance identifier - type: string - example: 8853df00-ae2e-11ed-90af-09bb6422b258 - Kibana_HTTP_APIs_core_status_redactedResponse: - additionalProperties: false - description: A minimal representation of Kibana's operational status. + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' + required: + - config + - name + - secrets + Connectors_update_connector_request_slack_api: + title: Update Slack connector request + type: object properties: - status: - additionalProperties: false - properties: - overall: - additionalProperties: false - properties: - level: - description: Service status levels as human and machine readable values. - enum: - - available - - degraded - - unavailable - - critical - type: string - required: - - level - type: object - required: - - overall - type: object + config: + $ref: '#/components/schemas/Connectors_config_properties_slack_api' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_slack_api' + required: + - name + - secrets + Connectors_update_connector_request_slack_webhook: + title: Update Slack connector request + type: object + properties: + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_slack_webhook' required: - - status + - name + - secrets + Connectors_update_connector_request_swimlane: + title: Update Swimlane connector request type: object - Kibana_HTTP_APIs_core_status_response: - additionalProperties: false - description: >- - Kibana's operational status as well as a detailed breakdown of plugin - statuses indication of various loads (like event loop utilization and - network traffic) at time of request. properties: - metrics: - additionalProperties: false - description: Metric groups collected by Kibana. - properties: - collection_interval_in_millis: - description: The interval at which metrics should be collected. - type: number - elasticsearch_client: - additionalProperties: false - description: Current network metrics of Kibana's Elasticsearch client. - properties: - totalActiveSockets: - description: Count of network sockets currently in use. - type: number - totalIdleSockets: - description: Count of network sockets currently idle. - type: number - totalQueuedRequests: - description: Count of requests not yet assigned to sockets. - type: number - required: - - totalActiveSockets - - totalIdleSockets - - totalQueuedRequests - type: object - last_updated: - description: The time metrics were collected. - type: string - required: - - elasticsearch_client - - last_updated - - collection_interval_in_millis - type: object + config: + $ref: '#/components/schemas/Connectors_config_properties_swimlane' name: - description: Kibana instance name. + description: The display name for the connector. + example: my-connector type: string - status: - additionalProperties: false - properties: - core: - additionalProperties: false - description: Statuses of core Kibana services. - properties: - elasticsearch: - additionalProperties: false - properties: - detail: - description: Human readable detail of the service status. - type: string - documentationUrl: - description: A URL to further documentation regarding this service. - type: string - level: - description: >- - Service status levels as human and machine readable - values. - enum: - - available - - degraded - - unavailable - - critical - type: string - meta: - additionalProperties: {} - description: >- - An unstructured set of extra metadata about this - service. - type: object - summary: - description: A human readable summary of the service status. - type: string - required: - - level - - summary - - meta - type: object - savedObjects: - additionalProperties: false - properties: - detail: - description: Human readable detail of the service status. - type: string - documentationUrl: - description: A URL to further documentation regarding this service. - type: string - level: - description: >- - Service status levels as human and machine readable - values. - enum: - - available - - degraded - - unavailable - - critical - type: string - meta: - additionalProperties: {} - description: >- - An unstructured set of extra metadata about this - service. - type: object - summary: - description: A human readable summary of the service status. - type: string - required: - - level - - summary - - meta - type: object - required: - - elasticsearch - - savedObjects - type: object - overall: - additionalProperties: false - properties: - detail: - description: Human readable detail of the service status. - type: string - documentationUrl: - description: A URL to further documentation regarding this service. - type: string - level: - description: Service status levels as human and machine readable values. - enum: - - available - - degraded - - unavailable - - critical - type: string - meta: - additionalProperties: {} - description: An unstructured set of extra metadata about this service. - type: object - summary: - description: A human readable summary of the service status. - type: string - required: - - level - - summary - - meta - type: object - plugins: - additionalProperties: - additionalProperties: false - properties: - detail: - description: Human readable detail of the service status. - type: string - documentationUrl: - description: A URL to further documentation regarding this service. - type: string - level: - description: >- - Service status levels as human and machine readable - values. - enum: - - available - - degraded - - unavailable - - critical - type: string - meta: - additionalProperties: {} - description: An unstructured set of extra metadata about this service. - type: object - summary: - description: A human readable summary of the service status. - type: string - required: - - level - - summary - - meta - type: object - description: A dynamic mapping of plugin ID to plugin status. - type: object - required: - - overall - - core - - plugins - type: object - uuid: - description: >- - Unique, generated Kibana instance UUID. This UUID should persist - even if the Kibana process restarts. + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_swimlane' + required: + - config + - name + - secrets + Connectors_update_connector_request_teams: + title: Update Microsoft Teams connector request + type: object + properties: + name: + description: The display name for the connector. type: string - version: - additionalProperties: false - properties: - build_date: - description: The date and time of this build. - type: string - build_flavor: - description: >- - The build flavour determines configuration and behavior of - Kibana. On premise users will almost always run the - "traditional" flavour, while other flavours are reserved for - Elastic-specific use cases. - enum: - - serverless - - traditional - type: string - build_hash: - description: >- - A unique hash value representing the git commit of this Kibana - build. - type: string - build_number: - description: >- - A monotonically increasing number, each subsequent build will - have a higher number. - type: number - build_snapshot: - description: Whether this build is a snapshot build. - type: boolean - number: - description: A semantic version number. - type: string - required: - - number - - build_hash - - build_number - - build_snapshot - - build_flavor - - build_date - type: object + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_teams' required: - name - - uuid - - version - - status - - metrics + - secrets + Connectors_update_connector_request_tines: + title: Update Tines connector request type: object - examples: - Connectors_create_email_connector_request: - summary: Create an email connector. - value: - name: email-connector-1 - connector_type_id: .email + properties: config: - from: tester@example.com - hasAuth: true - host: https://example.com - port: 1025 - secure: false - service: other + $ref: '#/components/schemas/Connectors_config_properties_tines' + name: + description: The display name for the connector. + type: string secrets: - user: username - password: password - Connectors_create_index_connector_request: - summary: Create an index connector. - value: - name: my-connector - connector_type_id: .index - config: - index: test-index - Connectors_create_webhook_connector_request: - summary: Create a webhook connector with SSL authentication. - value: - name: my-webhook-connector - connector_type_id: .webhook + $ref: '#/components/schemas/Connectors_secrets_properties_tines' + required: + - config + - name + - secrets + Connectors_update_connector_request_torq: + title: Update Torq connector request + type: object + properties: config: - method: post - url: https://example.com - authType: webhook-authentication-ssl - certType: ssl-crt-key + $ref: '#/components/schemas/Connectors_config_properties_torq' + name: + description: The display name for the connector. + type: string secrets: - crt: QmFnIEF0dH... - key: LS0tLS1CRUdJ... - password: my-passphrase - Connectors_create_xmatters_connector_request: - summary: Create an xMatters connector with URL authentication. - value: - name: my-xmatters-connector - connector_type_id: .xmatters + $ref: '#/components/schemas/Connectors_secrets_properties_torq' + required: + - config + - name + - secrets + Connectors_update_connector_request_webhook: + title: Update Webhook connector request + type: object + properties: config: - usesBasic: false + $ref: '#/components/schemas/Connectors_config_properties_webhook' + name: + description: The display name for the connector. + type: string secrets: - secretsUrl: https://example.com?apiKey=xxxxx - Connectors_create_email_connector_response: - summary: A new email connector. - value: - id: 90a82c60-478f-11ee-a343-f98a117c727f - connector_type_id: .email - name: email-connector-1 - config: - from: tester@example.com - service: other - host: https://example.com - port: 1025 - secure: false - hasAuth: true - tenantId: null - clientId: null - oauthTokenUrl: null - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_create_index_connector_response: - summary: A new index connector. - value: - id: c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad - connector_type_id: .index - name: my-connector - config: - index: test-index - refresh: false - executionTimeField: null - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_create_webhook_connector_response: - summary: A new webhook connector. - value: - id: 900eb010-3b9d-11ee-a642-8ffbb94e38bd - name: my-webhook-connector - config: - method: post - url: https://example.com - authType: webhook-authentication-ssl - certType: ssl-crt-key - verificationMode: full - headers: null - hasAuth: true - connector_type_id: .webhook - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_create_xmatters_connector_response: - summary: A new xMatters connector. - value: - id: 4d2d8da0-4d1f-11ee-9367-577408be4681 - name: my-xmatters-connector - config: - usesBasic: false - configUrl: null - connector_type_id: .xmatters - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_get_connector_response: - summary: Get connector details. - value: - id: df770e30-8b8b-11ed-a780-3b746c987a81 - name: my_server_log_connector - config: {} - connector_type_id: .server-log - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_update_index_connector_request: - summary: Update an index connector. - value: - name: updated-connector + $ref: '#/components/schemas/Connectors_secrets_properties_webhook' + required: + - config + - name + - secrets + Connectors_update_connector_request_xmatters: + title: Update xMatters connector request + type: object + properties: config: - index: updated-index - Connectors_get_connectors_response: - summary: A list of connectors - value: - - id: preconfigured-email-connector - name: my-preconfigured-email-notification - connector_type_id: .email - is_preconfigured: true - is_deprecated: false - referenced_by_count: 0 - is_system_action: false - - id: e07d0c80-8b8b-11ed-a780-3b746c987a81 - name: my-index-connector - config: - index: test-index - refresh: false - executionTimeField: null - connector_type_id: .index - is_preconfigured: false - is_deprecated: false - referenced_by_count: 2 - is_missing_secrets: false - is_system_action: false - Connectors_get_connector_types_generativeai_response: - summary: A list of connector types for the `generativeAI` feature. - value: - - id: .gen-ai - name: OpenAI - enabled: true - enabled_in_config: true - enabled_in_license: true - minimum_license_required: enterprise - supported_feature_ids: - - generativeAIForSecurity - - generativeAIForObservability - - generativeAIForSearchPlayground - is_system_action_type: false - - id: .bedrock - name: AWS Bedrock - enabled: true - enabled_in_config: true - enabled_in_license: true - minimum_license_required: enterprise - supported_feature_ids: - - generativeAIForSecurity - - generativeAIForObservability - - generativeAIForSearchPlayground - is_system_action_type: false - - id: .gemini - name: Google Gemini - enabled: true - enabled_in_config: true - enabled_in_license: true - minimum_license_required: enterprise - supported_feature_ids: - - generativeAIForSecurity - is_system_action_type: false - Data_views_get_data_views_response: - summary: The get all data views API returns a list of data views. - value: + $ref: '#/components/schemas/Connectors_config_properties_xmatters' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_xmatters' + required: + - config + - name + - secrets + Data_views_400_response: + title: Bad request + type: object + properties: + error: + example: Bad Request + type: string + message: + type: string + statusCode: + example: 400 + type: number + required: + - statusCode + - error + - message + Data_views_404_response: + type: object + properties: + error: + enum: + - Not Found + example: Not Found + type: string + message: + example: >- + Saved object [index-pattern/caaad6d0-920c-11ed-b36a-874bd1548a00] + not found + type: string + statusCode: + enum: + - 404 + example: 404 + type: integer + Data_views_allownoindex: + description: Allows the data view saved object to exist before the data is available. + type: boolean + Data_views_create_data_view_request_object: + title: Create data view request + type: object + properties: data_view: - - id: ff959d40-b880-11e8-a6d9-e546fe2bba5f - namespaces: - - default - title: kibana_sample_data_ecommerce - typeMeta: {} - name: Kibana Sample Data eCommerce - - id: d3d7af60-4c81-11e8-b3d7-01146121b73d - namespaces: - - default - title: kibana_sample_data_flights - name: Kibana Sample Data Flights - - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + description: The data view object. + type: object + properties: + allowNoIndex: + $ref: '#/components/schemas/Data_views_allownoindex' + fieldAttrs: + additionalProperties: + $ref: '#/components/schemas/Data_views_fieldattrs' + type: object + fieldFormats: + $ref: '#/components/schemas/Data_views_fieldformats' + fields: + type: object + id: + type: string + name: + description: The data view name. + type: string namespaces: - - default - title: kibana_sample_data_logs - name: Kibana Sample Data Logs - Data_views_create_data_view_request: - summary: Create a data view with runtime fields. - value: - data_view: - title: logstash-* - name: My Logstash data view - runtimeFieldMap: - runtime_shape_name: - type: keyword - script: - source: emit(doc['shape_name'].value) - Data_views_get_data_view_response: - summary: >- - The get data view API returns a JSON object that contains information - about the data view. - value: + $ref: '#/components/schemas/Data_views_namespaces' + runtimeFieldMap: + additionalProperties: + $ref: '#/components/schemas/Data_views_runtimefieldmap' + type: object + sourceFilters: + $ref: '#/components/schemas/Data_views_sourcefilters' + timeFieldName: + $ref: '#/components/schemas/Data_views_timefieldname' + title: + $ref: '#/components/schemas/Data_views_title' + type: + $ref: '#/components/schemas/Data_views_type' + typeMeta: + $ref: '#/components/schemas/Data_views_typemeta' + version: + type: string + required: + - title + override: + default: false + description: >- + Override an existing data view if a data view with the provided + title already exists. + type: boolean + required: + - data_view + Data_views_data_view_response_object: + title: Data view response properties + type: object + properties: data_view: - id: ff959d40-b880-11e8-a6d9-e546fe2bba5f - version: WzUsMV0= - title: kibana_sample_data_ecommerce - timeFieldName: order_date - sourceFilters: [] - fields: - _id: - count: 0 - name: _id + type: object + properties: + allowNoIndex: + $ref: '#/components/schemas/Data_views_allownoindex' + fieldAttrs: + additionalProperties: + $ref: '#/components/schemas/Data_views_fieldattrs' + type: object + fieldFormats: + $ref: '#/components/schemas/Data_views_fieldformats' + fields: + type: object + id: + example: ff959d40-b880-11e8-a6d9-e546fe2bba5f type: string - esTypes: - - _id - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - _index: - count: 0 - name: _index + name: + description: The data view name. + type: string + namespaces: + $ref: '#/components/schemas/Data_views_namespaces' + runtimeFieldMap: + additionalProperties: + $ref: '#/components/schemas/Data_views_runtimefieldmap' + type: object + sourceFilters: + $ref: '#/components/schemas/Data_views_sourcefilters' + timeFieldName: + $ref: '#/components/schemas/Data_views_timefieldname' + title: + $ref: '#/components/schemas/Data_views_title' + typeMeta: + $ref: '#/components/schemas/Data_views_typemeta_response' + version: + example: WzQ2LDJd + type: string + Data_views_fieldattrs: + description: A map of field attributes by field name. + type: object + properties: + count: + description: Popularity count for the field. + type: integer + customDescription: + description: Custom description for the field. + maxLength: 300 + type: string + customLabel: + description: Custom label for the field. + type: string + Data_views_fieldformats: + description: A map of field formats by field name. + type: object + Data_views_namespaces: + description: >- + An array of space identifiers for sharing the data view between multiple + spaces. + items: + default: default + type: string + type: array + Data_views_runtimefieldmap: + description: A map of runtime field definitions by field name. + type: object + properties: + script: + type: object + properties: + source: + description: Script for the runtime field. + type: string + type: + description: Mapping type of the runtime field. + type: string + required: + - script + - type + Data_views_sourcefilters: + description: The array of field names you want to filter out in Discover. + items: + type: object + properties: + value: + type: string + required: + - value + type: array + Data_views_swap_data_view_request_object: + title: Data view reference swap request + type: object + properties: + delete: + description: Deletes referenced saved object if all references are removed. + type: boolean + forId: + description: Limit the affected saved objects to one or more by identifier. + oneOf: + - type: string + - items: + type: string + type: array + forType: + description: Limit the affected saved objects by type. + type: string + fromId: + description: The saved object reference to change. + type: string + fromType: + description: > + Specify the type of the saved object reference to alter. The default + value is `index-pattern` for data views. + type: string + toId: + description: New saved object reference value to replace the old value. + type: string + required: + - fromId + - toId + Data_views_timefieldname: + description: 'The timestamp field name, which you use for time-based data views.' + type: string + Data_views_title: + description: >- + Comma-separated list of data streams, indices, and aliases that you want + to search. Supports wildcards (`*`). + type: string + Data_views_type: + description: 'When set to `rollup`, identifies the rollup data views.' + type: string + Data_views_typemeta: + description: >- + When you use rollup indices, contains the field list for the rollup data + view API endpoints. + type: object + properties: + aggs: + description: A map of rollup restrictions by aggregation type and field name. + type: object + params: + description: Properties for retrieving rollup fields. + type: object + required: + - aggs + - params + Data_views_typemeta_response: + description: >- + When you use rollup indices, contains the field list for the rollup data + view API endpoints. + nullable: true + type: object + properties: + aggs: + description: A map of rollup restrictions by aggregation type and field name. + type: object + params: + description: Properties for retrieving rollup fields. + type: object + Data_views_update_data_view_request_object: + title: Update data view request + type: object + properties: + data_view: + description: > + The data view properties you want to update. Only the specified + properties are updated in the data view. Unspecified fields stay as + they are persisted. + type: object + properties: + allowNoIndex: + $ref: '#/components/schemas/Data_views_allownoindex' + fieldFormats: + $ref: '#/components/schemas/Data_views_fieldformats' + fields: + type: object + name: type: string - esTypes: - - _index - scripted: false - searchable: true - aggregatable: true - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - _score: - count: 0 - name: _score + runtimeFieldMap: + additionalProperties: + $ref: '#/components/schemas/Data_views_runtimefieldmap' + type: object + sourceFilters: + $ref: '#/components/schemas/Data_views_sourcefilters' + timeFieldName: + $ref: '#/components/schemas/Data_views_timefieldname' + title: + $ref: '#/components/schemas/Data_views_title' + type: + $ref: '#/components/schemas/Data_views_type' + typeMeta: + $ref: '#/components/schemas/Data_views_typemeta' + refresh_fields: + default: false + description: Reloads the data view fields after the data view is updated. + type: boolean + required: + - data_view + Fleet_agent: + title: Agent + type: object + properties: + access_api_key: + type: string + access_api_key_id: + type: string + active: + type: boolean + components: + items: + $ref: '#/components/schemas/Fleet_agent_component' + type: array + default_api_key: + type: string + default_api_key_id: + type: string + enrolled_at: + type: string + id: + type: string + last_checkin: + type: string + local_metadata: + $ref: '#/components/schemas/Fleet_agent_metadata' + metrics: + type: object + properties: + cpu_avg: + description: >- + Average agent CPU usage during the last 5 minutes, number + between 0-1 type: number - scripted: false - searchable: false - aggregatable: false - readFromDocValues: false - format: - id: number - shortDotsEnable: false - isMapped: true - _source: - count: 0 - name: _source - type: _source - esTypes: - - _source - scripted: false - searchable: false - aggregatable: false - readFromDocValues: false - format: - id: _source - shortDotsEnable: false - isMapped: true - category: - count: 0 - name: category + memory_size_byte_avg: + description: Average agent memory consumption during the last 5 minutes + type: number + policy_id: + type: string + policy_revision: + type: number + status: + $ref: '#/components/schemas/Fleet_agent_status' + type: + $ref: '#/components/schemas/Fleet_agent_type' + unenrolled_at: + type: string + unenrollment_started_at: + type: string + user_provided_metadata: + $ref: '#/components/schemas/Fleet_agent_metadata' + required: + - type + - active + - enrolled_at + - id + - status + Fleet_agent_action: + oneOf: + - properties: + ack_data: + type: string + data: + type: string + type: + enum: + - UNENROLL + - UPGRADE + - POLICY_REASSIGN + type: string + - properties: + data: + type: object + properties: + log_level: + enum: + - debug + - info + - warning + - error + nullable: true + type: string + type: + type: string + title: Agent action + Fleet_agent_component: + title: Agent component + type: object + properties: + id: + type: string + message: + type: string + status: + $ref: '#/components/schemas/Fleet_agent_component_status' + type: + type: string + units: + items: + $ref: '#/components/schemas/Fleet_agent_component_unit' + type: array + Fleet_agent_component_status: + enum: + - starting + - configuring + - healthy + - degraded + - failed + - stopping + - stopped + title: Agent component status + type: string + Fleet_agent_component_unit: + title: Agent component unit + type: object + properties: + id: + type: string + message: + type: string + payload: + type: object + status: + $ref: '#/components/schemas/Fleet_agent_component_status' + type: + $ref: '#/components/schemas/Fleet_agent_component_unit_type' + Fleet_agent_component_unit_type: + enum: + - input + - output + title: Agent component unit type + type: string + Fleet_agent_diagnostics: + title: Agent diagnostics + type: object + properties: + actionId: + type: string + createTime: + type: string + filePath: + type: string + id: + type: string + name: + type: string + status: + enum: + - READY + - AWAITING_UPLOAD + - DELETED + - IN_PROGRESS + required: + - id + - name + - createTime + - filePath + - actionId + - status + Fleet_agent_get_by_actions: + items: + items: + type: string + type: array + title: Agents get by action ids + type: array + Fleet_agent_metadata: + title: Agent metadata + type: object + Fleet_agent_policy: + title: Agent Policy + type: object + properties: + advanced_settings: + description: >- + Advanced settings stored in the agent policy, e.g. + agent_limits_go_max_procs + nullable: true + type: object + agent_features: + items: + type: object + properties: + enabled: + type: boolean + name: + type: string + required: + - name + - enabled + type: array + agents: + type: number + data_output_id: + nullable: true + type: string + description: + type: string + download_source_id: + nullable: true + type: string + fleet_server_host_id: + nullable: true + type: string + global_data_tags: + items: + additionalProperties: + oneOf: + - type: string + - type: number + description: >- + User defined data tags that are added to all of the inputs. The + values can be strings or numbers. + type: object + type: array + id: + type: string + inactivity_timeout: + type: integer + is_protected: + description: >- + Indicates whether the agent policy has tamper protection enabled. + Default false. + type: boolean + keep_monitoring_alive: + description: >- + When set to true, monitoring will be enabled but logs/metrics + collection will be disabled + nullable: true + type: boolean + monitoring_enabled: + items: + enum: + - metrics + - logs + type: string + type: array + monitoring_output_id: + nullable: true + type: string + name: + type: string + namespace: + type: string + overrides: + description: >- + Override settings that are defined in the agent policy. Input + settings cannot be overridden. The override option should be used + only in unusual circumstances and not as a routine procedure. + nullable: true + type: object + package_policies: + description: >- + This field is present only when retrieving a single agent policy, or + when retrieving a list of agent policies with the ?full=true + parameter + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + revision: + type: number + supports_agentless: + description: >- + Indicates whether the agent policy supports agentless integrations. + Only allowed in a serverless environment. + type: boolean + unenroll_timeout: + type: integer + unprivileged_agents: + type: number + updated_by: + type: string + updated_on: + format: date-time + type: string + required: + - id + - status + - name + - namespace + Fleet_agent_policy_create_request: + title: Create agent policy request + type: object + properties: + agent_features: + items: + type: object + properties: + enabled: + type: boolean + name: + type: string + required: + - name + - enabled + type: array + data_output_id: + nullable: true + type: string + description: + type: string + download_source_id: + nullable: true + type: string + fleet_server_host_id: + nullable: true + type: string + force: + description: Force agent policy creation even if packages are not verified. + type: boolean + global_data_tags: + items: + additionalProperties: + oneOf: + - type: string + - type: number + description: >- + User defined data tags that are added to all of the inputs. The + values can be strings or numbers. + type: object + type: array + id: + type: string + inactivity_timeout: + type: integer + is_protected: + type: boolean + monitoring_enabled: + items: + enum: + - metrics + - logs + type: string + type: array + monitoring_output_id: + nullable: true + type: string + name: + type: string + namespace: + type: string + unenroll_timeout: + type: integer + required: + - name + - namespace + Fleet_agent_policy_full: + oneOf: + - type: object + properties: + item: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - category.keyword: - count: 0 - name: category.keyword + - type: object + properties: + item: + $ref: '#/components/schemas/Fleet_full_agent_policy' + title: Agent policy full response + type: object + Fleet_agent_policy_update_request: + title: Update agent policy request + type: object + properties: + agent_features: + items: + type: object + properties: + enabled: + type: boolean + name: + type: string + required: + - name + - enabled + type: array + data_output_id: + nullable: true + type: string + description: + type: string + download_source_id: + nullable: true + type: string + fleet_server_host_id: + nullable: true + type: string + force: + description: Force agent policy creation even if packages are not verified. + type: boolean + inactivity_timeout: + type: integer + is_protected: + type: boolean + monitoring_enabled: + items: + enum: + - metrics + - logs + type: string + type: array + monitoring_output_id: + nullable: true + type: string + name: + type: string + namespace: + type: string + unenroll_timeout: + type: integer + required: + - name + - namespace + Fleet_agent_status: + enum: + - offline + - error + - online + - inactive + - warning + title: Elastic Agent status + type: string + Fleet_agent_type: + enum: + - PERMANENT + - EPHEMERAL + - TEMPORARY + title: Agent type + type: string + Fleet_bulk_install_packages_response: + title: Bulk install packages response + type: object + properties: + items: + items: + type: object + properties: + name: + type: string + version: + type: string + type: array + response: + deprecated: true + items: + type: object + properties: + name: + type: string + version: + type: string + type: array + required: + - items + Fleet_bulk_upgrade_agents: + title: Bulk upgrade agents + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + force: + description: 'Force upgrade, skipping validation (should be used with caution)' + type: boolean + rollout_duration_seconds: + description: rolling upgrade window duration in seconds + type: number + skipRateLimitCheck: + description: Skip rate limit check for upgrade + type: boolean + source_uri: + description: alternative upgrade binary download url + type: string + start_time: + description: start time of upgrade in ISO 8601 format + type: string + version: + description: version to upgrade to + type: string + required: + - agents + - version + Fleet_data_stream: + title: Data stream + type: object + properties: + dashboard: + items: + type: object + properties: + id: + type: string + title: + type: string + type: array + dataset: + type: string + index: + type: string + last_activity_ms: + type: number + namespace: + type: string + package: + type: string + package_version: + type: string + size_in_bytes: + type: number + size_in_bytes_formatted: + type: string + type: + type: string + Fleet_download_sources: + title: Download Source + type: object + properties: + host: + type: string + id: + type: string + is_default: + type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this download source. See the proxies + API for more information. + nullable: true + type: string + required: + - is_default + - name + - host + Fleet_elasticsearch_asset_type: + enum: + - component_template + - ingest_pipeline + - index_template + - ilm_policy + - transform + - data_stream_ilm_policy + title: Elasticsearch asset type + type: string + Fleet_enrollment_api_key: + title: Enrollment API key + type: object + properties: + active: + type: boolean + api_key: + type: string + api_key_id: + type: string + created_at: + type: string + id: + type: string + name: + type: string + policy_id: + type: string + required: + - id + - api_key_id + - api_key + - active + - created_at + Fleet_fleet_server_host: + title: Fleet Server Host + type: object + properties: + host_urls: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_internal: + type: boolean + is_preconfigured: + type: boolean + name: + type: string + proxy_id: + type: string + required: + - fleet_server_hosts + - id + - is_default + - is_preconfigured + - host_urls + Fleet_fleet_settings_enrollment_response: + title: Fleet settings response + type: object + properties: + download_source: + $ref: '#/components/schemas/Fleet_download_sources' + fleet_server: + type: object + properties: + has_active: + type: boolean + host: + $ref: '#/components/schemas/Fleet_fleet_server_host' + host_proxy: + $ref: '#/components/schemas/Fleet_proxies' + policies: + items: + type: object + properties: + download_source_id: + type: string + fleet_server_host_id: + type: string + has_fleet_server: + type: boolean + id: + type: string + is_default_fleet_server: + type: boolean + is_managed: + type: boolean + name: + type: string + required: + - id + - name + - is_managed + type: array + required: + - agent_policies + - has_active + required: + - fleet_server + Fleet_fleet_settings_response: + title: Fleet settings response + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_settings' + required: + - item + Fleet_fleet_setup_response: + title: Fleet Setup response + type: object + properties: + isInitialized: + type: boolean + nonFatalErrors: + items: + type: object + properties: + message: + type: string + name: + type: string + required: + - name + - message + type: array + required: + - isInitialized + - nonFatalErrors + Fleet_fleet_status_response: + title: Fleet status response + type: object + properties: + isReady: + type: boolean + missing_optional_features: + items: + enum: + - encrypted_saved_object_encryption_key_required + type: string + type: array + missing_requirements: + items: + enum: + - tls_required + - api_keys + - fleet_admin_user + - fleet_server + type: string + type: array + package_verification_key_id: + type: string + required: + - isReady + - missing_requirements + - missing_optional_features + Fleet_full_agent_policy: + title: Full agent policy + type: object + properties: + agent: + nullable: true + type: string + fleet: + oneOf: + - type: object + properties: + hosts: + items: + type: string + type: array + proxy_headers: {} + proxy_url: + type: string + ssl: + type: object + properties: + certificate: + type: string + certificate_authorities: + items: + type: string + type: array + key: + type: string + renegotiation: + type: string + verification_mode: + type: string + - type: object + properties: + kibana: + type: object + properties: + hosts: + items: + type: string + type: array + path: + type: string + protocol: + type: string + id: + type: string + inputs: + type: string + output_permissions: + additionalProperties: + type: object + properties: + data: + $ref: >- + #/components/schemas/Fleet_full_agent_policy_output_permissions + output: + type: integer + type: object + outputs: + additionalProperties: + $ref: '#/components/schemas/Fleet_full_agent_policy_output' + type: object + revision: + type: number + secret_references: + items: + type: object + properties: + id: + type: string + type: array + required: + - id + - outputs + - inputs + Fleet_full_agent_policy_input: + allOf: + - additionalProperties: true + type: object + properties: + data_stream: + type: object + properties: + namespace: + type: string + required: + - namespace + id: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: category - format: - id: string - shortDotsEnable: false - isMapped: true - currency: - count: 0 - name: currency + meta: + additionalProperties: true + type: object + properties: + package: + type: object + properties: + name: + type: string + version: + type: string + required: + - name + - version + name: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - customer_birth_date: - count: 0 - name: customer_birth_date - type: date - esTypes: - - date - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: date - shortDotsEnable: false - isMapped: true - customer_first_name: - count: 0 - name: customer_first_name + revision: + type: number + streams: + $ref: '#/components/schemas/Fleet_full_agent_policy_input_stream' + type: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - customer_first_name.keyword: - count: 0 - name: customer_first_name.keyword + use_output: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: customer_first_name - format: - id: string - shortDotsEnable: false - isMapped: true - customer_full_name: - count: 0 - name: customer_full_name + required: + - id + - name + - revision + - type + - data_stream + - use_output + title: Full agent policy input + Fleet_full_agent_policy_input_stream: + allOf: + - additionalProperties: true + type: object + properties: + data_stream: + type: object + properties: + dataset: + type: string + type: + type: string + required: + - dataset + - type + id: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - customer_full_name.keyword: - count: 0 - name: customer_full_name.keyword + required: + - id + - data_stream + title: Full agent policy input stream + Fleet_full_agent_policy_output: + title: Full agent policy + type: object + properties: + additionalProperties: + type: object + properties: + text: {} + ca_sha256: + nullable: true + type: string + hosts: + items: + type: string + type: array + proxy_headers: {} + proxy_url: + type: string + type: {} + required: + - type + - hosts + - ca_sha256 + Fleet_full_agent_policy_output_permissions: + additionalProperties: + type: object + properties: + data: + type: object + properties: + cluster: + items: + type: string + type: array + indices: + items: + type: object + properties: + names: + items: + type: string + type: array + privileges: + items: + type: string + type: array + type: array + packagePolicyName: + type: string + title: Full agent policy output permissions + Fleet_get_agent_tags_response: + title: Get Agent Tags response + type: object + properties: + items: + items: + type: string + type: array + Fleet_get_agents_response: + title: Get Agent response + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent' + type: array + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_agent' + type: array + page: + type: number + perPage: + type: number + statusSummary: + type: object + properties: + degraded': + type: number + enrolling: + type: number + error: + type: number + inactive: + type: number + offline: + type: number + online: + type: number + unenrolled: + type: number + unenrolling: + type: number + updating: + type: number + total: + type: number + required: + - items + - total + - page + - perPage + Fleet_get_bulk_assets_response: + deprecated: true + properties: + items: + items: + type: object + properties: + appLink: + type: string + attributes: + type: object + properties: + description: + type: string + title: + type: string + id: + type: string + type: + $ref: '#/components/schemas/Fleet_saved_object_type' + updatedAt: + type: string + type: array + required: + - items + title: Bulk get assets response + type: object + Fleet_get_categories_response: + title: Get categories response + type: object + properties: + items: + items: + type: object + properties: + count: + type: number + id: + type: string + title: + type: string + required: + - id + - title + - count + type: array + response: + items: + deprecated: true + type: object + properties: + count: + type: number + id: + type: string + title: + type: string + required: + - id + - title + - count + type: array + required: + - items + Fleet_get_packages_response: + title: Get Packages response + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_search_result' + type: array + response: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_search_result' + type: array + required: + - items + Fleet_installation_info: + title: Installation info object + type: object + properties: + created_at: + type: string + experimental_data_stream_features: + type: array + properties: + data_stream: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: customer_full_name - format: - id: string - shortDotsEnable: false - isMapped: true - customer_gender: - count: 0 - name: customer_gender + features: + type: object + properties: + doc_value_only_numeric: + nullable: true + type: boolean + doc_value_only_other: + nullable: true + type: boolean + synthetic_source: + nullable: true + type: boolean + tsdb: + nullable: true + type: boolean + install_format_schema_version: + type: string + install_kibana_space_id: + type: string + install_source: + enum: + - registry + - upload + - bundled + type: string + install_status: + enum: + - installed + - installing + - install_failed + type: string + installed_es: + type: object + properties: + deferred: + type: boolean + id: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - customer_id: - count: 0 - name: customer_id + type: + $ref: '#/components/schemas/Fleet_elasticsearch_asset_type' + installed_kibana: + type: object + properties: + id: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - customer_last_name: - count: 0 - name: customer_last_name + type: + $ref: '#/components/schemas/Fleet_kibana_saved_object_type' + latest_executed_state: + description: Latest successfully executed state in package install state machine + type: object + properties: + error: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - customer_last_name.keyword: - count: 0 - name: customer_last_name.keyword + name: + enum: + - create_restart_installation + - install_kibana_assets + - install_ilm_policies + - install_ml_model + - install_index_template_pipelines + - remove_legacy_templates + - update_current_write_indices + - install_transforms + - delete_previous_pipelines + - save_archive_entries_from_assets_map + - update_so type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: customer_last_name - format: - id: string - shortDotsEnable: false - isMapped: true - customer_phone: - count: 0 - name: customer_phone + started_at: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - day_of_week: - count: 0 - name: day_of_week + latest_install_failed_attempts: + description: Latest failed install errors + items: + type: object + properties: + created_at: + type: string + error: + type: object + properties: + message: + type: string + name: + type: string + stack: + type: string + target_version: + type: string + type: array + name: + type: string + namespaces: + items: + type: string + type: array + type: + type: string + updated_at: + type: string + verification_key_id: + nullable: true + type: string + verification_status: + enum: + - verified + - unverified + - unknown + type: string + version: + type: string + required: + - installed_kibana + - installed_es + - name + - version + - install_status + - install_version + - install_started_at + - install_source + - verification_status + - latest_install_failed_attempts + Fleet_kibana_saved_object_type: + enum: + - dashboard + - visualization + - search + - index-pattern + - map + - lens + - ml-module + - security-rule + - csp_rule_template + title: Kibana saved object asset type + type: string + Fleet_new_package_policy: + description: '' + properties: + description: + type: string + enabled: + type: boolean + inputs: + items: + type: object + properties: + config: + type: object + enabled: + type: boolean + processors: + items: + type: string + type: array + streams: + items: {} + type: array + type: + type: string + vars: + type: object + required: + - type + - enabled + type: array + name: + type: string + namespace: + type: string + output_id: + type: string + overrides: + type: object + package: + type: object + properties: + name: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - day_of_week_i: - count: 0 - name: day_of_week_i - type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - email: - count: 0 - name: email + requires_root: + type: boolean + title: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - event.dataset: - count: 0 - name: event.dataset + version: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - geoip.city_name: - count: 0 - name: geoip.city_name + required: + - name + - version + policy_id: + deprecated: true + type: string + policy_ids: + items: + type: string + type: array + required: + - inputs + - name + title: New package policy + type: object + Fleet_output_create_request: + discriminator: + mapping: + elasticsearch: '#/components/schemas/Fleet_output_create_request_elasticsearch' + kafka: '#/components/schemas/Fleet_output_create_request_kafka' + logstash: '#/components/schemas/Fleet_output_create_request_logstash' + remote_elasticsearch: >- + #/components/schemas/Fleet_output_create_request_remote_elasticsearch + propertyName: type + oneOf: + - $ref: '#/components/schemas/Fleet_output_create_request_elasticsearch' + - $ref: '#/components/schemas/Fleet_output_create_request_kafka' + - $ref: '#/components/schemas/Fleet_output_create_request_logstash' + - $ref: >- + #/components/schemas/Fleet_output_create_request_remote_elasticsearch + title: Output + Fleet_output_create_request_elasticsearch: + title: elasticsearch + type: object + properties: + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + config: + type: object + config_yaml: + type: string + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + preset: + enum: + - balanced + - custom + - throughput + - scale + - latency + type: string + proxy_id: + type: string + shipper: + type: object + properties: + compression_level: + type: number + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: + type: number + disk_queue_path: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - geoip.continent_name: - count: 0 - name: geoip.continent_name + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - geoip.country_iso_code: - count: 0 - name: geoip.country_iso_code + certificate_authorities: + items: + type: string + type: array + key: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - geoip.location: - count: 0 - name: geoip.location - type: geo_point - esTypes: - - geo_point - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: geo_point - params: - transform: wkt - shortDotsEnable: false - isMapped: true - geoip.region_name: - count: 0 - name: geoip.region_name + type: + enum: + - elasticsearch + type: string + required: + - name + Fleet_output_create_request_kafka: + title: kafka + type: object + properties: + auth_type: + type: string + broker_timeout: + type: number + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + client_id: + type: string + compression: + type: string + compression_level: + type: number + config: + type: object + config_yaml: + type: string + connection_type: + enum: + - plaintext + - encryption + type: string + headers: + items: + type: object + properties: + key: + type: string + value: + type: string + type: array + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + key: + type: string + name: + type: string + partition: + type: string + password: + type: string + proxy_id: + type: string + random: + type: object + properties: + group_events: + type: number + required_acks: + type: number + round_robin: + type: object + properties: + group_events: + type: number + sasl: + type: object + properties: + mechanism: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - manufacturer: - count: 0 - name: manufacturer + secrets: + type: object + properties: + password: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - manufacturer.keyword: - count: 0 - name: manufacturer.keyword + ssl: + type: object + properties: + key: + type: string + shipper: + type: object + properties: + compression_level: + type: number + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: + type: number + disk_queue_path: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: manufacturer - format: - id: string - shortDotsEnable: false - isMapped: true - order_date: - count: 0 - name: order_date - type: date - esTypes: - - date - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: date - shortDotsEnable: false - isMapped: true - order_id: - count: 0 - name: order_id + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - products._id: - count: 0 - name: products._id + certificate_authorities: + items: + type: string + type: array + key: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - products._id.keyword: - count: 0 - name: products._id.keyword + verification_mode: + enum: + - none + - full + - certificate + - strict type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: products._id - format: - id: string - shortDotsEnable: false - isMapped: true - products.base_price: - count: 0 - name: products.base_price + timeout: + type: number + topic: + type: string + topics: + deprecated: true + description: Use topic instead. + items: + type: object + properties: + topic: + type: string + when: + deprecated: true + description: >- + Deprecated, kafka output do not support conditionnal topics + anymore. + type: object + properties: + condition: + type: string + type: + type: string + type: array + type: + enum: + - kafka + type: string + username: + type: string + version: + type: string + required: + - name + - type + - topics + - auth_type + - hosts + Fleet_output_create_request_logstash: + title: logstash + type: object + properties: + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + config: + type: object + config_yaml: + type: string + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + type: string + secrets: + type: object + properties: + ssl: + type: object + properties: + key: + type: string + shipper: + type: object + properties: + compression_level: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.base_unit_price: - count: 0 - name: products.base_unit_price + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.category: - count: 0 - name: products.category + disk_queue_path: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - products.category.keyword: - count: 0 - name: products.category.keyword + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: products.category - format: - id: string - shortDotsEnable: false - isMapped: true - products.created_on: - count: 0 - name: products.created_on - type: date - esTypes: - - date - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: date - shortDotsEnable: false - isMapped: true - products.discount_amount: - count: 0 - name: products.discount_amount + certificate_authorities: + items: + type: string + type: array + key: + type: string + type: + enum: + - logstash + type: string + required: + - name + - hosts + - type + Fleet_output_create_request_remote_elasticsearch: + title: remote_elasticsearch + type: object + properties: + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + secrets: + type: object + properties: + service_token: + type: string + service_token: + type: string + type: + enum: + - remote_elasticsearch + type: string + required: + - name + Fleet_output_update_request: + discriminator: + mapping: + elasticsearch: '#/components/schemas/Fleet_output_update_request_elasticsearch' + kafka: '#/components/schemas/Fleet_output_update_request_kafka' + logstash: '#/components/schemas/Fleet_output_update_request_logstash' + propertyName: type + oneOf: + - $ref: '#/components/schemas/Fleet_output_update_request_elasticsearch' + - $ref: '#/components/schemas/Fleet_output_update_request_kafka' + - $ref: '#/components/schemas/Fleet_output_update_request_logstash' + title: Output + Fleet_output_update_request_elasticsearch: + title: elasticsearch + type: object + properties: + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + config: + type: object + config_yaml: + type: string + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + preset: + enum: + - balanced + - custom + - throughput + - scale + - latency + type: string + proxy_id: + type: string + shipper: + type: object + properties: + compression_level: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.discount_percentage: - count: 0 - name: products.discount_percentage + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.manufacturer: - count: 1 - name: products.manufacturer + disk_queue_path: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - products.manufacturer.keyword: - count: 0 - name: products.manufacturer.keyword + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: products.manufacturer - format: - id: string - shortDotsEnable: false - isMapped: true - products.min_price: - count: 0 - name: products.min_price + certificate_authorities: + items: + type: string + type: array + key: + type: string + type: + enum: + - elasticsearch + type: string + required: + - name + - hosts + - type + Fleet_output_update_request_kafka: + title: kafka + type: object + properties: + auth_type: + type: string + broker_timeout: + type: number + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + client_id: + type: string + compression: + type: string + compression_level: + type: number + config: + type: object + config_yaml: + type: string + connection_type: + enum: + - plaintext + - encryption + type: string + headers: + items: + type: object + properties: + key: + type: string + value: + type: string + type: array + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + key: + type: string + name: + type: string + partition: + type: string + password: + type: string + proxy_id: + type: string + random: + type: object + properties: + group_events: + type: number + required_acks: + type: number + round_robin: + type: object + properties: + group_events: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.price: - count: 1 - name: products.price + sasl: + type: object + properties: + mechanism: + type: string + shipper: + type: object + properties: + compression_level: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.product_id: - count: 0 - name: products.product_id + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: type: number - esTypes: - - long - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.product_name: - count: 1 - name: products.product_name + disk_queue_path: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - products.product_name.keyword: - count: 0 - name: products.product_name.keyword + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: products.product_name - format: - id: string - shortDotsEnable: false - isMapped: true - products.quantity: - count: 0 - name: products.quantity - type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.sku: - count: 0 - name: products.sku + certificate_authorities: + items: + type: string + type: array + key: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - products.tax_amount: - count: 0 - name: products.tax_amount - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.taxful_price: - count: 0 - name: products.taxful_price - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.taxless_price: - count: 0 - name: products.taxless_price + verification_mode: + enum: + - none + - full + - certificate + - strict + type: string + timeout: + type: number + topic: + type: string + topics: + deprecated: true + description: Use topic instead. + items: + type: object + properties: + topic: + type: string + when: + deprecated: true + description: >- + Deprecated, kafka output do not support conditionnal topics + anymore. + type: object + properties: + condition: + type: string + type: + type: string + type: array + type: + enum: + - kafka + type: string + username: + type: string + version: + type: string + required: + - name + Fleet_output_update_request_logstash: + title: logstash + type: object + properties: + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + config: + type: object + config_yaml: + type: string + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + type: string + shipper: + type: object + properties: + compression_level: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.unit_discount_amount: - count: 0 - name: products.unit_discount_amount + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - sku: - count: 0 - name: sku + disk_queue_path: + type: string + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: + type: string + certificate_authorities: + items: + type: string + type: array + key: + type: string + type: + enum: + - logstash + type: string + required: + - name + Fleet_package_info: + title: Package information + type: object + properties: + assets: + items: + type: string + type: array + categories: + items: + type: string + type: array + conditions: + type: object + properties: + elasticsearch: + type: object + properties: + subscription: + enum: + - basic + - gold + - platinum + - enterprise + type: string + kibana: + type: object + properties: + versions: + type: string + data_streams: + items: + type: object + properties: + ingeset_pipeline: + type: string + name: + type: string + package: + type: string + release: + type: string + title: + type: string + type: + type: string + vars: + items: + type: object + properties: + default: + type: string + name: + type: string + required: + - name + - default + type: array + required: + - title + - name + - release + - ingeset_pipeline + - type + - package + type: array + description: + type: string + download: + type: string + elasticsearch: + type: object + properties: + privileges: + type: object + properties: + cluster: + items: + type: string + type: array + format_version: + type: string + icons: + items: + type: string + type: array + internal: + type: boolean + name: + type: string + path: + type: string + readme: + type: string + release: + deprecated: true + description: >- + release label is deprecated, derive from the version instead + (packages follow semver) + enum: + - experimental + - beta + - ga + type: string + screenshots: + items: + type: object + properties: + path: + type: string + size: + type: string + src: + type: string + title: + type: string + type: + type: string + required: + - src + - path + type: array + source: + type: object + properties: + license: + enum: + - Apache-2.0 + - Elastic-2.0 type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - taxful_total_price: - count: 0 - name: taxful_total_price - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.[00] - shortDotsEnable: false - isMapped: true - taxless_total_price: - count: 0 - name: taxless_total_price - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - total_quantity: - count: 1 - name: total_quantity + title: + type: string + type: + type: string + version: + type: string + required: + - name + - title + - version + - description + - type + - categories + - conditions + - assets + - format_version + - download + - path + Fleet_package_policy: + allOf: + - type: object + properties: + id: + type: string + inputs: + oneOf: + - items: {} + type: array + - type: object + revision: type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - total_unique_products: - count: 0 - name: total_unique_products + required: + - id + - revision + - $ref: '#/components/schemas/Fleet_new_package_policy' + title: Package policy + Fleet_package_policy_request: + title: Package Policy Request + type: object + properties: + description: + description: Package policy description + example: my description + type: string + force: + description: >- + Force package policy creation even if package is not verified, or if + the agent policy is managed. + type: boolean + id: + description: Package policy unique identifier + type: string + inputs: + additionalProperties: + type: object + properties: + enabled: + description: 'enable or disable that input, (default to true)' + type: boolean + streams: + additionalProperties: + type: object + properties: + enabled: + description: 'enable or disable that stream, (default to true)' + type: boolean + vars: + description: >- + Stream level variable (see integration documentation for + more information) + type: object + description: >- + Input streams (see integration documentation to know what + streams are available) + type: object + vars: + description: >- + Input level variable (see integration documentation for more + information) + type: object + description: >- + Package policy inputs (see integration documentation to know what + inputs are available) + example: + nginx-logfile: + enabled: true + streams: + nginx.access: + enabled: true + vars: + ignore_older: 72h + paths: + - /var/log/nginx/access.log* + preserve_original_event: false + tags: + - nginx-access + type: object + name: + description: Package policy name (should be unique) + example: nginx-123 + type: string + namespace: + description: >- + The package policy namespace. Leave blank to inherit the agent + policy's namespace. + example: customnamespace + type: string + overrides: + description: >- + Override settings that are defined in the package policy. The + override option should be used only in unusual circumstances and not + as a routine procedure. + nullable: true + type: object + properties: + inputs: + type: object + package: + type: object + properties: + name: + description: Package name + example: nginx + type: string + version: + description: Package version + example: 1.6.0 + type: string + required: + - name + - version + policy_id: + deprecated: true + description: Agent policy ID where that package policy will be added + example: agent-policy-id + type: string + policy_ids: + description: Agent policy IDs where that package policy will be added + example: + - agent-policy-id + items: + type: string + type: array + vars: + description: >- + Package root level variable (see integration documentation for more + information) + type: object + required: + - name + - package + Fleet_package_usage_stats: + title: Package usage stats + type: object + properties: + agent_policy_count: + type: integer + required: + - agent_policy_count + Fleet_proxies: + title: Fleet Proxy + type: object + properties: + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + id: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string + required: + - name + - url + Fleet_saved_object_type: + oneOf: + - enum: + - dashboard + - visualization + - search + - index_pattern + - map + - lens + - security_rule + - csp_rule_template + - ml_module + - tag + - osquery_pack_asset + - osquery_saved_query + type: string + - enum: + - index + - component_template + - ingest_pipeline + - index_template + - ilm_policy + - transform + - data_stream_ilm_policy + - ml_model + type: string + title: Saved Object type + Fleet_search_result: + title: Search result + type: object + properties: + description: + type: string + download: + type: string + icons: + type: string + installationInfo: + $ref: '#/components/schemas/Fleet_installation_info' + name: + type: string + path: + type: string + savedObject: + deprecated: true + type: object + status: + type: string + title: + type: string + type: + type: string + version: + type: string + required: + - description + - download + - icons + - name + - path + - title + - type + - version + - status + Fleet_settings: + title: Settings + type: object + properties: + fleet_server_hosts: + deprecated: true + items: + type: string + type: array + has_seen_add_data_notice: + type: boolean + id: + type: string + prerelease_integrations_enabled: + type: boolean + required: + - fleet_server_hosts + - id + Fleet_upgrade_agent: + title: Upgrade agent + type: object + properties: + force: + description: 'Force upgrade, skipping validation (should be used with caution)' + type: boolean + skipRateLimitCheck: + description: Skip rate limit check for upgrade + type: boolean + source_uri: + type: string + version: + type: string + required: + - version + Fleet_upgrade_agent_diff: + items: + items: + $ref: '#/components/schemas/Fleet_full_agent_policy_input' + type: array + title: Package policy Upgrade dryrun + type: array + Fleet_upgrade_diff: + items: + allOf: + - $ref: '#/components/schemas/Fleet_package_policy' + - allOf: + - $ref: '#/components/schemas/Fleet_new_package_policy' + - type: object + properties: + errors: + items: + type: object + properties: + key: + type: string + message: + type: string + type: array + missingVars: + items: + type: string + type: array + type: object + title: Package policy Upgrade dryrun + type: array + Kibana_HTTP_APIs_core_status_redactedResponse: + additionalProperties: false + description: A minimal representation of Kibana's operational status. + type: object + properties: + status: + additionalProperties: false + type: object + properties: + overall: + additionalProperties: false + type: object + properties: + level: + description: Service status levels as human and machine readable values. + enum: + - available + - degraded + - unavailable + - critical + type: string + required: + - level + required: + - overall + required: + - status + Kibana_HTTP_APIs_core_status_response: + additionalProperties: false + description: >- + Kibana's operational status as well as a detailed breakdown of plugin + statuses indication of various loads (like event loop utilization and + network traffic) at time of request. + type: object + properties: + metrics: + additionalProperties: false + description: Metric groups collected by Kibana. + type: object + properties: + collection_interval_in_millis: + description: The interval at which metrics should be collected. type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - type: - count: 0 - name: type - type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - user: - count: 0 - name: user + elasticsearch_client: + additionalProperties: false + description: Current network metrics of Kibana's Elasticsearch client. + type: object + properties: + totalActiveSockets: + description: Count of network sockets currently in use. + type: number + totalIdleSockets: + description: Count of network sockets currently idle. + type: number + totalQueuedRequests: + description: Count of requests not yet assigned to sockets. + type: number + required: + - totalActiveSockets + - totalIdleSockets + - totalQueuedRequests + last_updated: + description: The time metrics were collected. type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - typeMeta: {} - fieldFormats: - taxful_total_price: - id: number - params: - pattern: $0,0.[00] - products.price: - id: number - params: - pattern: $0,0.00 - taxless_total_price: - id: number - params: - pattern: $0,0.00 - products.taxless_price: - id: number - params: - pattern: $0,0.00 - products.taxful_price: - id: number - params: - pattern: $0,0.00 - products.min_price: - id: number - params: - pattern: $0,0.00 - products.base_unit_price: - id: number - params: - pattern: $0,0.00 - products.base_price: - id: number - params: - pattern: $0,0.00 - runtimeFieldMap: {} - fieldAttrs: - products.manufacturer: - count: 1 - products.price: - count: 1 - products.product_name: - count: 1 - total_quantity: - count: 1 - allowNoIndex: false - name: Kibana Sample Data eCommerce - namespaces: - - default - Data_views_update_data_view_request: - summary: Update some properties for a data view. - value: - data_view: - title: kibana_sample_data_ecommerce - timeFieldName: order_date - allowNoIndex: false - name: Kibana Sample Data eCommerce - refresh_fields: true - Data_views_update_field_metadata_request: - summary: Update metadata for multiple fields. - value: - fields: - field1: - count: 123 - customLabel: Field 1 label - field2: - customLabel: Field 2 label - customDescription: Field 2 description - Data_views_create_runtime_field_request: - summary: Create a runtime field. - value: - name: runtimeFoo - runtimeField: - type: long - script: - source: emit(doc["foo"].value) - Data_views_get_runtime_field_response: - summary: >- - The get runtime field API returns a JSON object that contains - information about the runtime field (`hour_of_day`) and the data view - (`d3d7af60-4c81-11e8-b3d7-01146121b73d`). - value: - fields: - - count: 0 - name: hour_of_day - type: number - esTypes: - - long - scripted: false - searchable: true - aggregatable: true - readFromDocValues: false - shortDotsEnable: false - runtimeField: - type: long - script: - source: emit(doc['timestamp'].value.getHour()); - data_view: - id: d3d7af60-4c81-11e8-b3d7-01146121b73d - version: WzM2LDJd - title: kibana_sample_data_flights - timeFieldName: timestamp - sourceFilters: [] - fields: - hour_of_day: - count: 0 - name: hour_of_day - type: number - esTypes: - - long - scripted: false - searchable: true - aggregatable: true - readFromDocValues: false - format: - id: number - params: - pattern: '00' - shortDotsEnable: false - runtimeField: - type: long - script: - source: emit(doc['timestamp'].value.getHour()); - AvgTicketPrice: - count: 0 - name: AvgTicketPrice + required: + - elasticsearch_client + - last_updated + - collection_interval_in_millis + name: + description: Kibana instance name. + type: string + status: + additionalProperties: false + type: object + properties: + core: + additionalProperties: false + description: Statuses of core Kibana services. + type: object + properties: + elasticsearch: + additionalProperties: false + type: object + properties: + detail: + description: Human readable detail of the service status. + type: string + documentationUrl: + description: A URL to further documentation regarding this service. + type: string + level: + description: >- + Service status levels as human and machine readable + values. + enum: + - available + - degraded + - unavailable + - critical + type: string + meta: + additionalProperties: {} + description: >- + An unstructured set of extra metadata about this + service. + type: object + summary: + description: A human readable summary of the service status. + type: string + required: + - level + - summary + - meta + savedObjects: + additionalProperties: false + type: object + properties: + detail: + description: Human readable detail of the service status. + type: string + documentationUrl: + description: A URL to further documentation regarding this service. + type: string + level: + description: >- + Service status levels as human and machine readable + values. + enum: + - available + - degraded + - unavailable + - critical + type: string + meta: + additionalProperties: {} + description: >- + An unstructured set of extra metadata about this + service. + type: object + summary: + description: A human readable summary of the service status. + type: string + required: + - level + - summary + - meta + required: + - elasticsearch + - savedObjects + overall: + additionalProperties: false + type: object + properties: + detail: + description: Human readable detail of the service status. + type: string + documentationUrl: + description: A URL to further documentation regarding this service. + type: string + level: + description: Service status levels as human and machine readable values. + enum: + - available + - degraded + - unavailable + - critical + type: string + meta: + additionalProperties: {} + description: An unstructured set of extra metadata about this service. + type: object + summary: + description: A human readable summary of the service status. + type: string + required: + - level + - summary + - meta + plugins: + additionalProperties: + additionalProperties: false + type: object + properties: + detail: + description: Human readable detail of the service status. + type: string + documentationUrl: + description: A URL to further documentation regarding this service. + type: string + level: + description: >- + Service status levels as human and machine readable + values. + enum: + - available + - degraded + - unavailable + - critical + type: string + meta: + additionalProperties: {} + description: An unstructured set of extra metadata about this service. + type: object + summary: + description: A human readable summary of the service status. + type: string + required: + - level + - summary + - meta + description: A dynamic mapping of plugin ID to plugin status. + type: object + required: + - overall + - core + - plugins + uuid: + description: >- + Unique, generated Kibana instance UUID. This UUID should persist + even if the Kibana process restarts. + type: string + version: + additionalProperties: false + type: object + properties: + build_date: + description: The date and time of this build. + type: string + build_flavor: + description: >- + The build flavour determines configuration and behavior of + Kibana. On premise users will almost always run the + "traditional" flavour, while other flavours are reserved for + Elastic-specific use cases. + enum: + - serverless + - traditional + type: string + build_hash: + description: >- + A unique hash value representing the git commit of this Kibana + build. + type: string + build_number: + description: >- + A monotonically increasing number, each subsequent build will + have a higher number. type: number - esTypes: - - float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.[00] - shortDotsEnable: false - isMapped: true - Cancelled: - count: 0 - name: Cancelled + build_snapshot: + description: Whether this build is a snapshot build. type: boolean - esTypes: - - boolean - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: boolean - shortDotsEnable: false - isMapped: true - Carrier: - count: 0 - name: Carrier + number: + description: A semantic version number. + type: string + required: + - number + - build_hash + - build_number + - build_snapshot + - build_flavor + - build_date + required: + - name + - uuid + - version + - status + - metrics + Machine_learning_APIs_mlSync200Response: + properties: + datafeedsAdded: + additionalProperties: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseDatafeeds' + description: >- + If a saved object for an anomaly detection job is missing a datafeed + identifier, it is added when you run the sync machine learning saved + objects API. + type: object + datafeedsRemoved: + additionalProperties: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseDatafeeds' + description: >- + If a saved object for an anomaly detection job references a datafeed + that no longer exists, it is deleted when you run the sync machine + learning saved objects API. + type: object + savedObjectsCreated: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseSavedObjectsCreated + savedObjectsDeleted: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseSavedObjectsDeleted + title: Successful sync API response + type: object + Machine_learning_APIs_mlSync4xxResponse: + properties: + error: + example: Unauthorized + type: string + message: + type: string + statusCode: + example: 401 + type: integer + title: Unsuccessful sync API response + type: object + Machine_learning_APIs_mlSyncResponseAnomalyDetectors: + description: >- + The sync machine learning saved objects API response contains this + object when there are anomaly detection jobs affected by the + synchronization. There is an object for each relevant job, which + contains the synchronization status. + properties: + success: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' + title: Sync API response for anomaly detection jobs + type: object + Machine_learning_APIs_mlSyncResponseDatafeeds: + description: >- + The sync machine learning saved objects API response contains this + object when there are datafeeds affected by the synchronization. There + is an object for each relevant datafeed, which contains the + synchronization status. + properties: + success: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' + title: Sync API response for datafeeds + type: object + Machine_learning_APIs_mlSyncResponseDataFrameAnalytics: + description: >- + The sync machine learning saved objects API response contains this + object when there are data frame analytics jobs affected by the + synchronization. There is an object for each relevant job, which + contains the synchronization status. + properties: + success: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' + title: Sync API response for data frame analytics jobs + type: object + Machine_learning_APIs_mlSyncResponseSavedObjectsCreated: + description: >- + If saved objects are missing for machine learning jobs or trained + models, they are created when you run the sync machine learning saved + objects API. + properties: + anomaly-detector: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseAnomalyDetectors + description: >- + If saved objects are missing for anomaly detection jobs, they are + created. + type: object + data-frame-analytics: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseDataFrameAnalytics + description: >- + If saved objects are missing for data frame analytics jobs, they are + created. + type: object + trained-model: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseTrainedModels + description: 'If saved objects are missing for trained models, they are created.' + type: object + title: Sync API response for created saved objects + type: object + Machine_learning_APIs_mlSyncResponseSavedObjectsDeleted: + description: >- + If saved objects exist for machine learning jobs or trained models that + no longer exist, they are deleted when you run the sync machine learning + saved objects API. + properties: + anomaly-detector: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseAnomalyDetectors + description: >- + If there are saved objects exist for nonexistent anomaly detection + jobs, they are deleted. + type: object + data-frame-analytics: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseDataFrameAnalytics + description: >- + If there are saved objects exist for nonexistent data frame + analytics jobs, they are deleted. + type: object + trained-model: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseTrainedModels + description: >- + If there are saved objects exist for nonexistent trained models, + they are deleted. + type: object + title: Sync API response for deleted saved objects + type: object + Machine_learning_APIs_mlSyncResponseSuccess: + description: The success or failure of the synchronization. + type: boolean + Machine_learning_APIs_mlSyncResponseTrainedModels: + description: >- + The sync machine learning saved objects API response contains this + object when there are trained models affected by the synchronization. + There is an object for each relevant trained model, which contains the + synchronization status. + properties: + success: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' + title: Sync API response for trained models + type: object + Serverless_saved_objects_400_response: + title: Bad request + type: object + properties: + error: + enum: + - Bad Request + type: string + message: + type: string + statusCode: + enum: + - 400 + type: integer + required: + - error + - message + - statusCode + SLOs_400_response: + title: Bad request + type: object + properties: + error: + example: Bad Request + type: string + message: + example: 'Invalid value ''foo'' supplied to: [...]' + type: string + statusCode: + example: 400 + type: number + required: + - statusCode + - error + - message + SLOs_401_response: + title: Unauthorized + type: object + properties: + error: + example: Unauthorized + type: string + message: + example: "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]" + type: string + statusCode: + example: 401 + type: number + required: + - statusCode + - error + - message + SLOs_403_response: + title: Unauthorized + type: object + properties: + error: + example: Unauthorized + type: string + message: + example: "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]" + type: string + statusCode: + example: 403 + type: number + required: + - statusCode + - error + - message + SLOs_404_response: + title: Not found + type: object + properties: + error: + example: Not Found + type: string + message: + example: 'SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found' + type: string + statusCode: + example: 404 + type: number + required: + - statusCode + - error + - message + SLOs_409_response: + title: Conflict + type: object + properties: + error: + example: Conflict + type: string + message: + example: 'SLO [d077e940-1515-11ee-9c50-9d096392f520] already exists' + type: string + statusCode: + example: 409 + type: number + required: + - statusCode + - error + - message + SLOs_budgeting_method: + description: The budgeting method to use when computing the rollup data. + enum: + - occurrences + - timeslices + example: occurrences + title: Budgeting method + type: string + SLOs_create_slo_request: + description: > + The create SLO API request body varies depending on the type of + indicator, time window and budgeting method. + properties: + budgetingMethod: + $ref: '#/components/schemas/SLOs_budgeting_method' + description: + description: A description for the SLO. + type: string + groupBy: + description: optional group by field to use to generate an SLO per distinct value + example: some.field + type: string + id: + description: >- + A optional and unique identifier for the SLO. Must be between 8 and + 36 chars + example: my-super-slo-id + type: string + indicator: + oneOf: + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' + - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' + - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + name: + description: A name for the SLO. + type: string + objective: + $ref: '#/components/schemas/SLOs_objective' + settings: + $ref: '#/components/schemas/SLOs_settings' + tags: + description: List of tags + items: + type: string + type: array + timeWindow: + $ref: '#/components/schemas/SLOs_time_window' + required: + - name + - description + - indicator + - timeWindow + - budgetingMethod + - objective + title: Create SLO request + type: object + SLOs_create_slo_response: + title: Create SLO response + type: object + properties: + id: + example: 8853df00-ae2e-11ed-90af-09bb6422b258 + type: string + required: + - id + SLOs_delete_slo_instances_request: + description: > + The delete SLO instances request takes a list of SLO id and instance id, + then delete the rollup and summary data. This API can be used to remove + the staled data of an instance SLO that no longer get updated. + properties: + list: + description: An array of slo id and instance id + items: + type: object + properties: + instanceId: + description: The SLO instance identifier + example: 8853df00-ae2e-11ed-90af-09bb6422b258 + type: string + sloId: + description: The SLO unique identifier + example: 8853df00-ae2e-11ed-90af-09bb6422b258 + type: string + required: + - sloId + - instanceId + type: array + required: + - list + title: Delete SLO instances request + type: object + SLOs_error_budget: + title: Error budget + type: object + properties: + consumed: + description: 'The error budget consummed, as a percentage of the initial value.' + example: 0.8 + type: number + initial: + description: 'The initial error budget, as 1 - objective' + example: 0.02 + type: number + isEstimated: + description: >- + Only for SLO defined with occurrences budgeting method and calendar + aligned time window. + example: true + type: boolean + remaining: + description: 'The error budget remaining, as a percentage of the initial value.' + example: 0.2 + type: number + required: + - initial + - consumed + - remaining + - isEstimated + SLOs_filter: + description: Defines properties for a filter + properties: + meta: + $ref: '#/components/schemas/SLOs_filter_meta' + query: + type: object + title: Filter + type: object + SLOs_filter_meta: + description: Defines properties for a filter + properties: + alias: + nullable: true + type: string + controlledBy: + type: string + disabled: + type: boolean + field: + type: string + group: + type: string + index: + type: string + isMultiIndex: + type: boolean + key: + type: string + negate: + type: boolean + params: + type: object + type: + type: string + value: + type: string + title: FilterMeta + type: object + SLOs_find_slo_response: + description: | + A paginated response of SLOs matching the query. + properties: + page: + example: 1 + type: number + perPage: + example: 25 + type: number + results: + items: + $ref: '#/components/schemas/SLOs_slo_with_summary_response' + type: array + total: + example: 34 + type: number + title: Find SLO response + type: object + SLOs_indicator_properties_apm_availability: + description: Defines properties for the APM availability indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + environment: + description: The APM service environment or "*" + example: production type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - Dest: - count: 0 - name: Dest + filter: + description: KQL query used for filtering the data + example: 'service.foo : "bar"' type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestAirportID: - count: 0 - name: DestAirportID + index: + description: The index used by APM metrics + example: 'metrics-apm*,apm*' type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestCityName: - count: 0 - name: DestCityName + service: + description: The APM service name + example: o11y-app type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestCountry: - count: 0 - name: DestCountry + transactionName: + description: The APM transaction name or "*" + example: GET /my/api type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestLocation: - count: 0 - name: DestLocation - type: geo_point - esTypes: - - geo_point - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: geo_point - params: - transform: wkt - shortDotsEnable: false - isMapped: true - DestRegion: - count: 0 - name: DestRegion + transactionType: + description: The APM transaction type or "*" + example: request + type: string + required: + - service + - environment + - transactionType + - transactionName + - index + type: + description: The type of indicator. + example: sli.apm.transactionDuration + type: string + required: + - type + - params + title: APM availability + SLOs_indicator_properties_apm_latency: + description: Defines properties for the APM latency indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + environment: + description: The APM service environment or "*" + example: production + type: string + filter: + description: KQL query used for filtering the data + example: 'service.foo : "bar"' + type: string + index: + description: The index used by APM metrics + example: 'metrics-apm*,apm*' + type: string + service: + description: The APM service name + example: o11y-app + type: string + threshold: + description: The latency threshold in milliseconds + example: 250 + type: number + transactionName: + description: The APM transaction name or "*" + example: GET /my/api + type: string + transactionType: + description: The APM transaction type or "*" + example: request + type: string + required: + - service + - environment + - transactionType + - transactionName + - index + - threshold + type: + description: The type of indicator. + example: sli.apm.transactionDuration + type: string + required: + - type + - params + title: APM latency + SLOs_indicator_properties_custom_kql: + description: Defines properties for a custom query indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + dataViewId: + description: >- + The kibana data view id to use, primarily used to include data + view runtime mappings. Make sure to save SLO again if you + add/update run time fields to the data view and if those fields + are being used in slo queries. + example: 03b80ab3-003d-498b-881c-3beedbaf1162 type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestWeather: - count: 0 - name: DestWeather + filter: + $ref: '#/components/schemas/SLOs_kql_with_filters' + good: + $ref: '#/components/schemas/SLOs_kql_with_filters_good' + index: + description: The index or index pattern to use + example: my-service-* type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DistanceKilometers: - count: 0 - name: DistanceKilometers - type: number - esTypes: - - float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - DistanceMiles: - count: 0 - name: DistanceMiles - type: number - esTypes: - - float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - FlightDelay: - count: 0 - name: FlightDelay - type: boolean - esTypes: - - boolean - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: boolean - shortDotsEnable: false - isMapped: true - FlightDelayMin: - count: 0 - name: FlightDelayMin - type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - FlightDelayType: - count: 0 - name: FlightDelayType + timestampField: + description: | + The timestamp field used in the source indice. + example: timestamp type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - FlightNum: - count: 0 - name: FlightNum + total: + $ref: '#/components/schemas/SLOs_kql_with_filters_total' + required: + - index + - timestampField + - good + - total + type: + description: The type of indicator. + example: sli.kql.custom + type: string + required: + - type + - params + title: Custom Query + SLOs_indicator_properties_custom_metric: + description: Defines properties for a custom metric indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + dataViewId: + description: >- + The kibana data view id to use, primarily used to include data + view runtime mappings. Make sure to save SLO again if you + add/update run time fields to the data view and if those fields + are being used in slo queries. + example: 03b80ab3-003d-498b-881c-3beedbaf1162 type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - FlightTimeHour: - count: 0 - name: FlightTimeHour + filter: + description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - FlightTimeMin: - count: 0 - name: FlightTimeMin - type: number - esTypes: - - float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - Origin: - count: 0 - name: Origin + good: + description: | + An object defining the "good" metrics and equation + type: object + properties: + equation: + description: The equation to calculate the "good" metric. + example: A + type: string + metrics: + description: >- + List of metrics with their name, aggregation type, and + field. + items: + type: object + properties: + aggregation: + description: >- + The aggregation type of the metric. Only valid option + is "sum" + enum: + - sum + example: sum + type: string + field: + description: The field of the metric. + example: processor.processed + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: "success"' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + required: + - name + - aggregation + - field + type: array + required: + - metrics + - equation + index: + description: The index or index pattern to use + example: my-service-* type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginAirportID: - count: 0 - name: OriginAirportID + timestampField: + description: | + The timestamp field used in the source indice. + example: timestamp type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginCityName: - count: 0 - name: OriginCityName + total: + description: | + An object defining the "total" metrics and equation + type: object + properties: + equation: + description: The equation to calculate the "total" metric. + example: A + type: string + metrics: + description: >- + List of metrics with their name, aggregation type, and + field. + items: + type: object + properties: + aggregation: + description: >- + The aggregation type of the metric. Only valid option + is "sum" + enum: + - sum + example: sum + type: string + field: + description: The field of the metric. + example: processor.processed + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: *' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + required: + - name + - aggregation + - field + type: array + required: + - metrics + - equation + required: + - index + - timestampField + - good + - total + type: + description: The type of indicator. + example: sli.metric.custom + type: string + required: + - type + - params + title: Custom metric + SLOs_indicator_properties_histogram: + description: Defines properties for a histogram indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + dataViewId: + description: >- + The kibana data view id to use, primarily used to include data + view runtime mappings. Make sure to save SLO again if you + add/update run time fields to the data view and if those fields + are being used in slo queries. + example: 03b80ab3-003d-498b-881c-3beedbaf1162 type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginCountry: - count: 0 - name: OriginCountry + filter: + description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginLocation: - count: 0 - name: OriginLocation - type: geo_point - esTypes: - - geo_point - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: geo_point - params: - transform: wkt - shortDotsEnable: false - isMapped: true - OriginRegion: - count: 0 - name: OriginRegion + good: + description: | + An object defining the "good" events + type: object + properties: + aggregation: + description: The type of aggregation to use. + enum: + - value_count + - range + example: value_count + type: string + field: + description: The field use to aggregate the good events. + example: processor.latency + type: string + filter: + description: The filter for good events. + example: 'processor.outcome: "success"' + type: string + from: + description: >- + The starting value of the range. Only required for "range" + aggregations. + example: 0 + type: number + to: + description: >- + The ending value of the range. Only required for "range" + aggregations. + example: 100 + type: number + required: + - aggregation + - field + index: + description: The index or index pattern to use + example: my-service-* type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginWeather: - count: 0 - name: OriginWeather + timestampField: + description: | + The timestamp field used in the source indice. + example: timestamp type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - _id: - count: 0 - name: _id + total: + description: | + An object defining the "total" events + type: object + properties: + aggregation: + description: The type of aggregation to use. + enum: + - value_count + - range + example: value_count + type: string + field: + description: The field use to aggregate the good events. + example: processor.latency + type: string + filter: + description: The filter for total events. + example: 'processor.outcome : *' + type: string + from: + description: >- + The starting value of the range. Only required for "range" + aggregations. + example: 0 + type: number + to: + description: >- + The ending value of the range. Only required for "range" + aggregations. + example: 100 + type: number + required: + - aggregation + - field + required: + - index + - timestampField + - good + - total + type: + description: The type of indicator. + example: sli.histogram.custom + type: string + required: + - type + - params + title: Histogram indicator + SLOs_indicator_properties_timeslice_metric: + description: Defines properties for a timeslice metric indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + dataViewId: + description: >- + The kibana data view id to use, primarily used to include data + view runtime mappings. Make sure to save SLO again if you + add/update run time fields to the data view and if those fields + are being used in slo queries. + example: 03b80ab3-003d-498b-881c-3beedbaf1162 type: string - esTypes: - - _id - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - _index: - count: 0 - name: _index + filter: + description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' type: string - esTypes: - - _index - scripted: false - searchable: true - aggregatable: true - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - _score: - count: 0 - name: _score - type: number - scripted: false - searchable: false - aggregatable: false - readFromDocValues: false - format: - id: number - shortDotsEnable: false - isMapped: true - _source: - count: 0 - name: _source - type: _source - esTypes: - - _source - scripted: false - searchable: false - aggregatable: false - readFromDocValues: false - format: - id: _source - shortDotsEnable: false - isMapped: true - dayOfWeek: - count: 0 - name: dayOfWeek - type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - timestamp: - count: 0 - name: timestamp - type: date - esTypes: - - date - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: date - shortDotsEnable: false - isMapped: true - fieldFormats: - hour_of_day: - id: number - params: - pattern: '00' - AvgTicketPrice: - id: number - params: - pattern: $0,0.[00] - runtimeFieldMap: - hour_of_day: - type: long - script: - source: emit(doc['timestamp'].value.getHour()); - fieldAttrs: {} - allowNoIndex: false - name: Kibana Sample Data Flights - Data_views_update_runtime_field_request: - summary: Update an existing runtime field on a data view. - value: - runtimeField: - script: - source: emit(doc["bar"].value) - Data_views_get_default_data_view_response: - summary: The get default data view API returns the default data view identifier. - value: - data_view_id: ff959d40-b880-11e8-a6d9-e546fe2bba5f - Data_views_set_default_data_view_request: - summary: Set the default data view identifier. - value: - data_view_id: ff959d40-b880-11e8-a6d9-e546fe2bba5f - force: true - Data_views_swap_data_view_request: - summary: >- - Swap references from data view ID "abcd-efg" to "xyz-123" and remove the - data view that is no longer referenced. - value: - fromId: abcd-efg - toId: xyz-123 - delete: true - Data_views_preview_swap_data_view_request: - summary: Preview swapping references from data view ID "abcd-efg" to "xyz-123". - value: - fromId: abcd-efg - toId: xyz-123 - Machine_learning_APIs_mlSyncExample: - summary: Two anomaly detection jobs required synchronization in this example. - value: - savedObjectsCreated: - anomaly-detector: - myjob1: - success: true - myjob2: - success: true - savedObjectsDeleted: {} - datafeedsAdded: {} - datafeedsRemoved: {} - Serverless_saved_objects_export_objects_request: - summary: Export a specific saved object. - value: - objects: - - type: map - id: de71f4f0-1902-11e9-919b-ffe5949a18d2 - includeReferencesDeep: false - excludeExportDetails: true - Serverless_saved_objects_export_objects_response: - summary: >- - The export objects API response contains a JSON record for each exported - object. - value: - attributes: - description: '' - layerListJSON: >- - [{"id":"0hmz5","alpha":1,"sourceDescriptor":{"type":"EMS_TMS","isAutoSelect":true,"lightModeDefault":"road_map_desaturated"},"visible":true,"style":{},"type":"EMS_VECTOR_TILE","minZoom":0,"maxZoom":24},{"id":"edh66","label":"Total - Requests by - Destination","minZoom":0,"maxZoom":24,"alpha":0.5,"sourceDescriptor":{"type":"EMS_FILE","id":"world_countries","tooltipProperties":["name","iso2"]},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"DYNAMIC","options":{"field":{"name":"__kbnjoin__count__673ff994-fc75-4c67-909b-69fcb0e1060e","origin":"join"},"color":"Greys","fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"lineColor":{"type":"STATIC","options":{"color":"#FFFFFF"}},"lineWidth":{"type":"STATIC","options":{"size":1}},"iconSize":{"type":"STATIC","options":{"size":10}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR","joins":[{"leftField":"iso2","right":{"type":"ES_TERM_SOURCE","id":"673ff994-fc75-4c67-909b-69fcb0e1060e","indexPatternTitle":"kibana_sample_data_logs","term":"geo.dest","indexPatternRefName":"layer_1_join_0_index_pattern","metrics":[{"type":"count","label":"web - logs - count"}],"applyGlobalQuery":true}}]},{"id":"gaxya","label":"Actual - Requests","minZoom":9,"maxZoom":24,"alpha":1,"sourceDescriptor":{"id":"b7486535-171b-4d3b-bb2e-33c1a0a2854c","type":"ES_SEARCH","geoField":"geo.coordinates","limit":2048,"filterByMapBounds":true,"tooltipProperties":["clientip","timestamp","host","request","response","machine.os","agent","bytes"],"indexPatternRefName":"layer_2_source_index_pattern","applyGlobalQuery":true,"scalingType":"LIMIT"},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"STATIC","options":{"color":"#2200ff"}},"lineColor":{"type":"STATIC","options":{"color":"#FFFFFF"}},"lineWidth":{"type":"STATIC","options":{"size":2}},"iconSize":{"type":"DYNAMIC","options":{"field":{"name":"bytes","origin":"source"},"minSize":1,"maxSize":23,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR"},{"id":"tfi3f","label":"Total - Requests and - Bytes","minZoom":0,"maxZoom":9,"alpha":1,"sourceDescriptor":{"type":"ES_GEO_GRID","resolution":"COARSE","id":"8aaa65b5-a4e9-448b-9560-c98cb1c5ac5b","geoField":"geo.coordinates","requestType":"point","metrics":[{"type":"count","label":"web - logs - count"},{"type":"sum","field":"bytes"}],"indexPatternRefName":"layer_3_source_index_pattern","applyGlobalQuery":true},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"color":"Blues","fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"lineColor":{"type":"STATIC","options":{"color":"#cccccc"}},"lineWidth":{"type":"STATIC","options":{"size":1}},"iconSize":{"type":"DYNAMIC","options":{"field":{"name":"sum_of_bytes","origin":"source"},"minSize":7,"maxSize":25,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"labelText":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"labelSize":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"minSize":12,"maxSize":24,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR"}] - mapStateJSON: >- - {"zoom":3.64,"center":{"lon":-88.92107,"lat":42.16337},"timeFilters":{"from":"now-7d","to":"now"},"refreshConfig":{"isPaused":true,"interval":0},"query":{"language":"kuery","query":""},"settings":{"autoFitToDataBounds":false}} - title: '[Logs] Total Requests and Bytes' - uiStateJSON: '{"isDarkMode":false}' - coreMigrationVersion: 8.8.0 - created_at: '2023-08-23T20:03:32.204Z' - id: de71f4f0-1902-11e9-919b-ffe5949a18d2 - managed: false - references: - - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - name: layer_1_join_0_index_pattern - type: index-pattern - - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - name: layer_2_source_index_pattern - type: index-pattern - - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - name: layer_3_source_index_pattern - type: index-pattern - type: map - typeMigrationVersion: 8.4.0 - updated_at: '2023-08-23T20:03:32.204Z' - version: WzEzLDFd - Serverless_saved_objects_import_objects_request: - value: - file: file.ndjson - Serverless_saved_objects_import_objects_response: - summary: >- - The import objects API response indicates a successful import and the - objects are created. Since these objects are created as new copies, each - entry in the successResults array includes a destinationId attribute. - value: - successCount: 1 - success: true - successResults: - - type: index-pattern - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - meta: - title: Kibana Sample Data Logs - icon: indexPatternApp - managed: false - destinationId: 82d2760c-468f-49cf-83aa-b9a35b6a8943 - responses: - Connectors_401: - description: Authorization information is missing or invalid. - content: - application/json: - schema: - type: object - title: Unauthorized response - properties: - error: - type: string - example: Unauthorized - enum: - - Unauthorized - message: - type: string - statusCode: - type: integer - example: 401 - enum: - - 401 - Connectors_404: - description: Object is not found. - content: - application/json: - schema: - type: object - title: Not found response - properties: - error: - type: string - example: Not Found - enum: - - Not Found - message: - type: string - example: >- - Saved object [action/baf33fc0-920c-11ed-b36a-874bd1548a00] not - found - statusCode: - type: integer - example: 404 - enum: - - 404 + index: + description: The index or index pattern to use + example: my-service-* + type: string + metric: + description: > + An object defining the metrics, equation, and threshold to + determine if it's a good slice or not + type: object + properties: + comparator: + description: >- + The comparator to use to compare the equation to the + threshold. + enum: + - GT + - GTE + - LT + - LTE + example: GT + type: string + equation: + description: The equation to calculate the metric. + example: A + type: string + metrics: + description: >- + List of metrics with their name, aggregation type, and + field. + items: + anyOf: + - $ref: >- + #/components/schemas/SLOs_timeslice_metric_basic_metric_with_field + - $ref: >- + #/components/schemas/SLOs_timeslice_metric_percentile_metric + - $ref: >- + #/components/schemas/SLOs_timeslice_metric_doc_count_metric + type: array + threshold: + description: >- + The threshold used to determine if the metric is a good + slice or not. + example: 100 + type: number + required: + - metrics + - equation + - comparator + - threshold + timestampField: + description: | + The timestamp field used in the source indice. + example: timestamp + type: string + required: + - index + - timestampField + - metric + type: + description: The type of indicator. + example: sli.metric.timeslice + type: string + required: + - type + - params + title: Timeslice metric + SLOs_kql_with_filters: + description: Defines properties for a filter + oneOf: + - description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' + type: string + - type: object + properties: + filters: + items: + $ref: '#/components/schemas/SLOs_filter' + type: array + kqlQuery: + type: string + title: KQL with filters + SLOs_kql_with_filters_good: + description: The KQL query used to define the good events. + oneOf: + - description: the KQL query to filter the documents with. + example: 'request.latency <= 150 and request.status_code : "2xx"' + type: string + - type: object + properties: + filters: + items: + $ref: '#/components/schemas/SLOs_filter' + type: array + kqlQuery: + type: string + title: KQL query for good events + SLOs_kql_with_filters_total: + description: The KQL query used to define all events. + oneOf: + - description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' + type: string + - type: object + properties: + filters: + items: + $ref: '#/components/schemas/SLOs_filter' + type: array + kqlQuery: + type: string + title: KQL query for all events + SLOs_objective: + description: Defines properties for the SLO objective + type: object + properties: + target: + description: the target objective between 0 and 1 excluded + example: 0.99 + exclusiveMaximum: true + exclusiveMinimum: true + maximum: 100 + minimum: 0 + type: number + timesliceTarget: + description: >- + the target objective for each slice when using a timeslices + budgeting method + example: 0.995 + maximum: 100 + minimum: 0 + type: number + timesliceWindow: + description: >- + the duration of each slice when using a timeslices budgeting method, + as {duraton}{unit} + example: 5m + type: string + required: + - target + title: Objective + SLOs_settings: + description: Defines properties for SLO settings. + properties: + frequency: + default: 1m + description: 'Configure how often the transform runs, default 1m' + example: 5m + type: string + preventInitialBackfill: + default: false + description: Prevents the transform from backfilling data when it starts. + example: true + type: boolean + syncDelay: + default: 1m + description: The synch delay to apply to the transform. Default 1m + example: 5m + type: string + title: Settings + type: object + SLOs_slo_definition_response: + title: SLO definition response + type: object + properties: + budgetingMethod: + $ref: '#/components/schemas/SLOs_budgeting_method' + createdAt: + description: The creation date + example: '2023-01-12T10:03:19.000Z' + type: string + description: + description: The description of the SLO. + example: My SLO description + type: string + enabled: + description: Indicate if the SLO is enabled + example: true + type: boolean + groupBy: + description: optional group by field to use to generate an SLO per distinct value + example: some.field + type: string + id: + description: The identifier of the SLO. + example: 8853df00-ae2e-11ed-90af-09bb6422b258 + type: string + indicator: + discriminator: + mapping: + sli.apm.transactionDuration: '#/components/schemas/SLOs_indicator_properties_apm_latency' + sli.apm.transactionErrorRate: '#/components/schemas/SLOs_indicator_properties_apm_availability' + sli.histogram.custom: '#/components/schemas/SLOs_indicator_properties_histogram' + sli.kql.custom: '#/components/schemas/SLOs_indicator_properties_custom_kql' + sli.metric.custom: '#/components/schemas/SLOs_indicator_properties_custom_metric' + sli.metric.timeslice: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + propertyName: type + oneOf: + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' + - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' + - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + name: + description: The name of the SLO. + example: My Service SLO + type: string + objective: + $ref: '#/components/schemas/SLOs_objective' + revision: + description: The SLO revision + example: 2 + type: number + settings: + $ref: '#/components/schemas/SLOs_settings' + tags: + description: List of tags + items: + type: string + type: array + timeWindow: + $ref: '#/components/schemas/SLOs_time_window' + updatedAt: + description: The last update date + example: '2023-01-12T10:03:19.000Z' + type: string + version: + description: The internal SLO version + example: 2 + type: number + required: + - id + - name + - description + - indicator + - timeWindow + - budgetingMethod + - objective + - settings + - revision + - enabled + - groupBy + - tags + - createdAt + - updatedAt + - version + SLOs_slo_with_summary_response: + title: SLO response + type: object + properties: + budgetingMethod: + $ref: '#/components/schemas/SLOs_budgeting_method' + createdAt: + description: The creation date + example: '2023-01-12T10:03:19.000Z' + type: string + description: + description: The description of the SLO. + example: My SLO description + type: string + enabled: + description: Indicate if the SLO is enabled + example: true + type: boolean + groupBy: + description: optional group by field to use to generate an SLO per distinct value + example: some.field + type: string + id: + description: The identifier of the SLO. + example: 8853df00-ae2e-11ed-90af-09bb6422b258 + type: string + indicator: + discriminator: + mapping: + sli.apm.transactionDuration: '#/components/schemas/SLOs_indicator_properties_apm_latency' + sli.apm.transactionErrorRate: '#/components/schemas/SLOs_indicator_properties_apm_availability' + sli.histogram.custom: '#/components/schemas/SLOs_indicator_properties_histogram' + sli.kql.custom: '#/components/schemas/SLOs_indicator_properties_custom_kql' + sli.metric.custom: '#/components/schemas/SLOs_indicator_properties_custom_metric' + sli.metric.timeslice: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + propertyName: type + oneOf: + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' + - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' + - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + instanceId: + description: 'the value derived from the groupBy field, if present, otherwise ''*''' + example: host-abcde + type: string + name: + description: The name of the SLO. + example: My Service SLO + type: string + objective: + $ref: '#/components/schemas/SLOs_objective' + revision: + description: The SLO revision + example: 2 + type: number + settings: + $ref: '#/components/schemas/SLOs_settings' + summary: + $ref: '#/components/schemas/SLOs_summary' + tags: + description: List of tags + items: + type: string + type: array + timeWindow: + $ref: '#/components/schemas/SLOs_time_window' + updatedAt: + description: The last update date + example: '2023-01-12T10:03:19.000Z' + type: string + version: + description: The internal SLO version + example: 2 + type: number + required: + - id + - name + - description + - indicator + - timeWindow + - budgetingMethod + - objective + - settings + - revision + - summary + - enabled + - groupBy + - instanceId + - tags + - createdAt + - updatedAt + - version + SLOs_summary: + description: The SLO computed data + properties: + errorBudget: + $ref: '#/components/schemas/SLOs_error_budget' + sliValue: + example: 0.9836 + type: number + status: + $ref: '#/components/schemas/SLOs_summary_status' + required: + - status + - sliValue + - errorBudget + title: Summary + type: object + SLOs_summary_status: + enum: + - NO_DATA + - HEALTHY + - DEGRADING + - VIOLATED + example: HEALTHY + title: summary status + type: string + SLOs_time_window: + description: Defines properties for the SLO time window + type: object + properties: + duration: + description: >- + the duration formatted as {duration}{unit}. Accepted values for + rolling: 7d, 30d, 90d. Accepted values for calendar aligned: 1w + (weekly) or 1M (monthly) + example: 30d + type: string + type: + description: >- + Indicates weither the time window is a rolling or a calendar aligned + time window. + enum: + - rolling + - calendarAligned + example: rolling + type: string + required: + - duration + - type + title: Time window + SLOs_timeslice_metric_basic_metric_with_field: + type: object + properties: + aggregation: + description: The aggregation type of the metric. + enum: + - sum + - avg + - min + - max + - std_deviation + - last_value + - cardinality + example: sum + type: string + field: + description: The field of the metric. + example: processor.processed + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: "success"' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + required: + - name + - aggregation + - field + title: Timeslice Metric Basic Metric with Field + SLOs_timeslice_metric_doc_count_metric: + type: object + properties: + aggregation: + description: The aggregation type of the metric. Only valid option is "doc_count" + enum: + - doc_count + example: doc_count + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: "success"' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + required: + - name + - aggregation + title: Timeslice Metric Doc Count Metric + SLOs_timeslice_metric_percentile_metric: + type: object + properties: + aggregation: + description: >- + The aggregation type of the metric. Only valid option is + "percentile" + enum: + - percentile + example: percentile + type: string + field: + description: The field of the metric. + example: processor.processed + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: "success"' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + percentile: + description: The percentile value. + example: 95 + type: number + required: + - name + - aggregation + - field + - percentile + title: Timeslice Metric Percentile Metric + SLOs_update_slo_request: + description: > + The update SLO API request body varies depending on the type of + indicator, time window and budgeting method. Partial update is handled. + properties: + budgetingMethod: + $ref: '#/components/schemas/SLOs_budgeting_method' + description: + description: A description for the SLO. + type: string + indicator: + oneOf: + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' + - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' + - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + name: + description: A name for the SLO. + type: string + objective: + $ref: '#/components/schemas/SLOs_objective' + settings: + $ref: '#/components/schemas/SLOs_settings' + tags: + description: List of tags + items: + type: string + type: array + timeWindow: + $ref: '#/components/schemas/SLOs_time_window' + title: Update SLO request + type: object securitySchemes: - Kibana_HTTP_APIs_apiKeyAuth: + apiKeyAuth: + description: >- + You must create an API key and use the encoded value in the request + header. To learn about creating keys, go to [API + keys](https://www.elastic.co/docs/current/serverless/api-keys). in: header name: Authorization type: apiKey - Kibana_HTTP_APIs_basicAuth: - scheme: basic - type: http -x-tagGroups: - - name: APM UI - tags: - - APM agent keys - - APM annotations - - name: Connectors - tags: - - connectors - - name: Data views - tags: - - data views - - name: Machine learning APIs - tags: - - ml - - name: Serverless saved objects - tags: - - saved objects - - name: SLOs - tags: - - slo - - name: Kibana HTTP APIs - tags: - - system +security: + - apiKeyAuth: [] +tags: + - name: alerting + - description: > + Configure APM agent keys to authorize requests from APM agents to the APM + Server. + name: APM agent keys + - description: > + Annotate visualizations in the APM app with significant events. + Annotations enable you to easily see how events are impacting the + performance of your applications. + name: APM annotations + - description: Connector APIs enable you to create and manage connectors. + name: connectors + - name: Data streams + - description: >- + Data view APIs enable you to manage data views, formerly known as Kibana + index patterns. + name: data views + - name: Elastic Agent actions + - name: Elastic Agent binary download sources + - name: Elastic Agent policies + - name: Elastic Agent status + - name: Elastic Agents + - name: Elastic Package Manager (EPM) + - name: Fleet enrollment API keys + - name: Fleet internals + - name: Fleet Kubernetes + - name: Fleet outputs + - name: Fleet package policies + - name: Fleet proxies + - name: Fleet Server hosts + - name: Fleet service tokens + - name: Fleet uninstall tokens + - description: Machine learning + name: ml + - description: >- + Manage Kibana saved objects, including dashboards, visualizations, and + more. + name: saved objects + - description: 'SLO APIs enable you to define, manage and track service-level objectives' + name: slo + - name: system diff --git a/oas_docs/output/kibana.yaml b/oas_docs/output/kibana.yaml index a16a834c63e73..a4bc05d9fb2e4 100644 --- a/oas_docs/output/kibana.yaml +++ b/oas_docs/output/kibana.yaml @@ -1,6 +1,7 @@ openapi: 3.0.3 info: - title: Kibana APIs + contact: + name: Kibana Team description: > The Kibana REST APIs enable you to manage resources such as connectors, data views, and saved objects. @@ -45,20427 +46,27556 @@ info: For more information about the console, refer to [Run API requests](https://www.elastic.co/guide/en/kibana/current/console-kibana.html). - version: 1.0.2 license: name: Elastic License 2.0 - url: https://www.elastic.co/licensing/elastic-license - contact: - name: Kibana Team + url: 'https://www.elastic.co/licensing/elastic-license' + title: Kibana APIs + version: 1.0.2 + x-feedbackLink: + label: Feedback + url: >- + https://github.com/elastic/docs-content/issues/new?assignees=&labels=feedback%2Ccommunity&projects=&template=api-feedback.yaml&title=%5BFeedback%5D%3A+ servers: - - url: / - - url: https://{kibana_url} + - url: 'https://{kibana_url}' variables: kibana_url: - default: localhost:5601 - - url: http://localhost:5622 -tags: - - name: alerting - description: Alerting APIs enable you to create and manage rules and alerts. - x-displayName: alerting - - name: APM agent keys - description: > - Configure APM agent keys to authorize requests from APM agents to the APM - Server. - x-displayName: APM agent keys - - name: APM annotations - description: > - Annotate visualizations in the APM app with significant events. - Annotations enable you to easily see how events are impacting the - performance of your applications. - x-displayName: APM annotations - - name: cases - description: Case APIs enable you to open and track issues. - x-displayName: cases - - name: connectors - description: Connector APIs enable you to create and manage connectors. - x-displayName: connectors - - name: data views - description: >- - Data view APIs enable you to manage data views, formerly known as Kibana - index patterns. - x-displayName: data views - - name: ml - description: Machine learning - x-displayName: ml - - name: saved objects - description: >- - Manage Kibana saved objects, including dashboards, visualizations, and - more. - x-displayName: saved objects - - name: system - x-displayName: system + default: 'localhost:5601' paths: - /api/alerting/rule: - post: - summary: Create a rule with a random identifier - operationId: createRule - description: > - To create a rule, you must have `all` privileges for the appropriate - Kibana features, depending on the `consumer` and `rule_type_id` of the - rule you're creating. For example, you must have privileges for the - **Management > Stack rules** feature, **Analytics > Discover** and - **Machine Learning** features, **Observability** features, or - **Security** features. If the rule has actions, you must also have - `read` privileges for the **Management > Actions and Connectors** - feature. This API supports both key- and token-based authentication. To - use key-based authentication, create an API key in Kibana and use it in - the header of the API call. To use token-based authentication, provide a - username and password; an API key that matches the current privileges of - the user is created automatically. In both cases, the API key is - subsequently used for authorization when the rule runs. + /agent_download_sources: + get: + operationId: get-download-sources + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_download_sources' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent binary download sources tags: - - alerting - parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - Elastic Agent binary download sources + post: + operationId: post-download-sources requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_create_rule_request' - examples: - createEsQueryEsqlRuleRequest: - $ref: >- - #/components/examples/Alerting_create_es_query_esql_rule_request - createEsQueryRuleRequest: - $ref: '#/components/examples/Alerting_create_es_query_rule_request' - createEsQueryKqlRuleRequest: - $ref: >- - #/components/examples/Alerting_create_es_query_kql_rule_request - createIndexThresholdRuleRequest: - $ref: >- - #/components/examples/Alerting_create_index_threshold_rule_request - createTrackingContainmentRuleRequest: - $ref: >- - #/components/examples/Alerting_create_tracking_containment_rule_request + type: object + properties: + host: + type: string + id: + type: string + is_default: + type: boolean + name: + type: string + required: + - name + - host + - is_default responses: '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_rule_response_properties' - examples: - createEsQueryEsqlRuleResponse: - $ref: >- - #/components/examples/Alerting_create_es_query_esql_rule_response - createEsQueryRuleResponse: - $ref: '#/components/examples/Alerting_create_es_query_rule_response' - createEsQueryKqlRuleResponse: - $ref: >- - #/components/examples/Alerting_create_es_query_kql_rule_response - createIndexThresholdRuleResponse: - $ref: >- - #/components/examples/Alerting_create_index_threshold_rule_response - createTrackingContainmentRuleResponse: - $ref: >- - #/components/examples/Alerting_create_tracking_containment_rule_response - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_401_response' - '404': - description: Object is not found. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_404_response' - /api/alerting/rule/{ruleId}: - get: - summary: Get rule details - operationId: getRule - description: > - You must have `read` privileges for the appropriate Kibana features, - depending on the `consumer` and `rule_type_id` of the rules you're - seeking. For example, the **Management > Stack Rules** feature, - **Analytics > Discover** and **Machine Learning** features, - **Observability** features, or **Security** features. To get rules - associated with the **Stack Monitoring** feature, use the - `monitoring_user` built-in role. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent binary download source tags: - - alerting + - Elastic Agent binary download sources + '/agent_download_sources/{sourceId}': + delete: + operationId: delete-download-source parameters: - - $ref: '#/components/parameters/Alerting_rule_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_rule_response_properties' - examples: - getRuleResponse: - $ref: '#/components/examples/Alerting_get_rule_response' - '401': - description: Authorization information is missing or invalid. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - '404': - description: Object is not found. + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent binary download source by ID + tags: + - Elastic Agent binary download sources + get: + operationId: get-one-download-source + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_404_response' - delete: - summary: Delete a rule - operationId: deleteRule - description: > - To delete a rule, you must have `all` privileges for the appropriate - Kibana features, depending on the `consumer` and `rule_type_id` of the - rule you're deleting. For example, the **Management** > **Stack Rules** - feature, **Analytics** > **Discover** or **Machine Learning** features, - **Observability**, or **Security** features. WARNING: After you delete a - rule, you cannot recover it. If the API key that is used by the rule was - created automatically, it is deleted. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent binary download source by ID tags: - - alerting + - Elastic Agent binary download sources + parameters: + - in: path + name: sourceId + required: true + schema: + type: string + put: + operationId: update-download-source parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_rule_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + type: string + is_default: + type: boolean + name: + type: string + required: + - name + - is_default + - host responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - '404': - description: Object is not found. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent binary download source by ID + tags: + - Elastic Agent binary download sources + /agent_policies: + get: + description: '' + operationId: agent-policy-list + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - description: >- + When set to true, retrieve the related package policies for each + agent policy. + in: query + name: full + schema: + type: boolean + - description: >- + When set to true, do not count how many agents are in the agent + policy, this can improve performance if you are searching over a + large number of agent policies. The "agents" property will always be + 0 if set to true. + in: query + name: noAgentCount + schema: + type: boolean + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_404_response' - post: - summary: Create a rule - operationId: createRuleId - description: > - This API creates a rule with a specific rule identifier. If you omit the - identifer, it is automatically generated. To create a rule, you must - have `all` privileges for the appropriate Kibana features, depending on - the `consumer` and `rule_type_id` of the rule you're creating. For - example, you must have privileges for the **Management > Stack rules** - feature, **Analytics > Discover** and **Machine Learning** features, - **Observability** features, or **Security** features. If the rule has - actions, you must also have `read` privileges for the **Management > - Actions and Connectors** feature. This API supports both key- and - token-based authentication. To use key-based authentication, create an - API key in Kibana and use it in the header of the API call. To use - token-based authentication, provide a username and password; an API key - that matches the current privileges of the user is created - automatically. In both cases, the API key is subsequently used for - authorization when the rule runs. + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent_policy' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - total + - page + - perPage + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent policies tags: - - alerting + - Elastic Agent policies + post: + operationId: create-agent-policy parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: ruleId - description: > - An UUID v1 or v4 identifier for the rule. If you omit this - parameter, an identifier is randomly generated. - required: true - schema: - type: string - example: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_create_rule_request' - examples: - createEsQueryEsqlRuleIdRequest: - $ref: >- - #/components/examples/Alerting_create_es_query_esql_rule_request - createEsQueryRuleIdRequest: - $ref: '#/components/examples/Alerting_create_es_query_rule_request' - createEsQueryKqlRuleIdRequest: - $ref: >- - #/components/examples/Alerting_create_es_query_kql_rule_request - createIndexThreholdRuleIdRequest: - $ref: >- - #/components/examples/Alerting_create_index_threshold_rule_request + $ref: '#/components/schemas/Fleet_agent_policy_create_request' responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_rule_response_properties' - examples: - createEsQueryEsqlRuleIdResponse: - $ref: >- - #/components/examples/Alerting_create_es_query_esql_rule_response - createEsQueryRuleIdResponse: - $ref: '#/components/examples/Alerting_create_es_query_rule_response' - createEsQueryKqlRuleIdResponse: - $ref: >- - #/components/examples/Alerting_create_es_query_kql_rule_response - createIndexThresholdRuleIdResponse: - $ref: >- - #/components/examples/Alerting_create_index_threshold_rule_response - '401': - description: Authorization information is missing or invalid. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent policy + tags: + - Elastic Agent policies + /agent_policies/_bulk_get: + post: + operationId: bulk-get-agent-policies + parameters: [] + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + full: + description: get full policies with package policies populated + type: boolean + ids: + description: list of agent policy ids + items: + type: string + type: array + ignoreMissing: + type: boolean + required: + - ids + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - '404': - description: Object is not found. + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent_policy' + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get agent policies + tags: + - Elastic Agent policies + '/agent_policies/{agentPolicyId}': + get: + description: Get one agent policy + operationId: agent-policy-info + parameters: [] + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_404_response' - put: - summary: Update a rule - operationId: updateRule - description: > - To update a rule, you must have `all` privileges for the appropriate - Kibana features, depending on the `consumer` and `rule_type_id` of the - rule you're updating. For example, you must have privileges for the - **Management > Stack rules** feature, **Analytics > Discover** and - **Machine Learning** features, **Observability** features, or - **Security** features. If the rule has actions, you must also have - `read` privileges for the **Management > Actions and Connectors** - feature. This API supports both key- and token-based authentication. To - use key-based authentication, create an API key in Kibana and use it in - the header of the API call. To use token-based authentication, provide a - username and password; an API key that matches the current privileges of - the user is created automatically. In both cases, the API key is - subsequently used for authorization when the rule runs. NOTE: If the API - key has different privileges than the key that created or most recently - updated the rule, the rule behavior might change. Though some properties - are optional, when you update the rule the existing property values are - overwritten with default values. Therefore, it is recommended to - explicitly set all property values. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent policy by ID tags: - - alerting + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + put: + operationId: update-agent-policy parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_rule_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_update_rule_request' - examples: - updateRuleRequest: - $ref: '#/components/examples/Alerting_update_rule_request' + $ref: '#/components/schemas/Fleet_agent_policy_update_request' responses: '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_rule_response_properties' - examples: - updateRuleResponse: - $ref: '#/components/examples/Alerting_update_rule_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_401_response' - '404': - description: Object is not found. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_404_response' - /api/alerting/rule/{ruleId}/_disable: - post: - summary: Disable a rule - operationId: disableRule - description: > - You must have `all` privileges for the appropriate Kibana features, - depending on the `consumer` and `rule_type_id` of the rule. For example, - the **Management > Stack Rules** feature, **Analytics > Discover** and - **Machine Learning** features, **Observability**, and **Security** - features. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent policy by ID tags: - - alerting + - Elastic Agent policies + '/agent_policies/{agentPolicyId}/copy': + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + post: + operationId: agent-policy-copy parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_rule_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + description: + type: string + name: + type: string + required: + - name + description: '' responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - '404': - description: Object is not found. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Copy agent policy by ID + tags: + - Elastic Agent policies + '/agent_policies/{agentPolicyId}/download': + get: + operationId: agent-policy-download + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_404_response' - /api/alerting/rule/{ruleId}/_enable: - post: - summary: Enable a rule - operationId: enableRule - description: > - To enable a rule, you must have `all` privileges for the appropriate - Kibana features, depending on the `consumer` and `rule_type_id` of the - rule. For example, the **Management > Stack Rules** feature, **Analytics - > Discover** and **Machine Learning** features, **Observability**, and - **Security** features. This API supports both key- and token-based - authentication. To use key-based authentication, create an API key in - Kibana and use it in the header of the API call. To use token-based - authentication, provide a username and password; an API key that matches - the current privileges of the user is created automatically. In both - cases, the API key is subsequently used for authorization when the rule - runs. + type: object + properties: + item: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Download agent policy by ID tags: - - alerting - parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_rule_id' + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - in: query + name: download + required: false + schema: + type: string + - in: query + name: standalone + required: false + schema: + type: string + - in: query + name: kubernetes + required: false + schema: + type: string + '/agent_policies/{agentPolicyId}/full': + get: + operationId: agent-policy-full responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - '404': - description: Object is not found. + type: object + properties: + item: + oneOf: + - type: string + - $ref: '#/components/schemas/Fleet_agent_policy_full' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get full agent policy by ID + tags: + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - in: query + name: download + required: false + schema: + type: string + - in: query + name: standalone + required: false + schema: + type: string + - in: query + name: kubernetes + required: false + schema: + type: string + /agent_policies/delete: + parameters: [] + post: + operationId: delete-agent-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + agentPolicyId: + type: string + force: + description: >- + bypass validation checks that can prevent agent policy + deletion + type: boolean + required: + - agentPolicyId + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerting/rules/_find: - get: - summary: Find rule information - operationId: findRules - description: > - You must have `read` privileges for the appropriate Kibana features, - depending on the `consumer` and `rule_type_id` of the rules you're - seeking. For example, you must have privileges for the **Management > - Stack rules** feature, **Analytics > Discover** and **Machine Learning** - features, **Observability** features, or **Security** features. To find - rules associated with the **Stack Monitoring** feature, use the - `monitoring_user` built-in role. + type: object + properties: + id: + type: string + success: + type: boolean + required: + - id + - success + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent policy by ID tags: - - alerting + - Elastic Agent policies + /agent_status: + get: + operationId: get-agent-status parameters: - - name: default_search_operator - in: query - description: The default operator to use for the simple_query_string. - schema: - type: string - default: OR - example: OR - - name: fields - in: query - description: The fields to return in the `attributes` key of the response. - schema: - type: array - items: - type: string - - name: filter - in: query - description: > - A KQL string that you filter with an attribute from your saved - object. It should look like `savedObjectType.attributes.title: - "myTitle"`. However, if you used a direct attribute of a saved - object, such as `updatedAt`, you must define your filter, for - example, `savedObjectType.updatedAt > 2018-12-22`. - schema: - type: string - - name: has_reference - in: query - description: >- - Filters the rules that have a relation with the reference objects - with a specific type and identifier. - schema: - type: object - properties: - id: - type: string - type: - type: string - - name: page - in: query - description: The page number to return. - schema: - type: integer - default: 1 - example: 1 - - name: per_page - in: query - description: The number of rules to return per page. - schema: - type: integer - default: 20 - example: 20 - - name: search - in: query - description: >- - An Elasticsearch simple_query_string query that filters the objects - in the response. - schema: - type: string - example: threshold +-test* - - name: search_fields - in: query - description: The fields to perform the simple_query_string parsed query against. - schema: - oneOf: - - type: string - example: name - - type: array - items: - type: string - - name: sort_field - in: query - description: > - Determines which field is used to sort the results. The field must - exist in the `attributes` key of the response. + - in: query + name: policyId + required: false schema: type: string - - name: sort_order + - deprecated: true in: query - description: Determines the sort order. + name: kuery + required: false schema: type: string - enum: - - asc - - desc - default: desc - example: asc responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - data: - type: array - items: - $ref: '#/components/schemas/Alerting_rule_response_properties' - page: + active: type: integer - per_page: + all: + type: integer + error: + type: integer + events: + type: integer + inactive: + type: integer + offline: + type: integer + online: + type: integer + other: type: integer total: + deprecated: true type: integer - examples: - findRulesResponse: - $ref: '#/components/examples/Alerting_find_rules_response' - findConditionalActionRulesResponse: - $ref: >- - #/components/examples/Alerting_find_rules_response_conditional_action - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerting/_health: - get: - summary: Get the alerting framework health - operationId: getAlertingHealth - description: > - You must have `read` privileges for the **Management > Stack Rules** - feature or for at least one of the **Analytics > Discover**, **Analytics - > Machine Learning**, **Observability**, or **Security** features. + unenrolled: + type: integer + updating: + type: integer + required: + - active + - all + - error + - events + - inactive + - offline + - online + - other + - total + - updating + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent status summary tags: - - alerting + - Elastic Agent status + /agent_status/data: + get: + operationId: get-agent-data + parameters: + - in: query + name: agentsIds + required: true + schema: + items: + type: string + type: array responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - alerting_framework_health: - type: object - description: > - Three substates identify the health of the alerting - framework: `decryption_health`, `execution_health`, and - `read_health`. - properties: - decryption_health: - type: object - description: The timestamp and status of the rule decryption. - properties: - status: - type: string - example: ok - enum: - - error - - ok - - warn - timestamp: - type: string - format: date-time - example: '2023-01-13T01:28:00.280Z' - execution_health: - type: object - description: The timestamp and status of the rule run. - properties: - status: - type: string - example: ok - enum: - - error - - ok - - warn - timestamp: - type: string - format: date-time - example: '2023-01-13T01:28:00.280Z' - read_health: + items: + items: + additionalProperties: type: object - description: The timestamp and status of the rule reading events. properties: - status: - type: string - example: ok - enum: - - error - - ok - - warn - timestamp: - type: string - format: date-time - example: '2023-01-13T01:28:00.280Z' - has_permanent_encryption_key: - type: boolean - description: >- - If `false`, the encrypted saved object plugin does not - have a permanent encryption key. - example: true - is_sufficiently_secure: - type: boolean - description: If `false`, security is enabled but TLS is not. - example: true - examples: - getAlertingHealthResponse: - $ref: '#/components/examples/Alerting_get_health_response' - '401': - description: Authorization information is missing or invalid. + data: + type: boolean + type: object + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get incoming agent data + tags: + - Elastic Agent status + /agent-status: + get: + deprecated: true + operationId: get-agent-status-deprecated + parameters: + - in: query + name: policyId + required: false + schema: + type: string + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerting/rule_types: + type: object + properties: + error: + type: integer + events: + type: integer + inactive: + type: integer + offline: + type: integer + online: + type: integer + other: + type: integer + total: + type: integer + updating: + type: integer + required: + - error + - events + - inactive + - offline + - online + - other + - total + - updating + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent status summary + tags: + - Elastic Agent status + /agents: get: - summary: Get the rule types - operationId: getRuleTypes - description: > - If you have `read` privileges for one or more Kibana features, the API - response contains information about the appropriate rule types. For - example, there are rule types associated with the **Management > Stack - Rules** feature, **Analytics > Discover** and **Machine Learning** - features, **Observability** features, and **Security** features. To get - rule types associated with the **Stack Monitoring** feature, use the - `monitoring_user` built-in role. + operationId: get-agents + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_show_inactive' + - $ref: '#/components/parameters/Fleet_show_upgradeable' + - $ref: '#/components/parameters/Fleet_sort_field' + - $ref: '#/components/parameters/Fleet_sort_order' + - $ref: '#/components/parameters/Fleet_with_metrics' + - in: query + name: getStatusSummary + required: false + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_get_agents_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agents tags: - - alerting + - Elastic Agents + post: + operationId: get-agents-by-actions + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + actionIds: + items: + type: string + type: array + required: + - policy_id + required: true responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - type: array - items: + $ref: '#/components/schemas/Fleet_agent_get_by_actions' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agents by action ids + tags: + - Elastic Agents + '/agents/{agentId}': + delete: + operationId: delete-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - deleted + type: string + required: + - action + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent by ID + tags: + - Elastic Agents + get: + operationId: get-agent + parameters: + - $ref: '#/components/parameters/Fleet_with_metrics' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent by ID + tags: + - Elastic Agents + parameters: + - in: path + name: agentId + required: true + schema: + type: string + put: + operationId: update-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + tags: + items: + type: string + type: array + user_provided_metadata: type: object - properties: - action_groups: - description: > - An explicit list of groups for which the rule type can - schedule actions, each with the action group's unique ID - and human readable name. Rule actions validation uses - this configuration to ensure that groups are valid. - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - action_variables: - description: > - A list of action variables that the rule type makes - available via context and state in action parameter - templates, and a short human readable description. When - you create a rule in Kibana, it uses this information to - prompt you for these variables in action parameter - editors. - type: object - properties: - context: - type: array - items: - type: object - properties: - name: - type: string - description: - type: string - useWithTripleBracesInTemplates: - type: boolean - params: - type: array - items: - type: object - properties: - description: - type: string - name: - type: string - state: - type: array - items: - type: object - properties: - description: - type: string - name: - type: string - alerts: - type: object - description: > - Details for writing alerts as data documents for this - rule type. - properties: - context: - type: string - description: | - The namespace for this rule type. - enum: - - ml.anomaly-detection - - observability.apm - - observability.logs - - observability.metrics - - observability.slo - - observability.threshold - - observability.uptime - - security - - stack - dynamic: - type: string - description: Indicates whether new fields are added dynamically. - enum: - - 'false' - - runtime - - strict - - 'true' - isSpaceAware: - type: boolean - description: > - Indicates whether the alerts are space-aware. If - true, space-specific alert indices are used. - mappings: - type: object - properties: - fieldMap: - type: object - description: > - Mapping information for each field supported in - alerts as data documents for this rule type. For - more information about mapping parameters, refer - to the Elasticsearch documentation. - additionalProperties: - $ref: >- - #/components/schemas/Alerting_fieldmap_properties - secondaryAlias: - type: string - description: > - A secondary alias. It is typically used to support - the signals alias for detection rules. - shouldWrite: - type: boolean - description: > - Indicates whether the rule should write out alerts - as data. - useEcs: - type: boolean - description: > - Indicates whether to include the ECS component - template for the alerts. - useLegacyAlerts: - type: boolean - default: false - description: > - Indicates whether to include the legacy component - template for the alerts. - authorized_consumers: - description: >- - The list of the plugins IDs that have access to the rule - type. - type: object - properties: - alerts: - type: object - properties: - all: - type: boolean - read: - type: boolean - apm: - type: object - properties: - all: - type: boolean - read: - type: boolean - discover: - type: object - properties: - all: - type: boolean - read: - type: boolean - infrastructure: - type: object - properties: - all: - type: boolean - read: - type: boolean - logs: - type: object - properties: - all: - type: boolean - read: - type: boolean - ml: - type: object - properties: - all: - type: boolean - read: - type: boolean - monitoring: - type: object - properties: - all: - type: boolean - read: - type: boolean - siem: - type: object - properties: - all: - type: boolean - read: - type: boolean - slo: - type: object - properties: - all: - type: boolean - read: - type: boolean - stackAlerts: - type: object - properties: - all: - type: boolean - read: - type: boolean - uptime: - type: object - properties: - all: - type: boolean - read: - type: boolean - category: - type: string - description: >- - The rule category, which is used by features such as - category-specific maintenance windows. - enum: - - management - - observability - - securitySolution - default_action_group_id: - description: The default identifier for the rule type group. - type: string - does_set_recovery_context: - description: >- - Indicates whether the rule passes context variables to - its recovery action. - type: boolean - enabled_in_license: - description: >- - Indicates whether the rule type is enabled or disabled - based on the subscription. - type: boolean - has_alerts_mappings: - type: boolean - description: >- - Indicates whether the rule type has custom mappings for - the alert data. - has_fields_for_a_a_d: - type: boolean - id: - description: The unique identifier for the rule type. - type: string - is_exportable: - description: >- - Indicates whether the rule type is exportable in **Stack - Management > Saved Objects**. - type: boolean - minimum_license_required: - description: The subscriptions required to use the rule type. - type: string - example: basic - name: - description: The descriptive name of the rule type. - type: string - producer: - description: >- - An identifier for the application that produces this - rule type. - type: string - example: stackAlerts - recovery_action_group: - description: >- - An action group to use when an alert goes from an active - state to an inactive one. - type: object - properties: - id: - type: string - name: - type: string - rule_task_timeout: - type: string - example: 5m - examples: - getRuleTypesResponse: - $ref: '#/components/examples/Alerting_get_rule_types_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerting/rule/{ruleId}/_mute_all: - post: - summary: Mute all alerts - operationId: muteAllAlerts - description: > - This API snoozes the notifications for the rule indefinitely. The rule - checks continue to occur but alerts will not trigger any actions. You - must have `all` privileges for the appropriate Kibana features, - depending on the `consumer` and `rule_type_id` of the rule. For example, - the **Management > Stack Rules** feature, **Analytics > Discover** and - **Machine Learning** features, **Observability**, and **Security** - features. If the rule has actions, you must also have `read` privileges - for the **Management > Actions and Connectors** feature. - tags: - - alerting - parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_rule_id' + required: true responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerting/rule/{ruleId}/_unmute_all: - post: - summary: Unmute all alerts - operationId: unmuteAllAlerts - description: > - If the rule has its notifications snoozed indefinitely, this API cancels - the snooze. You must have `all` privileges for the appropriate Kibana - features, depending on the `consumer` and `rule_type_id` of the rule. - For example, the **Management > Stack Rules** feature, **Analytics > - Discover** and **Machine Learning** features, **Observability**, and - **Security** features. If the rule has actions, you must also have - `read` privileges for the **Management > Actions and Connectors** - feature. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent by ID tags: - - alerting + - Elastic Agents + '/agents/{agentId}/actions': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: new-agent-action parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_rule_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + $ref: '#/components/schemas/Fleet_agent_action' + required: true responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerting/rule/{ruleId}/_update_api_key: - post: - summary: Update the API key for a rule - operationId: updateRuleAPIKey - description: >- - The new API key has the credentials of the user that submits the - request. + type: object + properties: + body: + items: + type: number + type: array + headers: + type: string + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent action tags: - - alerting + - Elastic Agent actions + '/agents/{agentId}/reassign': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: reassign-agent parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_rule_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + policy_id: + type: string + required: + - policy_id + required: true responses: '200': - description: Indicates a successful call. - '400': - description: Bad request content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_400_response' - /api/alerting/rule/{ruleId}/alert/{alertId}/_mute: - post: - summary: Mute an alert - operationId: muteAlert - description: > - You must have `all` privileges for the appropriate Kibana features, - depending on the `consumer` and `rule_type_id` of the rule. For example, - the **Management > Stack Rules** feature, **Analytics > Discover** and - **Machine Learning** features, **Observability**, and **Security** - features. If the rule has actions, you must also have `read` privileges - for the **Management > Actions and Connectors** feature. + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Reassign agent tags: - - alerting + - Elastic Agents + put: + deprecated: true + operationId: reassign-agent-deprecated parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_alert_id' - - $ref: '#/components/parameters/Alerting_rule_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + policy_id: + type: string + required: + - policy_id + required: true responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerting/rule/{ruleId}/alert/{alertId}/_unmute: - post: - summary: Unmute an alert - operationId: unmuteAlert - description: > - You must have `all` privileges for the appropriate Kibana features, - depending on the `consumer` and `rule_type_id` of the rule. For example, - the **Management > Stack Rules** feature, **Analytics > Discover** and - **Machine Learning** features, **Observability**, and **Security** - features. If the rule has actions, you must also have `read` privileges - for the **Management > Actions and Connectors** feature. + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Reassign agent tags: - - alerting + - Elastic Agents + '/agents/{agentId}/request_diagnostics': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: request-diagnostics-agent parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - $ref: '#/components/parameters/Alerting_alert_id' - - $ref: '#/components/parameters/Alerting_rule_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + additional_metrics: + items: + oneOf: + - enum: + - CPU + type: string + type: array responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alert/{alertId}: - delete: - summary: Delete an alert - operationId: legaryDeleteAlert - deprecated: true - description: > - Deprecated in 7.13.0. Use the delete rule API instead. WARNING: After - you delete an alert, you cannot recover it. + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Request agent diagnostics tags: - - alerting + - Elastic Agents + '/agents/{agentId}/unenroll': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: unenroll-agent parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: The identifier for the alert. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean + revoke: + type: boolean responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' + type: object + description: OK + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + error: + type: string + message: + type: string + statusCode: + enum: + - 400 + type: number + description: BAD REQUEST + summary: Unenroll agent + tags: + - Elastic Agents + '/agents/{agentId}/upgrade': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: upgrade-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_upgrade_agent' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_upgrade_agent' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Upgrade agent + tags: + - Elastic Agents + '/agents/{agentId}/uploads': get: - summary: Get an alert by identifier - operationId: legacyGetAlert - deprecated: true - description: Deprecated in 7.13.0. Use the get rule API instead. + operationId: list-agent-uploads + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + body: + type: object + properties: + item: + items: + $ref: '#/components/schemas/Fleet_agent_diagnostics' + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent uploads tags: - - alerting + - Elastic Agents + parameters: + - in: path + name: agentId + required: true + schema: + type: string + /agents/action_status: + get: + operationId: agents-action-status parameters: - - in: path - name: alertId - description: The identifier for the alert. - required: true + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - in: query + name: errorSize schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + default: 5 + type: integer responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_alert_response_properties' - '401': - description: Authorization information is missing or invalid. + type: object + properties: + items: + items: + type: object + properties: + actionId: + type: string + cancellationTime: + type: string + completionTime: + type: string + creationTime: + description: creation time of action + type: string + expiration: + type: string + latestErrors: + description: >- + latest errors that happened when the agents executed + the action + items: + type: object + properties: + agentId: + type: string + error: + type: string + timestamp: + type: string + type: array + nbAgentsAck: + description: number of agents that acknowledged the action + type: number + nbAgentsActionCreated: + description: number of agents included in action from kibana + type: number + nbAgentsActioned: + description: number of agents actioned + type: number + nbAgentsFailed: + description: number of agents that failed to execute the action + type: number + newPolicyId: + description: new policy id (POLICY_REASSIGN action) + type: string + policyId: + description: policy id (POLICY_CHANGE action) + type: string + revision: + description: new policy revision (POLICY_CHANGE action) + type: string + startTime: + description: start time of action (scheduled actions) + type: string + status: + enum: + - COMPLETE + - EXPIRED + - CANCELLED + - FAILED + - IN_PROGRESS + - ROLLOUT_PASSED + type: string + type: + enum: + - POLICY_REASSIGN + - UPGRADE + - UNENROLL + - FORCE_UNENROLL + - UPDATE_TAGS + - CANCEL + - REQUEST_DIAGNOSTICS + - SETTINGS + - POLICY_CHANGE + - INPUT_ACTION + type: string + version: + description: agent version number (UPGRADE action) + type: string + required: + - actionId + - complete + - nbAgentsActioned + - nbAgentsActionCreated + - nbAgentsAck + - nbAgentsFailed + - status + - creationTime + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent action status + tags: + - Elastic Agent actions + '/agents/actions/{actionId}/cancel': + parameters: + - in: path + name: actionId + required: true + schema: + type: string + post: + operationId: agent-action-cancel + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - post: - summary: Create an alert - operationId: legacyCreateAlert - deprecated: true - description: Deprecated in 7.13.0. Use the create rule API instead. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_action' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Cancel agent action tags: - - alerting + - Elastic Agent actions + /agents/bulk_reassign: + post: + operationId: bulk-reassign-agents parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: >- - An UUID v1 or v4 identifier for the alert. If this parameter is - omitted, the identifier is randomly generated. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' + policy_id: policy_id schema: - title: Legacy create alert request properties type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + policy_id: + description: new agent policy id + type: string required: - - alertTypeId - - consumer - - name - - notifyWhen - - params - - schedule + - policy_id + - agents + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk reassign agents + tags: + - Elastic Agents + /agents/bulk_request_diagnostics: + post: + operationId: bulk-request-diagnostics + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' + schema: + type: object properties: - actions: - type: array + additional_metrics: items: - type: object - required: - - actionTypeId - - group - - id - - params - properties: - actionTypeId: - type: string - description: The identifier for the action type. - group: + oneOf: + - enum: + - CPU type: string - description: > - Grouping actions is recommended for escalations for - different types of alert instances. If you don't need - this functionality, set it to `default`. - id: + type: array + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: type: string - description: The ID of the action saved object. - params: - type: object - description: > - The map to the `params` that the action type will - receive. `params` are handled as Mustache templates - and passed a default set of context. - alertTypeId: - type: string - description: >- - The ID of the alert type that you want to call when the - alert is scheduled to run. - consumer: - type: string - description: >- - The name of the application that owns the alert. This name - has to match the Kibana feature name, as that dictates the - required role-based access control privileges. - enabled: - type: boolean - description: >- - Indicates if you want to run the alert on an interval basis - after it is created. - name: - type: string - description: A name to reference and search. - notifyWhen: - type: string - description: The condition for throttling the notification. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - params: - type: object - description: >- - The parameters to pass to the alert type executor `params` - value. This will also validate against the alert type params - validator, if defined. - schedule: - type: object - description: > - The schedule specifying when this alert should be run. A - schedule is structured such that the key specifies the - format you wish to use and its value specifies the schedule. - properties: - interval: - type: string - description: >- - The interval format specifies the interval in seconds, - minutes, hours or days at which the alert should run. - example: 10s - tags: - type: array - items: - type: string - description: A list of keywords to reference and search. - throttle: - type: string - description: > - How often this alert should fire the same actions. This will - prevent the alert from sending out the same notification - over and over. For example, if an alert with a schedule of 1 - minute stays in a triggered state for 90 minutes, setting a - throttle of `10m` or `1h` will prevent it from sending 90 - notifications during this period. + type: array + batchSize: + type: number + required: + - agents responses: '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_alert_response_properties' - '401': - description: Authorization information is missing or invalid. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - put: - summary: Update an alert - operationId: legacyUpdateAlert - deprecated: true - description: Deprecated in 7.13.0. Use the update rule API instead. + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk request diagnostics from agents tags: - - alerting + - Elastic Agents + /agents/bulk_unenroll: + post: + operationId: bulk-unenroll-agents parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: The identifier for the alert. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: + - agent1 + - agent2 + force: false + revoke: true schema: - title: Legacy update alert request properties type: object - required: - - name - - notifyWhen - - params - - schedule properties: - actions: - type: array - items: - type: object - required: - - actionTypeId - - group - - id - - params - properties: - actionTypeId: - type: string - description: The identifier for the action type. - group: - type: string - description: > - Grouping actions is recommended for escalations for - different types of alert instances. If you don't need - this functionality, set it to `default`. - id: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: type: string - description: The ID of the action saved object. - params: - type: object - description: > - The map to the `params` that the action type will - receive. `params` are handled as Mustache templates - and passed a default set of context. - name: - type: string - description: A name to reference and search. - notifyWhen: - type: string - description: The condition for throttling the notification. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - params: - type: object + type: array + force: + description: Unenrolls hosted agents too + type: boolean + includeInactive: description: >- - The parameters to pass to the alert type executor `params` - value. This will also validate against the alert type params - validator, if defined. - schedule: - type: object - description: > - The schedule specifying when this alert should be run. A - schedule is structured such that the key specifies the - format you wish to use and its value specifies the schedule. - properties: - interval: + When passing agents by KQL query, unenrolls inactive agents + too + type: boolean + revoke: + description: Revokes API keys of agents + type: boolean + required: + - agents + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk unenroll agents + tags: + - Elastic Agents + /agents/bulk_update_agent_tags: + post: + operationId: bulk-update-agent-tags + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: + - agent1 + - agent2 + tagsToAdd: + - newTag + tagsToRemove: + - existingTag + schema: + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' type: string - description: >- - The interval format specifies the interval in seconds, - minutes, hours or days at which the alert should run. - example: 1d - tags: + - description: list of agent IDs + items: + type: string + type: array + batchSize: + type: number + tagsToAdd: + items: + type: string type: array + tagsToRemove: items: type: string - description: A list of keywords to reference and search. - throttle: - type: string - description: > - How often this alert should fire the same actions. This will - prevent the alert from sending out the same notification - over and over. For example, if an alert with a schedule of 1 - minute stays in a triggered state for 90 minutes, setting a - throttle of `10m` or `1h` will prevent it from sending 90 - notifications during this period. + type: array + required: + - agents responses: '200': - description: Indicates a successful call. content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_alert_response_properties' - '401': - description: Authorization information is missing or invalid. - content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alert/{alertId}/_disable: - post: - summary: Disable an alert - operationId: legacyDisableAlert - deprecated: true - description: Deprecated in 7.13.0. Use the disable rule API instead. + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk update agent tags tags: - - alerting + - Elastic Agents + /agents/bulk_upgrade: + post: + operationId: bulk-upgrade-agents parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: The identifier for the alert. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: + - agent1 + - agent2 + rollout_duration_seconds: 3600 + source_uri: 'https://artifacts.elastic.co/downloads/beats/elastic-agent' + start_time: '2022-08-03T14:00:00.000Z' + version: 8.4.0 + schema: + $ref: '#/components/schemas/Fleet_bulk_upgrade_agents' + required: true responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alert/{alertId}/_enable: - post: - summary: Enable an alert - operationId: legacyEnableAlert - deprecated: true - description: Deprecated in 7.13.0. Use the enable rule API instead. + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk upgrade agents tags: - - alerting - parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: The identifier for the alert. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + - Elastic Agents + '/agents/files/{fileId}': + delete: + operationId: delete-agent-upload-file responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alert/{alertId}/_mute_all: - post: - summary: Mute all alert instances - operationId: legacyMuteAllAlertInstances - deprecated: true - description: Deprecated in 7.13.0. Use the mute all alerts API instead. + type: object + properties: + body: + type: object + properties: + deleted: + type: boolean + id: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete file uploaded by agent tags: - - alerting - parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: The identifier for the alert. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + - Elastic Agents + parameters: + - in: path + name: fileId + required: true + schema: + type: string + '/agents/files/{fileId}/{fileName}': + get: + operationId: get-agent-upload-file responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alert/{alertId}/_unmute_all: - post: - summary: Unmute all alert instances - operationId: legacyUnmuteAllAlertInstances - deprecated: true - description: Deprecated in 7.13.0. Use the unmute all alerts API instead. + type: object + properties: + body: + type: object + properties: + items: + type: object + properties: + body: {} + headers: {} + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get file uploaded by agent tags: - - alerting - parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: The identifier for the alert. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + - Elastic Agents + parameters: + - in: path + name: fileId + required: true + schema: + type: string + - in: path + name: fileName + required: true + schema: + type: string + /agents/setup: + get: + operationId: get-agents-setup-status responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alerts/_find: - get: - summary: Get a paginated set of alerts - operationId: legacyFindAlerts - deprecated: true - description: > - Deprecated in 7.13.0. Use the find rules API instead. NOTE: Alert - `params` are stored as a flattened field type and analyzed as keywords. - As alerts change in Kibana, the results on each page of the response - also change. Use the find API for traditional paginated results, but - avoid using it to export large amounts of data. + $ref: '#/components/schemas/Fleet_fleet_status_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent setup info tags: - - alerting + - Elastic Agents + post: + operationId: setup-agents parameters: - - name: default_search_operator - in: query - description: The default operator to use for the `simple_query_string`. - schema: - type: string - default: OR - example: OR - - name: fields - in: query - description: The fields to return in the `attributes` key of the response. - schema: - type: array - items: - type: string - - name: filter - in: query - description: > - A KQL string that you filter with an attribute from your saved - object. It should look like `savedObjectType.attributes.title: - "myTitle"`. However, if you used a direct attribute of a saved - object, such as `updatedAt`, you must define your filter, for - example, `savedObjectType.updatedAt > 2018-12-22`. - schema: - type: string - - name: has_reference - in: query - description: >- - Filters the rules that have a relation with the reference objects - with a specific type and identifier. - schema: - type: object - properties: - id: - type: string - type: - type: string - - name: page - in: query - description: The page number to return. - schema: - type: integer - default: 1 - example: 1 - - name: per_page - in: query - description: The number of alerts to return per page. - schema: - type: integer - default: 20 - example: 20 - - name: search - in: query - description: >- - An Elasticsearch `simple_query_string` query that filters the alerts - in the response. - schema: - type: string - - name: search_fields - in: query - description: >- - The fields to perform the `simple_query_string` parsed query - against. - schema: - oneOf: - - type: string - - type: array - items: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + admin_password: type: string - - name: sort_field - in: query - description: > - Determines which field is used to sort the results. The field must - exist in the `attributes` key of the response. - schema: - type: string - - name: sort_order - in: query - description: Determines the sort order. - schema: - type: string - enum: - - asc - - desc - default: desc - example: asc + admin_username: + type: string + required: + - admin_username + - admin_password responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Alerting_alert_response_properties' - page: - type: integer - perPage: - type: integer - total: - type: integer - '401': - description: Authorization information is missing or invalid. + $ref: '#/components/schemas/Fleet_fleet_setup_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Initiate agent setup + tags: + - Elastic Agents + /agents/tags: + get: + operationId: get-agent-tags + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alerts/_health: + $ref: '#/components/schemas/Fleet_get_agent_tags_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent tags + tags: + - Elastic Agents + /api/actions: get: - summary: Get the alerting framework health - operationId: legacyGetAlertingHealth deprecated: true - description: Deprecated in 7.13.0. Use the get alerting framework health API instead. - tags: - - alerting + description: Deprecated in 7.13.0. Use the get all connectors API instead. + operationId: legacyGetConnectors responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - alertingFrameworkHealth: - type: object - description: > - Three substates identify the health of the alerting - framework: `decryptionHealth`, `executionHealth`, and - `readHealth`. - properties: - decryptionHealth: - type: object - description: The timestamp and status of the alert decryption. - properties: - status: - type: string - example: ok - enum: - - error - - ok - - warn - timestamp: - type: string - format: date-time - example: '2023-01-13T01:28:00.280Z' - executionHealth: - type: object - description: The timestamp and status of the alert execution. - properties: - status: - type: string - example: ok - enum: - - error - - ok - - warn - timestamp: - type: string - format: date-time - example: '2023-01-13T01:28:00.280Z' - readHealth: - type: object - description: The timestamp and status of the alert reading events. - properties: - status: - type: string - example: ok - enum: - - error - - ok - - warn - timestamp: - type: string - format: date-time - example: '2023-01-13T01:28:00.280Z' - hasPermanentEncryptionKey: - type: boolean - description: >- - If `false`, the encrypted saved object plugin does not - have a permanent encryption key. - example: true - isSufficientlySecure: - type: boolean - description: If `false`, security is enabled but TLS is not. - example: true + items: + $ref: '#/components/schemas/Connectors_action_response_properties' + type: array + description: Indicates a successful call. '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alerts/list_alert_types: - get: - summary: Get the alert types - operationId: legacyGetAlertTypes - deprecated: true - description: Deprecated in 7.13.0. Use the get rule types API instead. + $ref: '#/components/responses/Connectors_401' + summary: Get all connectors tags: - - alerting + - connectors + post: + deprecated: true + description: Deprecated in 7.13.0. Use the create connector API instead. + operationId: legacyCreateConnector + parameters: + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + title: Legacy create connector request properties + type: object + properties: + actionTypeId: + description: The connector type identifier. + type: string + config: + description: >- + The configuration for the connector. Configuration + properties vary depending on the connector type. + type: object + name: + description: The display name for the connector. + type: string + secrets: + description: > + The secrets configuration for the connector. Secrets + configuration properties vary depending on the connector + type. NOTE: Remember these values. You must provide them + each time you update the connector. + type: object + required: true responses: '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: array - items: - type: object - properties: - actionGroups: - description: > - An explicit list of groups for which the alert type can - schedule actions, each with the action group's unique ID - and human readable name. Alert actions validation uses - this configuration to ensure that groups are valid. - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - actionVariables: - description: > - A list of action variables that the alert type makes - available via context and state in action parameter - templates, and a short human readable description. The - Alert UI will use this information to prompt users for - these variables in action parameter editors. - type: object - properties: - context: - type: array - items: - type: object - properties: - name: - type: string - description: - type: string - params: - type: array - items: - type: object - properties: - description: - type: string - name: - type: string - state: - type: array - items: - type: object - properties: - description: - type: string - name: - type: string - authorizedConsumers: - description: >- - The list of the plugins IDs that have access to the - alert type. - type: object - defaultActionGroupId: - description: The default identifier for the alert type group. - type: string - enabledInLicense: - description: >- - Indicates whether the rule type is enabled based on the - subscription. - type: boolean - id: - description: The unique identifier for the alert type. - type: string - isExportable: - description: >- - Indicates whether the alert type is exportable in Saved - Objects Management UI. - type: boolean - minimumLicenseRequired: - description: The subscriptions required to use the alert type. - type: string - name: - description: The descriptive name of the alert type. - type: string - producer: - description: >- - An identifier for the application that produces this - alert type. - type: string - recoveryActionGroup: - description: > - An action group to use when an alert instance goes from - an active state to an inactive one. If it is not - specified, the default recovered action group is used. - type: object - properties: - id: - type: string - name: - type: string + $ref: '#/components/responses/Connectors_200_actions' '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_mute: - post: - summary: Mute an alert instance - operationId: legacyMuteAlertInstance - deprecated: true - description: Deprecated in 7.13.0. Use the mute alert API instead. + $ref: '#/components/responses/Connectors_401' + summary: Create a connector tags: - - alerting + - connectors + '/api/actions/action/{actionId}': + delete: + deprecated: true + description: > + Deprecated in 7.13.0. Use the delete connector API instead. WARNING: + When you delete a connector, it cannot be recovered. + operationId: legacyDeleteConnector parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: An identifier for the alert. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - - in: path - name: alertInstanceId - description: An identifier for the alert instance. - required: true - schema: - type: string - example: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_action_id' responses: '204': description: Indicates a successful call. '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_unmute: - post: - summary: Unmute an alert instance - operationId: legacyUnmuteAlertInstance - deprecated: true - description: Deprecated in 7.13.0. Use the unmute alert API instead. + $ref: '#/components/responses/Connectors_401' + summary: Delete a connector tags: - - alerting + - connectors + get: + deprecated: true + description: Deprecated in 7.13.0. Use the get connector API instead. + operationId: legacyGetConnector parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - in: path - name: alertId - description: An identifier for the alert. - required: true - schema: - type: string - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - - in: path - name: alertInstanceId - description: An identifier for the alert instance. - required: true - schema: - type: string - example: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + - $ref: '#/components/parameters/Connectors_action_id' responses: - '204': - description: Indicates a successful call. + '200': + $ref: '#/components/responses/Connectors_200_actions' '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Alerting_401_response' - /api/apm/agent_keys: - post: - summary: Create an APM agent key - description: Create a new agent key for APM. - operationId: createAgentKey + $ref: '#/components/responses/Connectors_401' + summary: Get connector information tags: - - APM agent keys + - connectors + put: + deprecated: true + description: Deprecated in 7.13.0. Use the update connector API instead. + operationId: legacyUpdateConnector + parameters: + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_action_id' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - type: object + description: The properties vary depending on the connector type. properties: + config: + description: >- + The new connector configuration. Configuration properties + vary depending on the connector type. + type: object name: + description: The new name for the connector. type: string - privileges: - type: array - items: - type: string - enum: - - event:write - - config_agent:read + secrets: + description: >- + The updated secrets configuration for the connector. Secrets + properties vary depending on the connector type. + type: object + title: Legacy update connector request body properties + type: object + required: true responses: '200': - description: Agent key created successfully - content: - application/json: - schema: - type: object - properties: - api_key: - type: string - expiration: - type: integer - format: int64 - id: - type: string - name: - type: string - encoded: - type: string - /api/apm/services/{serviceName}/annotation/search: - get: - summary: Search for annotations - description: Search for annotations related to a specific service. - operationId: getAnnotation + $ref: '#/components/responses/Connectors_200_actions' + '404': + $ref: '#/components/responses/Connectors_404' + summary: Update a connector tags: - - APM annotations - parameters: - - name: serviceName - in: path - required: true - description: The name of the service - schema: - type: string - - name: environment - in: query - required: false - description: The environment to filter annotations by - schema: - type: string - - name: start - in: query - required: false - description: The start date for the search - schema: - type: string - - name: end - in: query - required: false - description: The end date for the search - schema: - type: string - responses: - '200': - description: Successful response - content: - application/json: - schema: - type: object - properties: - annotations: - type: array - items: - type: object - properties: - type: - type: string - enum: - - version - id: - type: string - '@timestamp': - type: number - text: - type: string - /api/apm/services/{serviceName}/annotation: + - connectors + '/api/actions/action/{actionId}/_execute': post: - summary: Create a service annotation - description: Create a new annotation for a specific service. - operationId: createAnnotation - tags: - - APM annotations + deprecated: true + description: Deprecated in 7.13.0. Use the run connector API instead. + operationId: legacyRunConnector parameters: - - name: serviceName - in: path - required: true - description: The name of the service - schema: - type: string + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_action_id' requestBody: - required: true content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - type: object + description: The properties vary depending on the connector type. properties: - '@timestamp': - type: string - service: + params: + description: >- + The parameters of the connector. Parameter properties vary + depending on the connector type. type: object - properties: - version: - type: string - environment: - type: string - message: - type: string - tags: - type: array - items: - type: string + required: + - params + title: Legacy run connector request body properties + type: object + required: true responses: '200': - description: Annotation created successfully content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - _id: - type: string - _index: + actionId: type: string - _source: - type: object - properties: - annotation: - type: string - tags: - type: array - items: - type: string - message: - type: string - service: - type: object - properties: - name: - type: string - environment: - type: string - version: - type: string - event: + data: + oneOf: + - additionalProperties: true + description: Information returned from the action. type: object - properties: - created: - type: string - '@timestamp': - type: string - /api/cases: - post: - summary: Create a case - operationId: createCaseDefaultSpace - description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the - Kibana feature privileges, depending on the owner of the case you're - creating. + - description: An array of information returned from the action. + items: + type: object + type: array + status: + description: The status of the action. + type: string + description: Indicates a successful call. + '401': + $ref: '#/components/responses/Connectors_401' + summary: Run a connector tags: - - cases + - connectors + /api/actions/connector: + post: + description: The connector identifier is randomly generated. + operationId: createConnector parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_kbn_xsrf' requestBody: - required: true content: - application/json: - schema: - $ref: '#/components/schemas/Cases_create_case_request' + application/json; Elastic-Api-Version=2023-10-31: examples: - createCaseRequest: - $ref: '#/components/examples/Cases_create_case_request' + createEmailConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_email_connector_request + createIndexConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_index_connector_request + createWebhookConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_webhook_connector_request + createXmattersConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_xmatters_connector_request + schema: + $ref: '#/components/schemas/Connectors_create_connector_request' + required: true responses: '200': - description: Indicates a successful call. content: - application/json: - schema: - $ref: '#/components/schemas/Cases_case_response_properties' + application/json; Elastic-Api-Version=2023-10-31: examples: - createCaseResponse: - $ref: '#/components/examples/Cases_create_case_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: + createEmailConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_email_connector_response + createIndexConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_index_connector_response + createWebhookConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_webhook_connector_response + createXmattersConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_xmatters_connector_response schema: - $ref: '#/components/schemas/Cases_4xx_response' - delete: - summary: Delete cases - operationId: deleteCaseDefaultSpace - description: > - You must have `read` or `all` privileges and the `delete` sub-feature - privilege for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases you're deleting. + $ref: '#/components/schemas/Connectors_connector_response_properties' + description: Indicates a successful call. + '401': + $ref: '#/components/responses/Connectors_401' + summary: Create a connector with a random ID tags: - - cases + - connectors + /api/actions/connector_types: + get: + operationId: getConnectorTypes parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_ids' + - description: >- + A filter to limit the retrieved connector types to those that + support a specific feature (such as alerting or cases). + in: query + name: feature_id + schema: + $ref: '#/components/schemas/Connectors_features' responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getConnectorTypesServerlessResponse: + $ref: >- + #/components/examples/Connectors_get_connector_types_generativeai_response schema: - $ref: '#/components/schemas/Cases_4xx_response' - patch: - summary: Update cases - operationId: updateCaseDefaultSpace - description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the - Kibana feature privileges, depending on the owner of the case you're - updating. + description: The properties vary for each connector type. + items: + type: object + properties: + enabled: + description: >- + Indicates whether the connector type is enabled in + Kibana. + example: true + type: boolean + enabled_in_config: + description: >- + Indicates whether the connector type is enabled in the + Kibana configuration file. + example: true + type: boolean + enabled_in_license: + description: >- + Indicates whether the connector is enabled in the + license. + example: true + type: boolean + id: + $ref: '#/components/schemas/Connectors_connector_types' + is_system_action_type: + example: false + type: boolean + minimum_license_required: + description: The license that is required to use the connector type. + example: basic + type: string + name: + description: The name of the connector type. + example: Index + type: string + supported_feature_ids: + description: The features that are supported by the connector type. + example: + - alerting + - cases + - siem + items: + $ref: '#/components/schemas/Connectors_features' + type: array + title: Get connector types response body properties + type: array + description: Indicates a successful call. + '401': + $ref: '#/components/responses/Connectors_401' + summary: Get all connector types tags: - - cases + - connectors + '/api/actions/connector/{connectorId}': + delete: + operationId: deleteConnector parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_update_case_request' - examples: - updateCaseRequest: - $ref: '#/components/examples/Cases_update_case_request' + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_connector_id' responses: - '200': + '204': description: Indicates a successful call. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Cases_case_response_properties' - examples: - updateCaseResponse: - $ref: '#/components/examples/Cases_update_case_response' '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/_find: - get: - summary: Search cases - operationId: findCasesDefaultSpace - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases you're seeking. + $ref: '#/components/responses/Connectors_401' + '404': + $ref: '#/components/responses/Connectors_404' + summary: Delete a connector tags: - - cases + - connectors + get: + operationId: getConnector parameters: - - $ref: '#/components/parameters/Cases_assignees' - - $ref: '#/components/parameters/Cases_category' - - $ref: '#/components/parameters/Cases_defaultSearchOperator' - - $ref: '#/components/parameters/Cases_from' - - $ref: '#/components/parameters/Cases_owner' - - $ref: '#/components/parameters/Cases_page_index' - - $ref: '#/components/parameters/Cases_page_size' - - $ref: '#/components/parameters/Cases_reporters' - - $ref: '#/components/parameters/Cases_search' - - $ref: '#/components/parameters/Cases_searchFields' - - $ref: '#/components/parameters/Cases_severity' - - $ref: '#/components/parameters/Cases_sortField' - - $ref: '#/components/parameters/Cases_sort_order' - - $ref: '#/components/parameters/Cases_status' - - $ref: '#/components/parameters/Cases_tags' - - $ref: '#/components/parameters/Cases_to' + - $ref: '#/components/parameters/Connectors_connector_id' responses: '200': - description: Indicates a successful call. content: - application/json: - schema: - type: object - properties: - cases: - type: array - maxItems: 10000 - items: - $ref: '#/components/schemas/Cases_case_response_properties' - count_closed_cases: - type: integer - count_in_progress_cases: - type: integer - count_open_cases: - type: integer - page: - type: integer - per_page: - type: integer - total: - type: integer + application/json; Elastic-Api-Version=2023-10-31: examples: - findCaseResponse: - $ref: '#/components/examples/Cases_find_case_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: + getConnectorResponse: + $ref: '#/components/examples/Connectors_get_connector_response' schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/alerts/{alertId}: - get: - summary: Get cases for an alert - operationId: getCasesByAlertDefaultSpace - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases you're seeking. - x-technical-preview: true + $ref: '#/components/schemas/Connectors_connector_response_properties' + description: Indicates a successful call. + '401': + $ref: '#/components/responses/Connectors_401' + '404': + $ref: '#/components/responses/Connectors_404' + summary: Get a connector information tags: - - cases + - connectors + post: + operationId: createConnectorId parameters: - - $ref: '#/components/parameters/Cases_alert_id' - - $ref: '#/components/parameters/Cases_owner' + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - description: > + A UUID v1 or v4 identifier for the connector. If you omit this + parameter, an identifier is randomly generated. + in: path + name: connectorId + required: true + schema: + example: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createIndexConnectorRequest: + $ref: >- + #/components/examples/Connectors_create_index_connector_request + schema: + $ref: '#/components/schemas/Connectors_create_connector_request' + required: true responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createIndexConnectorResponse: + $ref: >- + #/components/examples/Connectors_create_index_connector_response schema: - type: array - maxItems: 10000 - items: - type: object - properties: - id: - type: string - description: The case identifier. - title: - type: string - description: The case title. - example: - - id: 06116b80-e1c3-11ec-be9b-9b1838238ee6 - title: security_case + $ref: '#/components/schemas/Connectors_connector_response_properties' + description: Indicates a successful call. '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/configure: - get: - summary: Get case settings - operationId: getCaseConfigurationDefaultSpace - description: > - Get setting details such as the closure type, custom fields, templatse, - and the default connector for cases. You must have `read` privileges for - the **Cases** feature in the **Management**, **Observability**, or - **Security** section of the Kibana feature privileges, depending on - where the cases were created. + $ref: '#/components/responses/Connectors_401' + summary: Create a connector tags: - - cases + - connectors + put: + operationId: updateConnector parameters: - - $ref: '#/components/parameters/Cases_owner' + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_connector_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateIndexConnectorRequest: + $ref: >- + #/components/examples/Connectors_update_index_connector_request + schema: + $ref: '#/components/schemas/Connectors_update_connector_request' + required: true responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - type: array - items: - type: object - properties: - closure_type: - $ref: '#/components/schemas/Cases_closure_types' - connector: - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are - not used and are not propagated to individual cases, - therefore it is recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want - a default connector, use `none`. To retrieve - connector IDs, use the find connectors API. - type: string - example: none - name: - description: >- - The name of the connector. If you do not want a - default connector, use `none`. To retrieve connector - names, use the find connectors API. - type: string - example: none - type: - $ref: '#/components/schemas/Cases_connector_types' - created_at: - type: string - format: date-time - example: '2022-06-01T17:07:17.767Z' - created_by: - type: object - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - customFields: - type: array - description: Custom fields configuration details. - items: - type: object - properties: - defaultValue: - oneOf: - - type: string - - type: boolean - description: > - A default value for the custom field. If the - `type` is `text`, the default value must be a - string. If the `type` is `toggle`, the default - value must be boolean. - key: - description: > - A unique key for the custom field. Must be lower - case and composed only of a-z, 0-9, '_', and '-' - characters. It is used in API calls to refer to a - specific custom field. - type: string - minLength: 1 - maxLength: 36 - label: - description: >- - The custom field label that is displayed in the - case. - type: string - minLength: 1 - maxLength: 50 - required: - description: > - Indicates whether the field is required. If - `false`, the custom field can be set to null or - omitted when a case is created or updated. - type: boolean - type: - description: The type of the custom field. - type: string - enum: - - text - - toggle - error: - type: string - nullable: true - example: null - id: - type: string - example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 - mappings: - type: array - items: - type: object - properties: - action_type: - type: string - example: overwrite - source: - type: string - example: title - target: - type: string - example: summary - owner: - $ref: '#/components/schemas/Cases_owners' - templates: - $ref: '#/components/schemas/Cases_templates' - updated_at: - type: string - format: date-time - nullable: true - example: '2022-06-01T19:58:48.169Z' - updated_by: - type: object - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - nullable: true - version: - type: string - example: WzIwNzMsMV0= - examples: - getConfigurationResponse: - $ref: '#/components/examples/Cases_get_case_configuration_response' + $ref: '#/components/schemas/Connectors_connector_response_properties' + description: Indicates a successful call. + '400': + $ref: '#/components/responses/Connectors_401' '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' + $ref: '#/components/responses/Connectors_401' + '404': + $ref: '#/components/responses/Connectors_404' + summary: Update a connector + tags: + - connectors + '/api/actions/connector/{connectorId}/_execute': post: - summary: Add case settings - operationId: setCaseConfigurationDefaultSpace description: > - Case settings include external connection details, custom fields, and - templates. Connectors are used to interface with external systems. You - must create a connector before you can use it in your cases. If you set - a default connector, it is automatically selected when you create cases - in Kibana. If you use the create case API, however, you must still - specify all of the connector details. You must have `all` privileges for - the **Cases** feature in the **Management**, **Observability**, or - **Security** section of the Kibana feature privileges, depending on - where you are creating cases. - tags: - - cases + You can use this API to test an action that involves interaction with + Kibana services or integrations with third-party systems. You must have + `read` privileges for the **Actions and Connectors** feature in the + **Management** section of the Kibana feature privileges. If you use an + index connector, you must also have `all`, `create`, `index`, or `write` + indices privileges. + operationId: runConnector parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_kbn_xsrf' + - $ref: '#/components/parameters/Connectors_connector_id' requestBody: content: - application/json: - schema: - $ref: '#/components/schemas/Cases_set_case_configuration_request' + application/json; Elastic-Api-Version=2023-10-31: examples: - setCaseConfigRequest: - $ref: '#/components/examples/Cases_set_case_configuration_request' + runCasesWebhookConnectorRequest: + $ref: >- + #/components/examples/Connectors_run_cases_webhook_connector_request + runEmailConnectorRequest: + $ref: '#/components/examples/Connectors_run_email_connector_request' + runIndexConnectorRequest: + $ref: '#/components/examples/Connectors_run_index_connector_request' + runJiraConnectorRequest: + $ref: '#/components/examples/Connectors_run_jira_connector_request' + runPagerDutyConnectorRequest: + $ref: >- + #/components/examples/Connectors_run_pagerduty_connector_request + runServerLogConnectorRequest: + $ref: >- + #/components/examples/Connectors_run_server_log_connector_request + runServiceNowITOMConnectorRequest: + $ref: >- + #/components/examples/Connectors_run_servicenow_itom_connector_request + runSlackConnectorRequest: + $ref: >- + #/components/examples/Connectors_run_slack_api_connector_request + runSwimlaneConnectorRequest: + $ref: >- + #/components/examples/Connectors_run_swimlane_connector_request + schema: + $ref: '#/components/schemas/Connectors_run_connector_request' + required: true responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + runCasesWebhookConnectorResponse: + $ref: >- + #/components/examples/Connectors_run_cases_webhook_connector_response + runEmailConnectorResponse: + $ref: >- + #/components/examples/Connectors_run_email_connector_response + runIndexConnectorResponse: + $ref: >- + #/components/examples/Connectors_run_index_connector_response + runJiraConnectorResponse: + $ref: '#/components/examples/Connectors_run_jira_connector_response' + runPagerDutyConnectorResponse: + $ref: >- + #/components/examples/Connectors_run_pagerduty_connector_response + runServerLogConnectorResponse: + $ref: >- + #/components/examples/Connectors_run_server_log_connector_response + runServiceNowITOMConnectorResponse: + $ref: >- + #/components/examples/Connectors_run_servicenow_itom_connector_response + runSlackConnectorResponse: + $ref: >- + #/components/examples/Connectors_run_slack_api_connector_response + runSwimlaneConnectorResponse: + $ref: >- + #/components/examples/Connectors_run_swimlane_connector_response schema: type: object properties: - closure_type: - $ref: '#/components/schemas/Cases_closure_types' - connector: - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are not - used and are not propagated to individual cases, - therefore it is recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want a - default connector, use `none`. To retrieve connector - IDs, use the find connectors API. - type: string - example: none - name: - description: >- - The name of the connector. If you do not want a - default connector, use `none`. To retrieve connector - names, use the find connectors API. - type: string - example: none - type: - $ref: '#/components/schemas/Cases_connector_types' - created_at: - type: string - format: date-time - example: '2022-06-01T17:07:17.767Z' - created_by: - type: object - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - customFields: - type: array - description: Custom fields configuration details. - items: - type: object - properties: - defaultValue: - oneOf: - - type: string - - type: boolean - description: > - A default value for the custom field. If the `type` - is `text`, the default value must be a string. If - the `type` is `toggle`, the default value must be - boolean. - key: - description: > - A unique key for the custom field. Must be lower - case and composed only of a-z, 0-9, '_', and '-' - characters. It is used in API calls to refer to a - specific custom field. - type: string - minLength: 1 - maxLength: 36 - label: - description: >- - The custom field label that is displayed in the - case. - type: string - minLength: 1 - maxLength: 50 - required: - description: > - Indicates whether the field is required. If `false`, - the custom field can be set to null or omitted when - a case is created or updated. - type: boolean - type: - description: The type of the custom field. - type: string - enum: - - text - - toggle - error: - type: string - nullable: true - example: null - id: - type: string - example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 - mappings: - type: array - items: - type: object - properties: - action_type: - type: string - example: overwrite - source: - type: string - example: title - target: - type: string - example: summary - owner: - $ref: '#/components/schemas/Cases_owners' - templates: - $ref: '#/components/schemas/Cases_templates' - updated_at: + connector_id: + description: The identifier for the connector. type: string - format: date-time - nullable: true - example: '2022-06-01T19:58:48.169Z' - updated_by: - type: object - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - nullable: true - version: + data: + oneOf: + - additionalProperties: true + description: Information returned from the action. + type: object + - description: An array of information returned from the action. + items: + type: object + type: array + status: + description: The status of the action. + enum: + - error + - ok type: string - example: WzIwNzMsMV0= - examples: - setCaseConfigResponse: - $ref: '#/components/examples/Cases_set_case_configuration_response' + required: + - connector_id + - status + description: Indicates a successful call. '401': - description: Authorization information is missing or invalid. + $ref: '#/components/responses/Connectors_401' + summary: Run a connector + tags: + - connectors + /api/actions/connectors: + get: + operationId: getConnectors + responses: + '200': content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getConnectorsResponse: + $ref: '#/components/examples/Connectors_get_connectors_response' schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/configure/{configurationId}: - patch: - summary: Update case settings - operationId: updateCaseConfigurationDefaultSpace - description: > - Updates setting details such as the closure type, custom fields, - templates, and the default connector for cases. Connectors are used to - interface with external systems. You must create a connector before you - can use it in your cases. You must have `all` privileges for the - **Cases** feature in the **Management**, **Observability**, or - **Security** section of the Kibana feature privileges, depending on - where the case was created. + items: + $ref: >- + #/components/schemas/Connectors_connector_response_properties + type: array + description: Indicates a successful call. + '401': + $ref: '#/components/responses/Connectors_401' + summary: Get all connectors tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_configuration_id' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_update_case_configuration_request' - examples: - updateCaseConfigurationRequest: - $ref: '#/components/examples/Cases_update_case_configuration_request' + - connectors + /api/actions/list_action_types: + get: + deprecated: true + description: Deprecated in 7.13.0. Use the get all connector types API instead. + operationId: legacyGetConnectorTypes responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - closure_type: - $ref: '#/components/schemas/Cases_closure_types' - connector: - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are not - used and are not propagated to individual cases, - therefore it is recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want a - default connector, use `none`. To retrieve connector - IDs, use the find connectors API. - type: string - example: none - name: - description: >- - The name of the connector. If you do not want a - default connector, use `none`. To retrieve connector - names, use the find connectors API. - type: string - example: none - type: - $ref: '#/components/schemas/Cases_connector_types' - created_at: - type: string - format: date-time - example: '2022-06-01T17:07:17.767Z' - created_by: - type: object - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - customFields: - type: array - description: Custom fields configuration details. - items: - type: object - properties: - defaultValue: - oneOf: - - type: string - - type: boolean - description: > - A default value for the custom field. If the `type` - is `text`, the default value must be a string. If - the `type` is `toggle`, the default value must be - boolean. - key: - description: > - A unique key for the custom field. Must be lower - case and composed only of a-z, 0-9, '_', and '-' - characters. It is used in API calls to refer to a - specific custom field. - type: string - minLength: 1 - maxLength: 36 - label: - description: >- - The custom field label that is displayed in the - case. - type: string - minLength: 1 - maxLength: 50 - required: - description: > - Indicates whether the field is required. If `false`, - the custom field can be set to null or omitted when - a case is created or updated. - type: boolean - type: - description: The type of the custom field. - type: string - enum: - - text - - toggle - error: - type: string - nullable: true - example: null - id: - type: string - example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 - mappings: - type: array - items: - type: object - properties: - action_type: - type: string - example: overwrite - source: - type: string - example: title - target: - type: string - example: summary - owner: - $ref: '#/components/schemas/Cases_owners' - templates: - $ref: '#/components/schemas/Cases_templates' - updated_at: - type: string - format: date-time - nullable: true - example: '2022-06-01T19:58:48.169Z' - updated_by: - type: object - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - nullable: true - version: - type: string - example: WzIwNzMsMV0= - examples: - updateCaseConfigurationResponse: - $ref: >- - #/components/examples/Cases_update_case_configuration_response - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/reporters: - get: - summary: Get case creators - operationId: getCaseReportersDefaultSpace - description: > - Returns information about the users who opened cases. You must have read - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases. The API returns - information about the users as they existed at the time of the case - creation, including their name, full name, and email address. If any of - those details change thereafter or if a user is deleted, the information - returned by this API is unchanged. - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_owner' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: array - maxItems: 10000 + description: The properties vary for each connector type. items: type: object - required: - - email - - full_name - - username properties: - email: - type: string - example: null - nullable: true - full_name: + enabled: + description: >- + Indicates whether the connector type is enabled in + Kibana. + type: boolean + enabledInConfig: + description: >- + Indicates whether the connector type is enabled in the + Kibana `.yml` file. + type: boolean + enabledInLicense: + description: >- + Indicates whether the connector is enabled in the + license. + example: true + type: boolean + id: + description: The unique identifier for the connector type. type: string - example: null - nullable: true - username: + minimumLicenseRequired: + description: The license that is required to use the connector type. type: string - example: elastic - nullable: true - profile_uid: + name: + description: The name of the connector type. type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - examples: - getReportersResponse: - $ref: '#/components/examples/Cases_get_reporters_response' + title: Legacy get connector types response body properties + type: array + description: Indicates a successful call. '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/status: + $ref: '#/components/responses/Connectors_401' + summary: Get connector types + tags: + - connectors + /api/alerting/_health: get: - summary: Get case status summary - operationId: getCaseStatusDefaultSpace description: > - Returns the number of cases that are open, closed, and in progress. - Deprecated in 8.1.0. This API is deprecated and will be removed in a - future release; use the find cases API instead. You must have `read` - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases you're seeking. - deprecated: true - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_owner' + You must have `read` privileges for the **Management > Stack Rules** + feature or for at least one of the **Analytics > Discover**, **Analytics + > Machine Learning**, **Observability**, or **Security** features. + operationId: getAlertingHealth responses: '200': - description: Indicates a successful call. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getAlertingHealthResponse: + $ref: '#/components/examples/Alerting_get_health_response' schema: type: object properties: - count_closed_cases: - type: integer - count_in_progress_cases: - type: integer - count_open_cases: - type: integer - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/tags: - get: - summary: Get case tags - operationId: getCaseTagsDefaultSpace - description: > - Aggregates and returns a list of case tags. You must have read - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases you're seeking. - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_owner' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: array - maxItems: 10000 - items: - type: string - examples: - getTagsResponse: - $ref: '#/components/examples/Cases_get_tags_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/{caseId}: - get: - summary: Get case information - operationId: getCaseDefaultSpace - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the case you're seeking. - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_includeComments' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - examples: - getDefaultCaseResponse: - $ref: '#/components/examples/Cases_get_case_response' - getDefaultObservabilityCaseReponse: - $ref: '#/components/examples/Cases_get_case_observability_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/{caseId}/alerts: - get: - summary: Get all alerts for a case - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases you're seeking. - x-technical-preview: true - operationId: getCaseAlertsDefaultSpace - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_case_id' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Cases_alert_response_properties' - examples: - getCaseAlertsResponse: - $ref: '#/components/examples/Cases_get_case_alerts_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/{caseId}/comments: - post: - summary: Add a case comment or alert - operationId: addCaseCommentDefaultSpace - description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the case you're creating. - NOTE: Each case can have a maximum of 1,000 alerts. - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_case_id' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_add_case_comment_request' - examples: - createCaseCommentRequest: - $ref: '#/components/examples/Cases_add_comment_request' - responses: - '200': + alerting_framework_health: + description: > + Three substates identify the health of the alerting + framework: `decryption_health`, `execution_health`, and + `read_health`. + type: object + properties: + decryption_health: + description: The timestamp and status of the rule decryption. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + execution_health: + description: The timestamp and status of the rule run. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + read_health: + description: The timestamp and status of the rule reading events. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + has_permanent_encryption_key: + description: >- + If `false`, the encrypted saved object plugin does not + have a permanent encryption key. + example: true + type: boolean + is_sufficiently_secure: + description: 'If `false`, security is enabled but TLS is not.' + example: true + type: boolean description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - examples: - createCaseCommentResponse: - $ref: '#/components/examples/Cases_add_comment_response' '401': - description: Authorization information is missing or invalid. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - delete: - summary: Delete all case comments and alerts - operationId: deleteCaseCommentsDefaultSpace - description: > - Deletes all comments and alerts from a case. You must have `all` - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases you're deleting. - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_case_id' - responses: - '204': - description: Indicates a successful call. - '401': + $ref: '#/components/schemas/Alerting_401_response' description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - patch: - summary: Update a case comment or alert - operationId: updateCaseCommentDefaultSpace - description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the case you're updating. - NOTE: You cannot change the comment type or the owner of a comment. + summary: Get the alerting framework health tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_case_id' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_update_case_comment_request' - examples: - updateCaseCommentRequest: - $ref: '#/components/examples/Cases_update_comment_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - examples: - updateCaseCommentResponse: - $ref: '#/components/examples/Cases_update_comment_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' + - alerting + /api/alerting/rule_types: get: - summary: Get all case comments - operationId: getAllCaseCommentsDefaultSpace description: > - Deprecated in 8.1.0. This API is deprecated and will be removed in a - future release; instead, use the get case comment API, which requires a - comment identifier in the path. You must have `read` privileges for the - **Cases** feature in the **Management**, **Observability**, or - **Security** section of the Kibana feature privileges, depending on the - owner of the cases with the comments you're seeking. - deprecated: true - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_case_id' + If you have `read` privileges for one or more Kibana features, the API + response contains information about the appropriate rule types. For + example, there are rule types associated with the **Management > Stack + Rules** feature, **Analytics > Discover** and **Machine Learning** + features, **Observability** features, and **Security** features. To get + rule types associated with the **Stack Monitoring** feature, use the + `monitoring_user` built-in role. + operationId: getRuleTypes responses: '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - '401': - description: Authorization information is missing or invalid. content: - application/json: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getRuleTypesResponse: + $ref: '#/components/examples/Alerting_get_rule_types_response' schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/{caseId}/comments/_find: - get: - summary: Find case comments and alerts - operationId: findCaseCommentsDefaultSpace - description: > - Retrieves a paginated list of comments for a case. You must have `read` - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases with the comments you're - seeking. - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_page_index' - - $ref: '#/components/parameters/Cases_page_size' - - $ref: '#/components/parameters/Cases_sort_order' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/{caseId}/comments/{commentId}: - delete: - summary: Delete a case comment or alert - operationId: deleteCaseCommentDefaultSpace - description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases you're deleting. - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_comment_id' - responses: - '204': - description: Indicates a successful call. - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - get: - summary: Get a case comment or alert - operationId: getCaseCommentDefaultSpace - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases with the - comments you're seeking. - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_comment_id' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - oneOf: - - $ref: >- - #/components/schemas/Cases_alert_comment_response_properties - - $ref: >- - #/components/schemas/Cases_user_comment_response_properties - examples: - getCaseCommentResponse: - $ref: '#/components/examples/Cases_get_comment_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/{caseId}/connector/{connectorId}/_push: - post: - summary: Push a case to an external service - description: > - You must have `all` privileges for the **Actions and Connectors** - feature in the **Management** section of the Kibana feature privileges. - You must also have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the case you're pushing. - operationId: pushCaseDefaultSpace - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_connector_id' - - $ref: '#/components/parameters/Cases_kbn_xsrf' - requestBody: - content: - application/json: - schema: - type: object - nullable: true - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - examples: - pushCaseResponse: - $ref: '#/components/examples/Cases_push_case_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/{caseId}/user_actions: - get: - summary: Get case activity - description: > - Returns all user activity for a case. Deprecated in 8.1.0. This API is - deprecated and will be removed in a future release; use the find user - actions API instead. You must have `read` privileges for the **Cases** - feature in the **Management**, **Observability**, or **Security** - section of the Kibana feature privileges, depending on the owner of the - case you're seeking. - deprecated: true - operationId: getCaseActivityDefaultSpace - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_case_id' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Cases_user_actions_response_properties' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/{caseId}/user_actions/_find: - get: - summary: Find case activity - description: > - Retrives a paginated list of user activity for a case. You must have - `read` privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the case you're seeking. - operationId: findCaseActivityDefaultSpace - tags: - - cases - parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_page_index' - - $ref: '#/components/parameters/Cases_page_size' - - $ref: '#/components/parameters/Cases_sort_order' - - $ref: '#/components/parameters/Cases_user_action_types' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - page: - type: integer - perPage: - type: integer - total: - type: integer - userActions: - type: array - maxItems: 10000 - items: - $ref: >- - #/components/schemas/Cases_user_actions_find_response_properties - examples: - findCaseActivityResponse: - $ref: '#/components/examples/Cases_find_case_activity_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/cases/configure/connectors/_find: - get: - summary: Get case connectors - operationId: findCaseConnectorsDefaultSpace - description: > - Get information about connectors that are supported for use in cases. - You must have `read` privileges for the **Actions and Connectors** - feature in the **Management** section of the Kibana feature privileges. - tags: - - cases - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: array items: type: object properties: - actionTypeId: - $ref: '#/components/schemas/Cases_connector_types' - config: + action_groups: + description: > + An explicit list of groups for which the rule type can + schedule actions, each with the action group's unique ID + and human readable name. Rule actions validation uses + this configuration to ensure that groups are valid. + items: + type: object + properties: + id: + type: string + name: + type: string + type: array + action_variables: + description: > + A list of action variables that the rule type makes + available via context and state in action parameter + templates, and a short human readable description. When + you create a rule in Kibana, it uses this information to + prompt you for these variables in action parameter + editors. type: object properties: - apiUrl: - type: string - projectKey: - type: string - additionalProperties: true - id: - type: string - isDeprecated: - type: boolean - isMissingSecrets: - type: boolean - isPreconfigured: - type: boolean - name: - type: string - referencedByCount: - type: integer - maxItems: 1000 - examples: - findConnectorResponse: - $ref: '#/components/examples/Cases_find_connector_response' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - /api/actions/connector: - post: - summary: Create a connector with a random ID - operationId: createConnector - description: The connector identifier is randomly generated. - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_create_connector_request' - examples: - createEmailConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_email_connector_request - createIndexConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_index_connector_request - createWebhookConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_webhook_connector_request - createXmattersConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_xmatters_connector_request - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_connector_response_properties' - examples: - createEmailConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_email_connector_response - createIndexConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_index_connector_response - createWebhookConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_webhook_connector_response - createXmattersConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_xmatters_connector_response - '401': - $ref: '#/components/responses/Connectors_401' - /api/actions/connector/{connectorId}: - get: - summary: Get a connector information - operationId: getConnector - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_connector_id' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_connector_response_properties' - examples: - getConnectorResponse: - $ref: '#/components/examples/Connectors_get_connector_response' - '401': - $ref: '#/components/responses/Connectors_401' - '404': - $ref: '#/components/responses/Connectors_404' - delete: - summary: Delete a connector - operationId: deleteConnector - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - $ref: '#/components/parameters/Connectors_connector_id' - responses: - '204': - description: Indicates a successful call. - '401': - $ref: '#/components/responses/Connectors_401' - '404': - $ref: '#/components/responses/Connectors_404' - post: - summary: Create a connector - operationId: createConnectorId - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - in: path - name: connectorId - description: > - A UUID v1 or v4 identifier for the connector. If you omit this - parameter, an identifier is randomly generated. - required: true - schema: - type: string - example: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_create_connector_request' - examples: - createIndexConnectorRequest: - $ref: >- - #/components/examples/Connectors_create_index_connector_request - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_connector_response_properties' - examples: - createIndexConnectorResponse: - $ref: >- - #/components/examples/Connectors_create_index_connector_response - '401': - $ref: '#/components/responses/Connectors_401' - put: - summary: Update a connector - operationId: updateConnector - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - $ref: '#/components/parameters/Connectors_connector_id' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_update_connector_request' - examples: - updateIndexConnectorRequest: - $ref: >- - #/components/examples/Connectors_update_index_connector_request - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_connector_response_properties' - '400': - $ref: '#/components/responses/Connectors_401' - '401': - $ref: '#/components/responses/Connectors_401' - '404': - $ref: '#/components/responses/Connectors_404' - /api/actions/connector/{connectorId}/_execute: - post: - summary: Run a connector - operationId: runConnector - description: > - You can use this API to test an action that involves interaction with - Kibana services or integrations with third-party systems. You must have - `read` privileges for the **Actions and Connectors** feature in the - **Management** section of the Kibana feature privileges. If you use an - index connector, you must also have `all`, `create`, `index`, or `write` - indices privileges. - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - $ref: '#/components/parameters/Connectors_connector_id' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_run_connector_request' - examples: - runCasesWebhookConnectorRequest: - $ref: >- - #/components/examples/Connectors_run_cases_webhook_connector_request - runEmailConnectorRequest: - $ref: '#/components/examples/Connectors_run_email_connector_request' - runIndexConnectorRequest: - $ref: '#/components/examples/Connectors_run_index_connector_request' - runJiraConnectorRequest: - $ref: '#/components/examples/Connectors_run_jira_connector_request' - runPagerDutyConnectorRequest: - $ref: >- - #/components/examples/Connectors_run_pagerduty_connector_request - runServerLogConnectorRequest: - $ref: >- - #/components/examples/Connectors_run_server_log_connector_request - runServiceNowITOMConnectorRequest: - $ref: >- - #/components/examples/Connectors_run_servicenow_itom_connector_request - runSlackConnectorRequest: - $ref: >- - #/components/examples/Connectors_run_slack_api_connector_request - runSwimlaneConnectorRequest: - $ref: >- - #/components/examples/Connectors_run_swimlane_connector_request - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - required: - - connector_id - - status - properties: - connector_id: - type: string - description: The identifier for the connector. - data: - oneOf: - - type: object - description: Information returned from the action. - additionalProperties: true - - type: array - description: An array of information returned from the action. - items: - type: object - status: - type: string - description: The status of the action. - enum: - - error - - ok - examples: - runCasesWebhookConnectorResponse: - $ref: >- - #/components/examples/Connectors_run_cases_webhook_connector_response - runEmailConnectorResponse: - $ref: >- - #/components/examples/Connectors_run_email_connector_response - runIndexConnectorResponse: - $ref: >- - #/components/examples/Connectors_run_index_connector_response - runJiraConnectorResponse: - $ref: '#/components/examples/Connectors_run_jira_connector_response' - runPagerDutyConnectorResponse: - $ref: >- - #/components/examples/Connectors_run_pagerduty_connector_response - runServerLogConnectorResponse: - $ref: >- - #/components/examples/Connectors_run_server_log_connector_response - runServiceNowITOMConnectorResponse: - $ref: >- - #/components/examples/Connectors_run_servicenow_itom_connector_response - runSlackConnectorResponse: - $ref: >- - #/components/examples/Connectors_run_slack_api_connector_response - runSwimlaneConnectorResponse: - $ref: >- - #/components/examples/Connectors_run_swimlane_connector_response - '401': - $ref: '#/components/responses/Connectors_401' - /api/actions/connectors: - get: - summary: Get all connectors - operationId: getConnectors - tags: - - connectors - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: array - items: - $ref: >- - #/components/schemas/Connectors_connector_response_properties - examples: - getConnectorsResponse: - $ref: '#/components/examples/Connectors_get_connectors_response' - '401': - $ref: '#/components/responses/Connectors_401' - /api/actions/connector_types: - get: - summary: Get all connector types - operationId: getConnectorTypes - tags: - - connectors - parameters: - - in: query - name: feature_id - description: >- - A filter to limit the retrieved connector types to those that - support a specific feature (such as alerting or cases). - schema: - $ref: '#/components/schemas/Connectors_features' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - title: Get connector types response body properties - description: The properties vary for each connector type. - type: array - items: - type: object - properties: - enabled: - type: boolean - description: >- - Indicates whether the connector type is enabled in - Kibana. - example: true - enabled_in_config: - type: boolean - description: >- - Indicates whether the connector type is enabled in the - Kibana configuration file. - example: true - enabled_in_license: - type: boolean - description: >- - Indicates whether the connector is enabled in the - license. - example: true - id: - $ref: '#/components/schemas/Connectors_connector_types' - is_system_action_type: - type: boolean - example: false - minimum_license_required: - type: string - description: The license that is required to use the connector type. - example: basic - name: - type: string - description: The name of the connector type. - example: Index - supported_feature_ids: - type: array - description: The features that are supported by the connector type. - items: - $ref: '#/components/schemas/Connectors_features' - example: - - alerting - - cases - - siem - examples: - getConnectorTypesServerlessResponse: - $ref: >- - #/components/examples/Connectors_get_connector_types_generativeai_response - '401': - $ref: '#/components/responses/Connectors_401' - /api/actions/action/{actionId}: - delete: - summary: Delete a connector - operationId: legacyDeleteConnector - deprecated: true - description: > - Deprecated in 7.13.0. Use the delete connector API instead. WARNING: - When you delete a connector, it cannot be recovered. - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - $ref: '#/components/parameters/Connectors_action_id' - responses: - '204': - description: Indicates a successful call. - '401': - $ref: '#/components/responses/Connectors_401' - get: - summary: Get connector information - operationId: legacyGetConnector - description: Deprecated in 7.13.0. Use the get connector API instead. - deprecated: true - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_action_id' - responses: - '200': - $ref: '#/components/responses/Connectors_200_actions' - '401': - $ref: '#/components/responses/Connectors_401' - put: - summary: Update a connector - operationId: legacyUpdateConnector - deprecated: true - description: Deprecated in 7.13.0. Use the update connector API instead. - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - $ref: '#/components/parameters/Connectors_action_id' - requestBody: - required: true - content: - application/json: - schema: - title: Legacy update connector request body properties - description: The properties vary depending on the connector type. - type: object - properties: - config: - type: object - description: >- - The new connector configuration. Configuration properties - vary depending on the connector type. - name: - type: string - description: The new name for the connector. - secrets: - type: object - description: >- - The updated secrets configuration for the connector. Secrets - properties vary depending on the connector type. - responses: - '200': - $ref: '#/components/responses/Connectors_200_actions' - '404': - $ref: '#/components/responses/Connectors_404' - /api/actions: - get: - summary: Get all connectors - operationId: legacyGetConnectors - deprecated: true - description: Deprecated in 7.13.0. Use the get all connectors API instead. - tags: - - connectors - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Connectors_action_response_properties' - '401': - $ref: '#/components/responses/Connectors_401' - post: - summary: Create a connector - operationId: legacyCreateConnector - deprecated: true - description: Deprecated in 7.13.0. Use the create connector API instead. - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - title: Legacy create connector request properties - type: object - properties: - actionTypeId: - type: string - description: The connector type identifier. - config: - type: object - description: >- - The configuration for the connector. Configuration - properties vary depending on the connector type. - name: - type: string - description: The display name for the connector. - secrets: - type: object - description: > - The secrets configuration for the connector. Secrets - configuration properties vary depending on the connector - type. NOTE: Remember these values. You must provide them - each time you update the connector. - responses: - '200': - $ref: '#/components/responses/Connectors_200_actions' - '401': - $ref: '#/components/responses/Connectors_401' - /api/actions/list_action_types: - get: - summary: Get connector types - operationId: legacyGetConnectorTypes - deprecated: true - description: Deprecated in 7.13.0. Use the get all connector types API instead. - tags: - - connectors - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - title: Legacy get connector types response body properties - description: The properties vary for each connector type. - type: array - items: - type: object - properties: - enabled: - type: boolean - description: >- - Indicates whether the connector type is enabled in - Kibana. - enabledInConfig: - type: boolean - description: >- - Indicates whether the connector type is enabled in the - Kibana `.yml` file. - enabledInLicense: - type: boolean - description: >- - Indicates whether the connector is enabled in the - license. - example: true - id: - type: string - description: The unique identifier for the connector type. - minimumLicenseRequired: - type: string - description: The license that is required to use the connector type. - name: - type: string - description: The name of the connector type. - '401': - $ref: '#/components/responses/Connectors_401' - /api/actions/action/{actionId}/_execute: - post: - summary: Run a connector - operationId: legacyRunConnector - deprecated: true - description: Deprecated in 7.13.0. Use the run connector API instead. - tags: - - connectors - parameters: - - $ref: '#/components/parameters/Connectors_kbn_xsrf' - - $ref: '#/components/parameters/Connectors_action_id' - requestBody: - required: true - content: - application/json: - schema: - title: Legacy run connector request body properties - description: The properties vary depending on the connector type. - type: object - required: - - params - properties: - params: - type: object - description: >- - The parameters of the connector. Parameter properties vary - depending on the connector type. - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - actionId: - type: string - data: - oneOf: - - type: object - description: Information returned from the action. - additionalProperties: true - - type: array - description: An array of information returned from the action. - items: - type: object - status: - type: string - description: The status of the action. - '401': - $ref: '#/components/responses/Connectors_401' - /api/data_views: - get: - summary: Get all data views - operationId: getAllDataViewsDefault - tags: - - data views - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - data_view: - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - namespaces: - type: array - items: - type: string - title: - type: string - typeMeta: - type: object - examples: - getAllDataViewsResponse: - $ref: '#/components/examples/Data_views_get_data_views_response' - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view: - post: - summary: Create a data view - operationId: createDataViewDefaultw - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_create_data_view_request_object' - examples: - createDataViewRequest: - $ref: '#/components/examples/Data_views_create_data_view_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view/{viewId}: - get: - summary: Get a data view - operationId: getDataViewDefault - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_view_id' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - examples: - getDataViewResponse: - $ref: '#/components/examples/Data_views_get_data_view_response' - '404': - description: Object is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_404_response' - delete: - summary: Delete a data view - operationId: deleteDataViewDefault - description: | - WARNING: When you delete a data view, it cannot be recovered. - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' - responses: - '204': - description: Indicates a successful call. - '404': - description: Object is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_404_response' - post: - summary: Update a data view - operationId: updateDataViewDefault - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_update_data_view_request_object' - examples: - updateDataViewRequest: - $ref: '#/components/examples/Data_views_update_data_view_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view/{viewId}/fields: - post: - summary: Update data view fields metadata - operationId: updateFieldsMetadataDefault - description: > - Update fields presentation metadata such as count, customLabel, - customDescription, and format. - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - fields - properties: - fields: - description: The field object. - type: object - examples: - updateFieldsMetadataRequest: - $ref: '#/components/examples/Data_views_update_field_metadata_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - acknowledged: - type: boolean - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view/{viewId}/runtime_field: - post: - summary: Create a runtime field - operationId: createRuntimeFieldDefault - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - name - - runtimeField - properties: - name: - type: string - description: | - The name for a runtime field. - runtimeField: - type: object - description: | - The runtime field definition object. - examples: - createRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_create_runtime_field_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - put: - summary: Create or update a runtime field - operationId: createUpdateRuntimeFieldDefault - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - name: viewId - in: path - description: | - The ID of the data view fields you want to update. - required: true - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - name - - runtimeField - properties: - name: - type: string - description: | - The name for a runtime field. - runtimeField: - type: object - description: | - The runtime field definition object. - examples: - updateRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_create_runtime_field_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - data_view: - type: object - fields: - type: array - items: - type: object - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/data_view/{viewId}/runtime_field/{fieldName}: - get: - summary: Get a runtime field - operationId: getRuntimeFieldDefault - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - data_view: - type: object - fields: - type: array - items: - type: object - examples: - getRuntimeFieldResponse: - $ref: '#/components/examples/Data_views_get_runtime_field_response' - '404': - description: Object is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_404_response' - delete: - summary: Delete a runtime field from a data view - operationId: deleteRuntimeFieldDefault - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' - responses: - '200': - description: Indicates a successful call. - '404': - description: Object is not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_404_response' - post: - summary: Update a runtime field - operationId: updateRuntimeFieldDefault - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - runtimeField - properties: - runtimeField: - type: object - description: | - The runtime field definition object. - - You can update following fields: - - - `type` - - `script` - examples: - updateRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_update_runtime_field_request' - responses: - '200': - description: Indicates a successful call. - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/default: - get: - summary: Get the default data view - operationId: getDefaultDataViewDefault - tags: - - data views - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - data_view_id: - type: string - examples: - getDefaultDataViewResponse: - $ref: >- - #/components/examples/Data_views_get_default_data_view_response - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - post: - summary: Set the default data view - operationId: setDefaultDatailViewDefault - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - data_view_id - properties: - data_view_id: - type: string - nullable: true - description: > - The data view identifier. NOTE: The API does not validate - whether it is a valid identifier. Use `null` to unset the - default data view. - force: - type: boolean - description: Update an existing default data view identifier. - default: false - examples: - setDefaultDataViewRequest: - $ref: '#/components/examples/Data_views_set_default_data_view_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - acknowledged: - type: boolean - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_400_response' - /api/data_views/swap_references: - post: - summary: Swap saved object references - operationId: swapDataViewsDefault - description: > - Changes saved object references from one data view identifier to - another. WARNING: Misuse can break large numbers of saved objects! - Practicing with a backup is recommended. - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_swap_data_view_request_object' - examples: - swapDataViewRequest: - $ref: '#/components/examples/Data_views_swap_data_view_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - deleteStatus: - type: object - properties: - deletePerformed: - type: boolean - remainingRefs: - type: integer - result: - type: array - items: - type: object - properties: - id: - type: string - description: A saved object identifier. - type: - type: string - description: The saved object type. - /api/data_views/swap_references/_preview: - post: - summary: Preview a saved object reference swap - operationId: previewSwapDataViewsDefault - description: > - Preview the impact of swapping saved object references from one data - view identifier to another. - tags: - - data views - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Data_views_swap_data_view_request_object' - examples: - previewSwapDataViewRequest: - $ref: >- - #/components/examples/Data_views_preview_swap_data_view_request - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - result: - type: array - items: - type: object - properties: - id: - type: string - description: A saved object identifier. - type: - type: string - description: The saved object type. - /api/ml/saved_objects/sync: - get: - summary: Sync saved objects in the default space - description: > - Synchronizes Kibana saved objects for machine learning jobs and trained - models in the default space. You must have `all` privileges for the - **Machine Learning** feature in the **Analytics** section of the Kibana - feature privileges. This API runs automatically when you start Kibana - and periodically thereafter. - operationId: mlSync - tags: - - ml - parameters: - - $ref: '#/components/parameters/Machine_learning_APIs_simulateParam' - responses: - '200': - description: Indicates a successful call - content: - application/json: - schema: - $ref: '#/components/schemas/Machine_learning_APIs_mlSync200Response' - examples: - syncExample: - $ref: '#/components/examples/Machine_learning_APIs_mlSyncExample' - '401': - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/Machine_learning_APIs_mlSync4xxResponse' - /api/encrypted_saved_objects/_rotate_key: - post: - summary: Rotate a key for encrypted saved objects - operationId: rotateEncryptionKey - description: > - Superuser role required. - - - If a saved object cannot be decrypted using the primary encryption key, - then Kibana will attempt to decrypt it using the specified - decryption-only keys. In most of the cases this overhead is negligible, - but if you're dealing with a large number of saved objects and - experiencing performance issues, you may want to rotate the encryption - key. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - tags: - - saved objects - parameters: - - in: query - name: batch_size - schema: - type: number - default: 10000 - required: false - description: > - Specifies a maximum number of saved objects that Kibana can process - in a single batch. Bulk key rotation is an iterative process since - Kibana may not be able to fetch and process all required saved - objects in one go and splits processing into consequent batches. By - default, the batch size is 10000, which is also a maximum allowed - value. - - in: query - name: type - schema: - type: string - required: false - description: > - Limits encryption key rotation only to the saved objects with the - specified type. By default, Kibana tries to rotate the encryption - key for all saved object types that may contain encrypted - attributes. - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - total: - type: number - description: > - Indicates the total number of all encrypted saved objects - (optionally filtered by the requested `type`), regardless - of the key Kibana used for encryption. - successful: - type: number - description: > - Indicates the total number of all encrypted saved objects - (optionally filtered by the requested `type`), regardless - of the key Kibana used for encryption. - - - NOTE: In most cases, `total` will be greater than - `successful` even if `failed` is zero. The reason is that - Kibana may not need or may not be able to rotate - encryption keys for all encrypted saved objects. - failed: - type: number - description: > - Indicates the number of the saved objects that were still - encrypted with one of the old encryption keys that Kibana - failed to re-encrypt with the primary key. - examples: - rotateEncryptionKeyResponse: - $ref: '#/components/examples/Saved_objects_key_rotation_response' - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - '429': - description: Already in progress. - content: - application/json: - schema: - type: object - /api/saved_objects/_bulk_create: - post: - summary: Create saved objects - operationId: bulkCreateSavedObjects - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - in: query - name: overwrite - description: When true, overwrites the document with the same identifier. - schema: - type: boolean - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: object - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/_bulk_delete: - post: - summary: Delete saved objects - operationId: bulkDeleteSavedObjects - description: | - WARNING: When you delete a saved object, it cannot be recovered. - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - in: query - name: force - description: > - When true, force delete objects that exist in multiple namespaces. - Note that the option applies to the whole request. Use the delete - object API to specify per-object deletion behavior. TIP: Use this if - you attempted to delete objects and received an HTTP 400 error with - the following message: "Unable to delete saved object that exists in - multiple namespaces, use the force option to delete it anyway". - WARNING: When you bulk delete objects that exist in multiple - namespaces, the API also deletes legacy url aliases that reference - the object. These requests are batched to minimise the impact but - they can place a heavy load on Kibana. Make sure you limit the - number of objects that exist in multiple namespaces in a single bulk - delete operation. - schema: - type: boolean - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: object - responses: - '200': - description: > - Indicates a successful call. NOTE: This HTTP response code indicates - that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. - content: - application/json: - schema: - type: object - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/_bulk_get: - post: - summary: Get saved objects - operationId: bulkGetSavedObjects - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: object - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/_bulk_resolve: - post: - summary: Resolve saved objects - operationId: bulkResolveSavedObjects - deprecated: true - description: > - Retrieve multiple Kibana saved objects by identifier using any legacy - URL aliases if they exist. Under certain circumstances when Kibana is - upgraded, saved object migrations may necessitate regenerating some - object IDs to enable new features. When an object's ID is regenerated, a - legacy URL alias is created for that object, preserving its old ID. In - such a scenario, that object can be retrieved by the bulk resolve API - using either its new ID or its old ID. - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: object - responses: - '200': - description: > - Indicates a successful call. NOTE: This HTTP response code indicates - that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. - content: - application/json: - schema: - type: object - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/_bulk_update: - post: - summary: Update saved objects - operationId: bulkUpdateSavedObjects - description: Update the attributes for multiple Kibana saved objects. - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: object - responses: - '200': - description: > - Indicates a successful call. NOTE: This HTTP response code indicates - that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. - content: - application/json: - schema: - type: object - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/_export: - post: - summary: Export saved objects - operationId: exportSavedObjectsDefault - description: > - Retrieve sets of saved objects that you want to import into Kibana. - - You must include `type` or `objects` in the request body. - - - Exported saved objects are not backwards compatible and cannot be - imported into an older version of Kibana. - - - NOTE: The `savedObjects.maxImportExportSize` configuration setting - limits the number of saved objects which may be exported. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - excludeExportDetails: - description: Do not add export details entry at the end of the stream. - type: boolean - default: false - includeReferencesDeep: - description: >- - Includes all of the referenced objects in the exported - objects. - type: boolean - objects: - description: A list of objects to export. - type: array - items: - type: object - type: - description: >- - The saved object types to include in the export. Use `*` to - export all the types. - oneOf: - - type: string - - type: array - items: - type: string - examples: - exportSavedObjectsRequest: - $ref: '#/components/examples/Saved_objects_export_objects_request' - responses: - '200': - description: Indicates a successful call. - content: - application/x-ndjson: - schema: - type: object - additionalProperties: true - examples: - exportSavedObjectsResponse: - $ref: '#/components/examples/Saved_objects_export_objects_response' - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/_find: - get: - summary: Search for saved objects - operationId: findSavedObjects - description: Retrieve a paginated set of Kibana saved objects. - deprecated: true - tags: - - saved objects - parameters: - - in: query - name: aggs - description: > - An aggregation structure, serialized as a string. The field format - is similar to filter, meaning that to use a saved object type - attribute in the aggregation, the `savedObjectType.attributes.title: - "myTitle"` format must be used. For root fields, the syntax is - `savedObjectType.rootField`. NOTE: As objects change in Kibana, the - results on each page of the response also change. Use the find API - for traditional paginated results, but avoid using it to export - large amounts of data. - schema: - type: string - - in: query - name: default_search_operator - description: The default operator to use for the `simple_query_string`. - schema: - type: string - - in: query - name: fields - description: The fields to return in the attributes key of the response. - schema: - oneOf: - - type: string - - type: array - - in: query - name: filter - description: > - The filter is a KQL string with the caveat that if you filter with - an attribute from your saved object type, it should look like that: - `savedObjectType.attributes.title: "myTitle"`. However, if you use a - root attribute of a saved object such as `updated_at`, you will have - to define your filter like that: `savedObjectType.updated_at > - 2018-12-22`. - schema: - type: string - - in: query - name: has_no_reference - description: >- - Filters to objects that do not have a relationship with the type and - identifier combination. - schema: - type: object - - in: query - name: has_no_reference_operator - description: >- - The operator to use for the `has_no_reference` parameter. Either - `OR` or `AND`. Defaults to `OR`. - schema: - type: string - - in: query - name: has_reference - description: >- - Filters to objects that have a relationship with the type and ID - combination. - schema: - type: object - - in: query - name: has_reference_operator - description: >- - The operator to use for the `has_reference` parameter. Either `OR` - or `AND`. Defaults to `OR`. - schema: - type: string - - in: query - name: page - description: The page of objects to return. - schema: - type: integer - - in: query - name: per_page - description: The number of objects to return per page. - schema: - type: integer - - in: query - name: search - description: >- - An Elasticsearch `simple_query_string` query that filters the - objects in the response. - schema: - type: string - - in: query - name: search_fields - description: >- - The fields to perform the `simple_query_string` parsed query - against. - schema: - oneOf: - - type: string - - type: array - - in: query - name: sort_field - description: > - Sorts the response. Includes "root" and "type" fields. "root" fields - exist for all saved objects, such as "updated_at". "type" fields are - specific to an object type, such as fields returned in the - attributes key of the response. When a single type is defined in the - type parameter, the "root" and "type" fields are allowed, and - validity checks are made in that order. When multiple types are - defined in the type parameter, only "root" fields are allowed. - schema: - type: string - - in: query - name: type - description: The saved object types to include. - required: true - schema: - oneOf: - - type: string - - type: array - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/_import: - post: - summary: Import saved objects - operationId: importSavedObjectsDefault - description: > - Create sets of Kibana saved objects from a file created by the export - API. - - Saved objects can be imported only into the same version, a newer minor - on the same major, or the next major. Exported saved objects are not - backwards compatible and cannot be imported into an older version of - Kibana. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - in: query - name: createNewCopies - schema: - type: boolean - required: false - description: > - Creates copies of saved objects, regenerates each object ID, and - resets the origin. When used, potential conflict errors are avoided. - NOTE: This option cannot be used with the `overwrite` and - `compatibilityMode` options. - - in: query - name: overwrite - schema: - type: boolean - required: false - description: > - Overwrites saved objects when they already exist. When used, - potential conflict errors are automatically resolved by overwriting - the destination object. NOTE: This option cannot be used with the - `createNewCopies` option. - - in: query - name: compatibilityMode - schema: - type: boolean - required: false - description: > - Applies various adjustments to the saved objects that are being - imported to maintain compatibility between different Kibana - versions. Use this option only if you encounter issues with imported - saved objects. NOTE: This option cannot be used with the - `createNewCopies` option. - requestBody: - required: true - content: - multipart/form-data: - schema: - type: object - properties: - file: - description: > - A file exported using the export API. NOTE: The - `savedObjects.maxImportExportSize` configuration setting - limits the number of saved objects which may be included in - this file. Similarly, the - `savedObjects.maxImportPayloadBytes` setting limits the - overall size of the file that can be imported. - examples: - importObjectsRequest: - $ref: '#/components/examples/Saved_objects_import_objects_request' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - success: - type: boolean - description: > - Indicates when the import was successfully completed. When - set to false, some objects may not have been created. For - additional information, refer to the `errors` and - `successResults` properties. - successCount: - type: integer - description: Indicates the number of successfully imported records. - errors: - type: array - items: - type: object - description: > - Indicates the import was unsuccessful and specifies the - objects that failed to import. - - - NOTE: One object may result in multiple errors, which - requires separate steps to resolve. For instance, a - `missing_references` error and conflict error. - successResults: - type: array - items: - type: object - description: > - Indicates the objects that are successfully imported, with - any metadata if applicable. - - - NOTE: Objects are created only when all resolvable errors - are addressed, including conflicts and missing references. - If objects are created as new copies, each entry in the - `successResults` array includes a `destinationId` - attribute. - examples: - importObjectsResponse: - $ref: '#/components/examples/Saved_objects_import_objects_response' - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/_resolve_import_errors: - post: - summary: Resolve import errors - operationId: resolveImportErrors - description: > - To resolve errors from the Import objects API, you can: - - - * Retry certain saved objects - - * Overwrite specific saved objects - - * Change references to different saved objects - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - in: query - name: compatibilityMode - schema: - type: boolean - required: false - description: > - Applies various adjustments to the saved objects that are being - imported to maintain compatibility between different Kibana - versions. When enabled during the initial import, also enable when - resolving import errors. This option cannot be used with the - `createNewCopies` option. - - in: query - name: createNewCopies - schema: - type: boolean - required: false - description: > - Creates copies of the saved objects, regenerates each object ID, and - resets the origin. When enabled during the initial import, also - enable when resolving import errors. - requestBody: - required: true - content: - multipart/form-data: - schema: - type: object - required: - - retries - properties: - file: - description: The same file given to the import API. - type: string - format: binary - retries: - description: >- - The retry operations, which can specify how to resolve - different types of errors. - type: array - items: - type: object - required: - - type - - id - properties: - type: - description: The saved object type. - type: string - id: - description: The saved object ID. - type: string - overwrite: - description: >- - When set to `true`, the source object overwrites the - conflicting destination object. When set to `false`, - does nothing. - type: boolean - destinationId: - description: >- - Specifies the destination ID that the imported object - should have, if different from the current ID. - type: string - replaceReferences: - description: >- - A list of `type`, `from`, and `to` used to change the - object references. - type: array - items: - type: object - properties: - type: - type: string - from: - type: string - to: - type: string - ignoreMissingReferences: - description: >- - When set to `true`, ignores missing reference errors. - When set to `false`, does nothing. - type: boolean - examples: - resolveImportErrorsRequest: - $ref: >- - #/components/examples/Saved_objects_resolve_missing_reference_request - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - properties: - success: - type: boolean - description: > - Indicates a successful import. When set to `false`, some - objects may not have been created. For additional - information, refer to the `errors` and `successResults` - properties. - successCount: - type: number - description: | - Indicates the number of successfully resolved records. - errors: - type: array - description: > - Specifies the objects that failed to resolve. - - - NOTE: One object can result in multiple errors, which - requires separate steps to resolve. For instance, a - `missing_references` error and a `conflict` error. - items: - type: object - successResults: - type: array - description: > - Indicates the objects that are successfully imported, with - any metadata if applicable. - - - NOTE: Objects are only created when all resolvable errors - are addressed, including conflict and missing references. - items: - type: object - examples: - resolveImportErrorsResponse: - $ref: >- - #/components/examples/Saved_objects_resolve_missing_reference_response - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/saved_objects/{type}: - post: - summary: Create a saved object - operationId: createSavedObject - description: Create a Kibana saved object with a randomly generated identifier. - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' - - in: query - name: overwrite - description: If true, overwrites the document with the same identifier. - schema: - type: boolean - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - attributes - properties: - attributes: - $ref: '#/components/schemas/Saved_objects_attributes' - initialNamespaces: - $ref: '#/components/schemas/Saved_objects_initial_namespaces' - references: - $ref: '#/components/schemas/Saved_objects_references' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - '409': - description: Indicates a conflict error. - content: - application/json: - schema: - type: object - /api/saved_objects/{type}/{id}: - get: - summary: Get a saved object - operationId: getSavedObject - description: Retrieve a single Kibana saved object by identifier. - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_saved_object_id' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - post: - summary: Create a saved object - operationId: createSavedObjectId - description: >- - Create a Kibana saved object and specify its identifier instead of using - a randomly generated ID. - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - $ref: '#/components/parameters/Saved_objects_saved_object_id' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' - - in: query - name: overwrite - description: If true, overwrites the document with the same identifier. - schema: - type: boolean - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - attributes - properties: - attributes: - $ref: '#/components/schemas/Saved_objects_attributes' - initialNamespaces: - $ref: '#/components/schemas/Saved_objects_initial_namespaces' - references: - $ref: '#/components/schemas/Saved_objects_initial_namespaces' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - '409': - description: Indicates a conflict error. - content: - application/json: - schema: - type: object - put: - summary: Update a saved object - operationId: updateSavedObject - description: Update the attributes for Kibana saved objects. - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - $ref: '#/components/parameters/Saved_objects_saved_object_id' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' - requestBody: - required: true - content: - application/json: - schema: - type: object - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - '404': - description: Indicates the object was not found. - content: - application/json: - schema: - type: object - '409': - description: Indicates a conflict error. - content: - application/json: - schema: - type: object - /api/saved_objects/resolve/{type}/{id}: - get: - summary: Resolve a saved object - operationId: resolveSavedObject - description: > - Retrieve a single Kibana saved object by identifier using any legacy URL - alias if it exists. Under certain circumstances, when Kibana is - upgraded, saved object migrations may necessitate regenerating some - object IDs to enable new features. When an object's ID is regenerated, a - legacy URL alias is created for that object, preserving its old ID. In - such a scenario, that object can be retrieved using either its new ID or - its old ID. - deprecated: true - tags: - - saved objects - parameters: - - $ref: '#/components/parameters/Saved_objects_saved_object_id' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' - responses: - '200': - description: Indicates a successful call. - content: - application/json: - schema: - type: object - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - /api/status: - get: - operationId: /api/status#0 - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: Set to "true" to get the response in v7 format. - in: query - name: v7format - required: false - schema: - type: boolean - - description: Set to "true" to get the response in v8 format. - in: query - name: v8format - required: false - schema: - type: boolean - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - anyOf: - - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' - - $ref: >- - #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse - description: >- - Kibana's operational status. A minimal response is sent for - unauthorized users. - description: Overall status is OK and Kibana should be functioning normally. - '503': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - anyOf: - - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' - - $ref: >- - #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse - description: >- - Kibana's operational status. A minimal response is sent for - unauthorized users. - description: >- - Kibana or some of it's essential services are unavailable. Kibana - may be degraded or unavailable. - summary: Get Kibana's current status - tags: - - system - security: - - Kibana_HTTP_APIs_basicAuth: [] -components: - parameters: - Alerting_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - Alerting_rule_id: - in: path - name: ruleId - description: An identifier for the rule. - required: true - schema: - type: string - example: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 - Alerting_alert_id: - in: path - name: alertId - description: >- - An identifier for the alert. The identifier is generated by the rule and - might be any arbitrary string. - required: true - schema: - type: string - example: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 - Cases_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - Cases_ids: - name: ids - description: > - The cases that you want to removed. All non-ASCII characters must be URL - encoded. - in: query - required: true - schema: - type: array - items: - type: string - minItems: 1 - maxItems: 100 - example: d4e7abb0-b462-11ec-9a8d-698504725a43 - Cases_assignees: - in: query - name: assignees - description: > - Filters the returned cases by assignees. Valid values are `none` or - unique identifiers for the user profiles. These identifiers can be found - by using the suggest user profile API. - schema: - oneOf: - - type: string - - type: array - items: - type: string - maxItems: 100 - Cases_category: - in: query - name: category - description: Filters the returned cases by category. - schema: - oneOf: - - type: string - example: my-category - - type: array - items: - type: string - maxItems: 100 - Cases_defaultSearchOperator: - in: query - name: defaultSearchOperator - description: he default operator to use for the simple_query_string. - schema: - type: string - default: OR - example: OR - Cases_from: - in: query - name: from - description: > - Returns only cases that were created after a specific date. The date - must be specified as a KQL data range or date match expression. - schema: - type: string - example: now-1d - Cases_owner: - in: query - name: owner - description: > - A filter to limit the response to a specific set of applications. If - this parameter is omitted, the response contains information about all - the cases that the user has access to read. - schema: - oneOf: - - $ref: '#/components/schemas/Cases_owners' - - type: array - items: - $ref: '#/components/schemas/Cases_owners' - example: cases - Cases_page_index: - in: query - name: page - description: The page number to return. - required: false - schema: - type: integer - default: 1 - Cases_page_size: - in: query - name: perPage - description: The number of items to return. Limited to 100 items. - required: false - schema: - type: integer - default: 20 - maximum: 100 - Cases_reporters: - in: query - name: reporters - description: Filters the returned cases by the user name of the reporter. - schema: - oneOf: - - type: string - - type: array - items: - type: string - maxItems: 100 - example: elastic - Cases_search: - in: query - name: search - description: >- - An Elasticsearch simple_query_string query that filters the objects in - the response. - schema: - type: string - Cases_searchFields: - in: query - name: searchFields - description: The fields to perform the simple_query_string parsed query against. - schema: - oneOf: - - $ref: '#/components/schemas/Cases_searchFieldsType' - - type: array - items: - $ref: '#/components/schemas/Cases_searchFieldsType' - Cases_severity: - in: query - name: severity - description: The severity of the case. - schema: - type: string - enum: - - critical - - high - - low - - medium - Cases_sortField: - in: query - name: sortField - description: Determines which field is used to sort the results. - schema: - type: string - enum: - - createdAt - - updatedAt - - closedAt - - title - - category - - status - - severity - default: createdAt - example: updatedAt - Cases_sort_order: - in: query - name: sortOrder - description: Determines the sort order. - required: false - schema: - type: string - enum: - - asc - - desc - default: desc - Cases_status: - in: query - name: status - description: Filters the returned cases by state. - schema: - type: string - enum: - - closed - - in-progress - - open - example: open - Cases_tags: - in: query - name: tags - description: Filters the returned cases by tags. - schema: - oneOf: - - type: string - - type: array - items: - type: string - maxItems: 100 - example: tag-1 - Cases_to: - in: query - name: to - description: > - Returns only cases that were created before a specific date. The date - must be specified as a KQL data range or date match expression. - schema: - type: string - example: now+1d - Cases_alert_id: - in: path - name: alertId - description: An identifier for the alert. - required: true - schema: - type: string - example: 09f0c261e39e36351d75995b78bb83673774d1bc2cca9df2d15f0e5c0a99a540 - Cases_configuration_id: - in: path - name: configurationId - description: An identifier for the configuration. - required: true - schema: - type: string - example: 3297a0f0-b5ec-11ec-b141-0fdb20a7f9a9 - Cases_case_id: - in: path - name: caseId - description: >- - The identifier for the case. To retrieve case IDs, use the find cases - API. All non-ASCII characters must be URL encoded. - required: true - schema: - type: string - example: 9c235210-6834-11ea-a78c-6ffb38a34414 - Cases_includeComments: - in: query - name: includeComments - description: >- - Deprecated in 8.1.0. This parameter is deprecated and will be removed in - a future release. It determines whether case comments are returned. - deprecated: true - schema: - type: boolean - default: true - Cases_comment_id: - in: path - name: commentId - description: > - The identifier for the comment. To retrieve comment IDs, use the get - case or find cases APIs. - required: true - schema: - type: string - example: 71ec1870-725b-11ea-a0b2-c51ea50a58e2 - Cases_connector_id: - in: path - name: connectorId - description: >- - An identifier for the connector. To retrieve connector IDs, use the find - connectors API. - required: true - schema: - type: string - example: abed3a70-71bd-11ea-a0b2-c51ea50a58e2 - Cases_user_action_types: - in: query - name: types - description: Determines the types of user actions to return. - schema: - type: array - items: - type: string - enum: - - action - - alert - - assignees - - attachment - - comment - - connector - - create_case - - description - - pushed - - settings - - severity - - status - - tags - - title - - user - example: create_case - Connectors_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - Connectors_connector_id: - in: path - name: connectorId - description: An identifier for the connector. - required: true - schema: - type: string - example: df770e30-8b8b-11ed-a780-3b746c987a81 - Connectors_action_id: - in: path - name: actionId - description: An identifier for the action. - required: true - schema: - type: string - example: c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad - Data_views_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - Data_views_view_id: - in: path - name: viewId - description: An identifier for the data view. - required: true - schema: - type: string - example: ff959d40-b880-11e8-a6d9-e546fe2bba5f - Data_views_field_name: - in: path - name: fieldName - description: The name of the runtime field. - required: true - schema: - type: string - example: hour_of_day - Machine_learning_APIs_simulateParam: - in: query - name: simulate - description: >- - When true, simulates the synchronization by returning only the list of - actions that would be performed. - required: false - schema: - type: boolean - example: 'true' - Saved_objects_kbn_xsrf: - schema: - type: string - in: header - name: kbn-xsrf - description: Cross-site request forgery protection - required: true - Saved_objects_saved_object_type: - in: path - name: type - description: >- - Valid options include `visualization`, `dashboard`, `search`, - `index-pattern`, `config`. - required: true - schema: - type: string - Saved_objects_saved_object_id: - in: path - name: id - description: An identifier for the saved object. - required: true - schema: - type: string - schemas: - Alerting_create_anomaly_detection_alert_rule_request: - title: Create anomaly detection rule request - description: > - A rule that checks if the anomaly detection job results contain - anomalies that match the rule conditions. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for an anomaly detection rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - xpack.ml.anomaly_detection_alert - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_anomaly_detection_jobs_health_rule_request: - title: Create anomaly detection jobs health rule request - description: > - An rule that monitors job health and alerts if an operational issue - occurred that may prevent the job from detecting anomalies. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for an anomaly detection jobs health rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - xpack.ml.anomaly_detection_jobs_health - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_apm_anomaly_rule_request: - title: Create APM anomaly rule rule request - description: >- - A rule that detects when either the latency, throughput, or failed - transaction rate of a service is anomalous. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_property_apm_anomaly' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - apm.anomaly - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_apm_error_count_rule_request: - title: Create APM error count rule request - description: >- - A rule that detects when the number of errors in a service exceeds a - defined threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_property_apm_error_count' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - apm.error_rate - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_apm_transaction_duration_rule_request: - title: Create latency threshold rule request - description: >- - A rule that detects when the latency of a specific transaction type in a - service exceeds a threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: >- - #/components/schemas/Alerting_params_property_apm_transaction_duration - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - apm.transaction_duration - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_apm_transaction_error_rate_rule_request: - title: Create APM transaction error rate rule request - description: >- - A rule that sends notifications when the rate of transaction errors in a - service exceeds a threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: >- - #/components/schemas/Alerting_params_property_apm_transaction_error_rate - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - apm.transaction_error_rate - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_es_query_rule_request: - title: Create Elasticsearch query rule request - description: > - A rule that runs a user-configured query, compares the number of matches - to a configured threshold, and schedules actions to run when the - threshold condition is met. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_es_query_rule' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - .es-query - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_geo_containment_rule_request: - title: Create tracking containment rule request - description: > - A rule that runs an Elasticsearch query over indices to determine - whether any documents are currently contained within any boundaries from - the specified boundary index. In the event that an entity is contained - within a boundary, an alert may be generated. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for an tracking containment rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - .geo-containment - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_index_threshold_rule_request: - title: Create index threshold rule request - description: >- - A rule that runs an Elasticsearch query, aggregates field values from - documents, compares them to threshold values, and schedules actions to - run when the thresholds are met. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_index_threshold_rule' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - .index-threshold - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_infra_inventory_rule_request: - title: Create infra inventory rule request - description: > - A rule that sends notifications when a metric has reached or exceeded a - value for a specific resource or a group of resources within your - infrastructure. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_property_infra_inventory' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - metrics.alert.inventory.threshold - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_infra_metric_anomaly_rule_request: - title: Create infrastructure anomaly rule request - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for an infrastructure anomaly rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - metrics.alert.anomaly - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_infra_metric_threshold_rule_request: - title: Create infra metric threshold rule request - description: > - A rule that sends notifications when a metric has reached or exceeded a - value for a specific time period. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_property_infra_metric_threshold' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - metrics.alert.threshold - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_jvm_memory_usage_rule_request: - title: Create JVM memory usage rule request - description: A rule that detects when a node reports high memory usage. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a JVM memory usage rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_jvm_memory_usage - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_log_threshold_rule_request: - title: Create log threshold rule request - description: A rule that detects when a log aggregation exceeds a threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_property_log_threshold' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - logs.alert.document.count - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_ccr_exceptions_rule_request: - title: Create CCR read exceptions rule request - description: A rule that detects cross-cluster replication (CCR) read exceptions. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a CCR read exceptions rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_ccr_read_exceptions - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_cluster_health_rule_request: - title: Create cluster health rule request - description: A rule that detects when the health of the cluster changes. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a cluster health rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_cluster_health - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_cpu_usage_rule_request: - title: Create CPU usage rule request - description: A rule that detects when the CPU load for a node is consistently high. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a CPU usage rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_cpu_usage - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_disk_usage_rule_request: - title: Create disk usage rule request - description: A rule that detects when the disk usage for a node is consistently high. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a disk usage rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_disk_usage - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_elasticsearch_version_mismatch_rule_request: - title: Create Elasticsearch version mismatch rule request - description: >- - A rule that detects when the cluster has multipe versions of - Elasticsearch. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a Elasticsearch version mismatch rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_elasticsearch_version_mismatch - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_license_expiration_rule_request: - title: Create license expiration rule request - description: A rule that detects when the cluster license is about to expire. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a license expiration rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_license_expiration - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_kibana_version_mismatch_rule_request: - title: Create Kibana version mismatch rule request - description: A rule that detects when the cluster has multiple versions of Kibana. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a Kibana version mismatch rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_kibana_version_mismatch - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_logstash_version_mismatch_rule_request: - title: Create Logstash version mismatch rule request - description: A rule that detects when the cluster has multiple versions of Logstash. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a Logstash version mismatch rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_logstash_version_mismatch - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_missing_data_rule_request: - title: Create missing monitoring data rule request - description: A rule that detects when monitoring data is missing. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a missing monitoring data rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_missing_monitoring_data - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_nodes_changed_rule_request: - title: Create nodes changed rule request - description: A rule that detects when nodes are added, removed, or restarted. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a nodes changed rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_nodes_changed - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_shard_size_rule_request: - title: Create shard size rule request - description: >- - A rule that detects when the average shard size is larger than a - threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a shard size rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_shard_size - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_thread_pool_search_rejections_rule_request: - title: Create thread pool search rejections rule request - description: >- - A rule that detects when the number of rejections in the thread pool - exceeds a threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a thread pool search rejections rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_thread_pool_search_rejections - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_monitoring_thread_pool_write_rejections_rule_request: - title: Create thread pool write rejections rule request - description: >- - A rule that detects when the number of rejections in the write thread - pool exceeds a threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a thread pool write rejections rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - monitoring_alert_thread_pool_write_rejections - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_siem_eql_rule_request: - title: Create event correlation rule request - description: > - A rule that uses Event Query Language (EQL) to match events, generate - sequences, and stack data. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for an event correlation rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - siem.eqlRule - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_siem_indicator_rule_request: - title: Create indicator match rule request - description: > - A rule that uses indicators from intelligence sources to detect matching - events and alerts. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for an indicator match rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - siem.indicatorRule - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_siem_ml_rule_request: - title: Create machine learning rule request - description: > - A rule that detects when a machine learning job discovers an anomaly - above the defined threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a machine learning rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - siem.mlRule - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_siem_new_terms_rule_request: - title: Create new terms rule request - description: A rule that finds documents with values that appear for the first time. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a new terms rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - siem.newTermsRule - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_siem_notifications_rule_request: - title: Create security solution notification (legacy) rule request - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a notification rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - siem.notifications - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_siem_query_rule_request: - title: Create custom query rule request - description: | - A rule that uses KQL or Lucene to detect issues across indices. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a custom query rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - siem.queryRule - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_siem_saved_query_rule_request: - title: Create saved query rule request - description: > - A rule that searches the defined indices and creates an alert when a - document matches the saved search. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a saved query rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - siem.savedQueryRule - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_siem_threshold_rule_request: - title: Create threshold rule request - description: > - A rule that aggregates query results to detect when the number of - matches exceeds a threshold. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a threshold rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - siem.thresholdRule - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_slo_burn_rate_rule_request: - title: Create slo burn rate rule request - description: > - A rule that detects when the burn rate is above a defined threshold for - two different lookback periods. The two periods are a long period and a - short period that is 1/12th of the long period. For each lookback - period, the burn rate is computed as the error rate divided by the error - budget. When the burn rates for both periods surpass the threshold, an - alert occurs. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_property_slo_burn_rate' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - slo.rules.burnRate - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_synthetics_monitor_status_rule_request: - title: Create synthetics monitor status rule request - description: >- - A rule that detects when a monitor is down or an availability threshold - is breached. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for the synthetics monitor status rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - xpack.synthetics.alerts.monitorStatus - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_synthetics_uptime_duration_anomaly_rule_request: - title: Create synthetics uptime duration anomaly rule request - description: > - A rule that detects response durations for all of the geographic - locations of each monitor. When a monitor runs for an unusual amount of - time, at a particular time, an anomaly is recorded. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for the uptime duration anomaly rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - xpack.uptime.alerts.durationAnomaly - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_synthetics_uptime_tls_rule_request: - title: Create synthetics uptime TLS rule request - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: '#/components/schemas/Alerting_params_property_synthetics_uptime_tls' - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - xpack.uptime.alerts.tls - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_synthetics_uptime_tls_certificate_rule_request: - title: Create TLS certificate rule request - description: > - A rule that detects when a monitor has a TLS certificate expiring or - when it exceeds an age limit. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a TLS certificate rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - xpack.uptime.alerts.tlsCertificate - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_transform_health_rule_request: - title: Create transform health rule request - description: > - A rule that monitors transforms health and alerts if an operational - issue occurred. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for a transform health rule. - additionalProperties: true - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - transform_health - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_create_uptime_monitor_status_rule_request: - title: Create uptime monitor status rule request - description: A rule that detects monitor errors and outages. - type: object - required: - - consumer - - name - - params - - rule_type_id - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - consumer: - $ref: '#/components/schemas/Alerting_consumer' - enabled: - $ref: '#/components/schemas/Alerting_enabled_rule' - name: - $ref: '#/components/schemas/Alerting_name_rule' - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - $ref: >- - #/components/schemas/Alerting_params_property_synthetics_monitor_status - rule_type_id: - type: string - description: >- - The ID of the rule type that you want to call when the rule is - scheduled to run. - enum: - - xpack.uptime.alerts.monitorStatus - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_filter: - type: object - description: >- - A filter written in Elasticsearch Query Domain Specific Language (DSL) - as defined in the `kbn-es-query` package. - properties: - meta: - type: object - properties: - alias: - type: string - nullable: true - controlledBy: - type: string - disabled: - type: boolean - field: - type: string - group: - type: string - index: - type: string - isMultiIndex: - type: boolean - key: - type: string - negate: - type: boolean - params: - type: object - type: - type: string - value: - type: string - query: - type: object - $state: - type: object - Alerting_notify_when_action: - type: string - description: > - Indicates how often alerts generate actions. Valid values include: - `onActionGroupChange`: Actions run when the alert status changes; - `onActiveAlert`: Actions run when the alert becomes active and at each - check interval while the rule conditions are met; `onThrottleInterval`: - Actions run when the alert becomes active and at the interval specified - in the throttle property while the rule conditions are met. NOTE: You - cannot specify `notify_when` at both the rule and action level. The - recommended method is to set it for each action. If you set it at the - rule level then update the rule in Kibana, it is automatically changed - to use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - example: onActiveAlert - Alerting_throttle_action: - type: string - nullable: true - description: > - The throttle interval, which defines how often an alert generates - repeated actions. It is specified in seconds, minutes, hours, or days - and is applicable only if `notify_when` is set to `onThrottleInterval`. - NOTE: You cannot specify the throttle interval at both the rule and - action level. The recommended method is to set it for each action. If - you set it at the rule level then update the rule in Kibana, it is - automatically changed to use action-specific values. - default: null - example: 10m - Alerting_actions: - type: array - default: [] - nullable: true - items: - type: object - required: - - group - - id - - params - description: | - An action that runs under defined conditions. - properties: - alerts_filter: - type: object - description: > - Conditions that affect whether the action runs. If you specify - multiple conditions, all conditions must be met for the action to - run. For example, if an alert occurs within the specified time - frame and matches the query, the action runs. - properties: - query: - type: object - description: >- - Defines a query filter that determines whether the action - runs. - properties: - kql: - type: string - description: A filter written in Kibana Query Language (KQL). - filters: - type: array - items: - $ref: '#/components/schemas/Alerting_filter' - timeframe: - type: object - description: Defines a period that limits whether the action runs. - properties: - days: - type: array - description: >- - Defines the days of the week that the action can run, - represented as an array of numbers. For example, `1` - represents Monday. An empty array is equivalent to - specifying all the days of the week. - items: - type: integer - example: - - 1 - - 2 - - 3 - - 4 - - 5 - hours: - type: object - description: > - Defines the range of time in a day that the action can - run. If the `start` value is `00:00` and the `end` value - is `24:00`, actions be generated all day. - properties: - end: - type: string - description: >- - The end of the time frame in 24-hour notation - (`hh:mm`). - example: '17:00' - start: - type: string - description: >- - The start of the time frame in 24-hour notation - (`hh:mm`). - example: '08:00' - timezone: - type: string - description: > - The ISO time zone for the `hours` values. Values such as - `UTC` and `UTC+1` also work but lack built-in daylight - savings time support and are not recommended. - example: Europe/Madrid - connector_type_id: - type: string - description: >- - The type of connector. This property appears in responses but - cannot be set in requests. - example: .server-log - readOnly: true - frequency: - type: object - description: > - The properties that affect how often actions are generated. If the - rule type supports setting `summary` to `true`, the action can be - a summary of alerts at the specified notification interval. - Otherwise, an action runs for each alert at the specified - notification interval. NOTE: You cannot specify these parameters - when `notify_when` or `throttle` are defined at the rule level. - required: - - notify_when - - summary - properties: - notify_when: - $ref: '#/components/schemas/Alerting_notify_when_action' - summary: - type: boolean - description: Indicates whether the action is a summary. - throttle: - $ref: '#/components/schemas/Alerting_throttle_action' - group: - type: string - description: > - The group name, which affects when the action runs (for example, - when the threshold is met or when the alert is recovered). Each - rule type has a list of valid action group names. If you don't - need to group actions, set to `default`. - example: default - id: - type: string - description: The identifier for the connector saved object. - example: 9dca3e00-74f5-11ed-9801-35303b735aef - params: - type: object - description: >- - The parameters for the action, which are sent to the connector. - The `params` are handled as Mustache templates and passed a - default set of context. - additionalProperties: true - uuid: - type: string - description: A universally unique identifier (UUID) for the action. - example: 1c7a1280-f28c-4e06-96b2-e4e5f05d1d61 - Alerting_alert_delay: - type: object - description: >- - Indicates that an alert occurs only when the specified number of - consecutive runs met the rule conditions. - required: - - active - properties: - active: - type: number - description: The number of consecutive runs that must meet the rule conditions. - example: 3 - Alerting_consumer: - type: string - description: > - The name of the application or feature that owns the rule. For example: - `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, - `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`. - Alerting_enabled_rule: - type: boolean - description: >- - Indicates whether you want to run the rule on an interval basis after it - is created. - Alerting_name_rule: - type: string - description: > - The name of the rule. While this name does not have to be unique, a - distinctive name can help you identify a rule. - Alerting_notify_when: - type: string - description: > - Deprecated in 8.13.0. Use the `notify_when` property in the action - `frequency` object instead. Indicates how often alerts generate actions. - NOTE: You cannot specify `notify_when` at both the rule and action - level. If you set it at the rule level then update the rule in Kibana, - it is automatically changed to use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - deprecated: true - example: onActiveAlert - Alerting_schedule: - type: object - description: >- - The check interval, which specifies how frequently the rule conditions - are checked. The interval is specified in seconds, minutes, hours, or - days. - properties: - interval: - type: string - example: 1m - Alerting_tags: - type: array - description: The tags for the rule. - items: - type: string - default: [] - Alerting_throttle: - type: string - description: > - Deprecated in 8.13.0. Use the `throttle` property in the action - `frequency` object instead. The throttle interval, which defines how - often an alert generates repeated actions. NOTE: You cannot specify the - throttle interval at both the rule and action level. If you set it at - the rule level then update the rule in Kibana, it is automatically - changed to use action-specific values. - nullable: true - default: null - deprecated: true - example: 10m - Alerting_params_property_apm_anomaly: - required: - - windowSize - - windowUnit - - environment - - anomalySeverityType - properties: - serviceName: - type: string - description: The service name from APM - transactionType: - type: string - description: The transaction type from APM - windowSize: - type: number - example: 6 - description: The window size - windowUnit: - type: string - description: The window size unit - enum: - - m - - h - - d - environment: - type: string - description: The environment from APM - anomalySeverityType: - type: string - description: The anomaly threshold value - enum: - - critical - - major - - minor - - warning - Alerting_params_property_apm_error_count: - required: - - windowSize - - windowUnit - - threshold - - environment - properties: - serviceName: - type: string - description: The service name from APM - windowSize: - type: number - description: The window size - example: 6 - windowUnit: - type: string - description: The window size unit - enum: - - m - - h - - d - environment: - type: string - description: The environment from APM - threshold: - type: number - description: The error count threshold value - groupBy: - type: array - default: - - service.name - - service.environment - uniqueItems: true - items: - type: string - enum: - - service.name - - service.environment - - transaction.name - - error.grouping_key - errorGroupingKey: - type: string - Alerting_params_property_apm_transaction_duration: - required: - - windowSize - - windowUnit - - threshold - - environment - - aggregationType - properties: - serviceName: - type: string - description: The service name from APM - transactionType: - type: string - description: The transaction type from APM - transactionName: - type: string - description: The transaction name from APM - windowSize: - type: number - description: The window size - example: 6 - windowUnit: - type: string - description: ç - enum: - - m - - h - - d - environment: - type: string - threshold: - type: number - description: The latency threshold value - groupBy: - type: array - default: - - service.name - - service.environment - - transaction.type - uniqueItems: true - items: - type: string - enum: - - service.name - - service.environment - - transaction.type - - transaction.name - aggregationType: - type: string - enum: - - avg - - 95th - - 99th - Alerting_params_property_apm_transaction_error_rate: - required: - - windowSize - - windowUnit - - threshold - - environment - properties: - serviceName: - type: string - description: The service name from APM - transactionType: - type: string - description: The transaction type from APM - transactionName: - type: string - description: The transaction name from APM - windowSize: - type: number - description: The window size - example: 6 - windowUnit: - type: string - description: The window size unit - enum: - - m - - h - - d - environment: - type: string - description: The environment from APM - threshold: - type: number - description: The error rate threshold value - groupBy: - type: array - default: - - service.name - - service.environment - - transaction.type - uniqueItems: true - items: - type: string - enum: - - service.name - - service.environment - - transaction.type - - transaction.name - Alerting_aggfield: - description: > - The name of the numeric field that is used in the aggregation. This - property is required when `aggType` is `avg`, `max`, `min` or `sum`. - type: string - Alerting_aggtype: - description: The type of aggregation to perform. - type: string - enum: - - avg - - count - - max - - min - - sum - default: count - Alerting_excludehitsfrompreviousrun: - description: > - Indicates whether to exclude matches from previous runs. If `true`, you - can avoid alert duplication by excluding documents that have already - been detected by the previous rule run. This option is not available - when a grouping field is specified. - type: boolean - Alerting_groupby: - description: > - Indicates whether the aggregation is applied over all documents (`all`) - or split into groups (`top`) using a grouping field (`termField`). If - grouping is used, an alert will be created for each group when it - exceeds the threshold; only the top groups (up to `termSize` number of - groups) are checked. - type: string - enum: - - all - - top - default: all - Alerting_termsize: - description: > - This property is required when `groupBy` is `top`. It specifies the - number of groups to check against the threshold and therefore limits the - number of alerts on high cardinality fields. - type: integer - Alerting_timefield: - description: The field that is used to calculate the time window. - type: string - Alerting_timewindowsize: - description: > - The size of the time window (in `timeWindowUnit` units), which - determines how far back to search for documents. Generally it should be - a value higher than the rule check interval to avoid gaps in detection. - type: integer - example: 5 - Alerting_timewindowunit: - description: | - The type of units for the time window: seconds, minutes, hours, or days. - type: string - enum: - - s - - m - - h - - d - example: m - Alerting_size: - description: > - The number of documents to pass to the configured actions when the - threshold condition is met. - type: integer - Alerting_termfield: - description: > - The names of up to four fields that are used for grouping the - aggregation. This property is required when `groupBy` is `top`. - oneOf: - - type: string - - type: array - items: - type: string - maxItems: 4 - Alerting_threshold: - description: > - The threshold value that is used with the `thresholdComparator`. If the - `thresholdComparator` is `between` or `notBetween`, you must specify the - boundary values. - type: array - items: - type: integer - example: 4000 - Alerting_thresholdcomparator: - description: >- - The comparison function for the threshold. For example, "is above", "is - above or equals", "is below", "is below or equals", "is between", and - "is not between". - type: string - enum: - - '>' - - '>=' - - < - - <= - - between - - notBetween - example: '>' - Alerting_params_es_query_rule: - oneOf: - - type: object - x-technical-preview: true - description: > - The parameters for an Elasticsearch query rule that uses ES|QL to - define the query. This functionality is in technical pre view and - may be changed or removed in a future release. Elastic will work to - fix any issues, but features in technical preview are not subject to - the support SLA of official GA features. - required: - - esqlQuery - - searchType - - size - - threshold - - thresholdComparator - - timeWindowSize - - timeWindowUnit - properties: - aggField: - $ref: '#/components/schemas/Alerting_aggfield' - aggType: - $ref: '#/components/schemas/Alerting_aggtype' - esqlQuery: - type: object - required: - - esql - properties: - esql: - description: >- - The query definition, which uses Elasticsearch Query - Language. - type: string - excludeHitsFromPreviousRun: - $ref: '#/components/schemas/Alerting_excludehitsfrompreviousrun' - groupBy: - $ref: '#/components/schemas/Alerting_groupby' - searchType: - description: >- - The type of query, in this case a query that uses Elasticsearch - Query Language (ES|QL). - type: string - enum: - - esqlQuery - example: esqlQuery - size: - type: integer - description: > - When `searchType` is `esqlQuery`, this property is required but - it does not affect the rule behavior. - example: 0 - termSize: - $ref: '#/components/schemas/Alerting_termsize' - threshold: - type: array - items: - type: integer - minimum: 0 - maximum: 0 - description: > - The threshold value that is used with the `thresholdComparator`. - When `searchType` is `esqlQuery`, this property is required and - must be set to zero. - thresholdComparator: - type: string - description: > - The comparison function for the threshold. When `searchType` is - `esqlQuery`, this property is required and must be set to ">". - Since the `threshold` value must be `0`, the result is that an - alert occurs whenever the query returns results. - enum: - - '>' - example: '>' - timeField: - $ref: '#/components/schemas/Alerting_timefield' - timeWindowSize: - $ref: '#/components/schemas/Alerting_timewindowsize' - timeWindowUnit: - $ref: '#/components/schemas/Alerting_timewindowunit' - - type: object - description: >- - The parameters for an Elasticsearch query rule that uses KQL or - Lucene to define the query. - required: - - searchType - - size - - threshold - - thresholdComparator - - timeWindowSize - - timeWindowUnit - properties: - aggField: - $ref: '#/components/schemas/Alerting_aggfield' - aggType: - $ref: '#/components/schemas/Alerting_aggtype' - excludeHitsFromPreviousRun: - $ref: '#/components/schemas/Alerting_excludehitsfrompreviousrun' - groupBy: - $ref: '#/components/schemas/Alerting_groupby' - searchConfiguration: - description: >- - The query definition, which uses KQL or Lucene to fetch the - documents from Elasticsearch. - type: object - properties: - filter: - type: array - items: - $ref: '#/components/schemas/Alerting_filter' - index: - description: The indices to query. - oneOf: - - type: string - - type: array - items: - type: string - query: - type: object - properties: - language: - type: string - example: kuery - query: - type: string - searchType: - description: >- - The type of query, in this case a text-based query that uses KQL - or Lucene. - type: string - enum: - - searchSource - example: searchSource - size: - $ref: '#/components/schemas/Alerting_size' - termField: - $ref: '#/components/schemas/Alerting_termfield' - termSize: - $ref: '#/components/schemas/Alerting_termsize' - threshold: - $ref: '#/components/schemas/Alerting_threshold' - thresholdComparator: - $ref: '#/components/schemas/Alerting_thresholdcomparator' - timeField: - $ref: '#/components/schemas/Alerting_timefield' - timeWindowSize: - $ref: '#/components/schemas/Alerting_timewindowsize' - timeWindowUnit: - $ref: '#/components/schemas/Alerting_timewindowunit' - - type: object - description: >- - The parameters for an Elasticsearch query rule that uses - Elasticsearch Query DSL to define the query. - required: - - esQuery - - index - - threshold - - thresholdComparator - - timeField - - timeWindowSize - - timeWindowUnit - properties: - aggField: - $ref: '#/components/schemas/Alerting_aggfield' - aggType: - $ref: '#/components/schemas/Alerting_aggtype' - esQuery: - description: The query definition, which uses Elasticsearch Query DSL. - type: string - excludeHitsFromPreviousRun: - $ref: '#/components/schemas/Alerting_excludehitsfrompreviousrun' - groupBy: - $ref: '#/components/schemas/Alerting_groupby' - index: - description: The indices to query. - oneOf: - - type: array - items: - type: string - - type: string - searchType: - description: >- - The type of query, in this case a query that uses Elasticsearch - Query DSL. - type: string - enum: - - esQuery - default: esQuery - example: esQuery - size: - $ref: '#/components/schemas/Alerting_size' - termField: - $ref: '#/components/schemas/Alerting_termfield' - termSize: - $ref: '#/components/schemas/Alerting_termsize' - threshold: - $ref: '#/components/schemas/Alerting_threshold' - thresholdComparator: - $ref: '#/components/schemas/Alerting_thresholdcomparator' - timeField: - $ref: '#/components/schemas/Alerting_timefield' - timeWindowSize: - $ref: '#/components/schemas/Alerting_timewindowsize' - timeWindowUnit: - $ref: '#/components/schemas/Alerting_timewindowunit' - Alerting_params_index_threshold_rule: - type: object - description: The parameters for an index threshold rule. - required: - - index - - threshold - - thresholdComparator - - timeField - - timeWindowSize - - timeWindowUnit - properties: - aggField: - $ref: '#/components/schemas/Alerting_aggfield' - aggType: - $ref: '#/components/schemas/Alerting_aggtype' - filterKuery: - description: A KQL expression thats limits the scope of alerts. - type: string - groupBy: - $ref: '#/components/schemas/Alerting_groupby' - index: - description: The indices to query. - type: array - items: - type: string - termField: - $ref: '#/components/schemas/Alerting_termfield' - termSize: - $ref: '#/components/schemas/Alerting_termsize' - threshold: - $ref: '#/components/schemas/Alerting_threshold' - thresholdComparator: - $ref: '#/components/schemas/Alerting_thresholdcomparator' - timeField: - $ref: '#/components/schemas/Alerting_timefield' - timeWindowSize: - $ref: '#/components/schemas/Alerting_timewindowsize' - timeWindowUnit: - $ref: '#/components/schemas/Alerting_timewindowunit' - Alerting_params_property_infra_inventory: - properties: - criteria: - type: array - items: - type: object - properties: - metric: - type: string - enum: - - count - - cpu - - diskLatency - - load - - memory - - memoryTotal - - tx - - rx - - logRate - - diskIOReadBytes - - diskIOWriteBytes - - s3TotalRequests - - s3NumberOfObjects - - s3BucketSize - - s3DownloadBytes - - s3UploadBytes - - rdsConnections - - rdsQueriesExecuted - - rdsActiveTransactions - - rdsLatency - - sqsMessagesVisible - - sqsMessagesDelayed - - sqsMessagesSent - - sqsMessagesEmpty - - sqsOldestMessage - - custom - timeSize: - type: number - timeUnit: - type: string - enum: - - s - - m - - h - - d - sourceId: - type: string - threshold: - type: array - items: - type: number - comparator: - type: string - enum: - - < - - <= - - '>' - - '>=' - - between - - outside - customMetric: - type: object - properties: - type: - type: string - enum: - - custom - field: - type: string - aggregation: - type: string - enum: - - avg - - max - - min - - rate - id: - type: string - label: - type: string - warningThreshold: - type: array - items: - type: number - warningComparator: - type: string - enum: - - < - - <= - - '>' - - '>=' - - between - - outside - filterQuery: - type: string - filterQueryText: - type: string - nodeType: - type: string - enum: - - host - - pod - - container - - awsEC2 - - awsS3 - - awsSQS - - awsRDS - sourceId: - type: string - alertOnNoData: - type: boolean - Alerting_params_property_infra_metric_threshold: - properties: - criteria: - type: array - items: - oneOf: - - title: non count criterion - type: object - properties: - threshold: - type: array - items: - type: number - comparator: - type: string - enum: - - < - - <= - - '>' - - '>=' - - between - - outside - timeUnit: - type: string - timeSize: - type: number - warningThreshold: - type: array - items: - type: number - warningComparator: - type: string - enum: - - < - - <= - - '>' - - '>=' - - between - - outside - metric: - type: string - aggType: - type: string - enum: - - avg - - max - - min - - cardinality - - rate - - count - - sum - - p95 - - p99 - - custom - - title: count criterion - type: object - properties: - threshold: - type: array - items: - type: number - comparator: - type: string - enum: - - < - - <= - - '>' - - '>=' - - between - - outside - timeUnit: - type: string - timeSize: - type: number - warningThreshold: - type: array - items: - type: number - warningComparator: - type: string - enum: - - < - - <= - - '>' - - '>=' - - between - - outside - aggType: - type: string - enum: - - count - - title: custom criterion - type: object - properties: - threshold: - type: array - items: - type: number - comparator: - type: string - enum: - - < - - <= - - '>' - - '>=' - - between - - outside - timeUnit: - type: string - timeSize: - type: number - warningThreshold: - type: array - items: - type: number - warningComparator: - type: string - enum: - - < - - <= - - '>' - - '>=' - - between - - outside - aggType: - type: string - enum: - - custom - customMetric: - type: array - items: - oneOf: - - type: object - properties: - name: - type: string - aggType: - type: string - enum: - - avg - - sum - - max - - min - - cardinality - field: - type: string - - type: object - properties: - name: - type: string - aggType: - type: string - enum: - - count - filter: - type: string - equation: - type: string - label: - type: string - groupBy: - oneOf: - - type: string - - type: array - items: - type: string - filterQuery: - type: string - sourceId: - type: string - alertOnNoData: - type: boolean - alertOnGroupDisappear: - type: boolean - Alerting_params_property_log_threshold: - oneOf: - - title: Count - type: object - required: - - count - - timeSize - - timeUnit - - logView - properties: - criteria: - type: array - items: - type: object - properties: - field: - type: string - example: my.field - comparator: - type: string - enum: - - more than - - more than or equals - - less than - - less than or equals - - equals - - does not equal - - matches - - does not match - - matches phrase - - does not match phrase - value: - oneOf: - - type: number - example: 42 - - type: string - example: value - count: - type: object - properties: - comparator: - type: string - enum: - - more than - - more than or equals - - less than - - less than or equals - - equals - - does not equal - - matches - - does not match - - matches phrase - - does not match phrase - value: - type: number - example: 100 - timeSize: - type: number - example: 6 - timeUnit: - type: string - enum: - - s - - m - - h - - d - logView: - type: object - properties: - logViewId: - type: string - type: - type: string - enum: - - log-view-reference - example: log-view-reference - groupBy: - type: array - items: - type: string - - title: Ratio - type: object - required: - - count - - timeSize - - timeUnit - - logView - properties: - criteria: - type: array - items: - minItems: 2 - maxItems: 2 - type: array - items: - type: object - properties: - field: - type: string - example: my.field - comparator: - type: string - enum: - - more than - - more than or equals - - less than - - less than or equals - - equals - - does not equal - - matches - - does not match - - matches phrase - - does not match phrase - value: - oneOf: - - type: number - example: 42 - - type: string - example: value - count: - type: object - properties: - comparator: - type: string - enum: - - more than - - more than or equals - - less than - - less than or equals - - equals - - does not equal - - matches - - does not match - - matches phrase - - does not match phrase - value: - type: number - example: 100 - timeSize: - type: number - example: 6 - timeUnit: - type: string - enum: - - s - - m - - h - - d - logView: - type: object - properties: - logViewId: - type: string - type: - type: string - enum: - - log-view-reference - example: log-view-reference - groupBy: - type: array - items: - type: string - Alerting_params_property_slo_burn_rate: - properties: - sloId: - description: The SLO identifier used by the rule - type: string - example: 8853df00-ae2e-11ed-90af-09bb6422b258 - burnRateThreshold: - description: The burn rate threshold used to trigger the alert - type: number - example: 14.4 - maxBurnRateThreshold: - description: >- - The maximum burn rate threshold value defined by the SLO error - budget - type: number - example: 168 - longWindow: - description: The duration of the long window used to compute the burn rate - type: object - properties: - value: - description: The duration value - type: number - example: 6 - unit: - description: The duration unit - type: string - example: h - shortWindow: - description: The duration of the short window used to compute the burn rate - type: object - properties: - value: - description: The duration value - type: number - example: 30 - unit: - description: The duration unit - type: string - example: m - Alerting_params_property_synthetics_uptime_tls: - properties: - search: - type: string - certExpirationThreshold: - type: number - certAgeThreshold: - type: number - Alerting_params_property_synthetics_monitor_status: - required: - - numTimes - - shouldCheckStatus - - shouldCheckAvailability - properties: - availability: - type: object - properties: - range: - type: number - rangeUnit: - type: string - threshold: - type: string - filters: - oneOf: - - type: string - - type: object - deprecated: true - properties: - monitor.type: - type: array - items: - type: string - observer.geo.name: - type: array - items: - type: string - tags: - type: array - items: - type: string - url.port: - type: array - items: - type: string - locations: - deprecated: true - type: array - items: - type: string - numTimes: - type: number - search: - type: string - shouldCheckStatus: - type: boolean - shouldCheckAvailability: - type: boolean - timerangeCount: - type: number - timerangeUnit: - type: string - timerange: - deprecated: true - type: object - properties: - from: - type: string - to: - type: string - version: - type: number - isAutoGenerated: - type: boolean - Alerting_create_rule_request: - title: Create rule request body properties - description: The properties vary depending on the rule type. - oneOf: - - $ref: >- - #/components/schemas/Alerting_create_anomaly_detection_alert_rule_request - - $ref: >- - #/components/schemas/Alerting_create_anomaly_detection_jobs_health_rule_request - - $ref: '#/components/schemas/Alerting_create_apm_anomaly_rule_request' - - $ref: '#/components/schemas/Alerting_create_apm_error_count_rule_request' - - $ref: >- - #/components/schemas/Alerting_create_apm_transaction_duration_rule_request - - $ref: >- - #/components/schemas/Alerting_create_apm_transaction_error_rate_rule_request - - $ref: '#/components/schemas/Alerting_create_es_query_rule_request' - - $ref: '#/components/schemas/Alerting_create_geo_containment_rule_request' - - $ref: '#/components/schemas/Alerting_create_index_threshold_rule_request' - - $ref: '#/components/schemas/Alerting_create_infra_inventory_rule_request' - - $ref: >- - #/components/schemas/Alerting_create_infra_metric_anomaly_rule_request - - $ref: >- - #/components/schemas/Alerting_create_infra_metric_threshold_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_jvm_memory_usage_rule_request - - $ref: '#/components/schemas/Alerting_create_log_threshold_rule_request' - - $ref: >- - #/components/schemas/Alerting_create_monitoring_ccr_exceptions_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_cluster_health_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_cpu_usage_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_disk_usage_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_elasticsearch_version_mismatch_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_license_expiration_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_kibana_version_mismatch_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_logstash_version_mismatch_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_missing_data_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_nodes_changed_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_shard_size_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_thread_pool_search_rejections_rule_request - - $ref: >- - #/components/schemas/Alerting_create_monitoring_thread_pool_write_rejections_rule_request - - $ref: '#/components/schemas/Alerting_create_siem_eql_rule_request' - - $ref: '#/components/schemas/Alerting_create_siem_indicator_rule_request' - - $ref: '#/components/schemas/Alerting_create_siem_ml_rule_request' - - $ref: '#/components/schemas/Alerting_create_siem_new_terms_rule_request' - - $ref: '#/components/schemas/Alerting_create_siem_notifications_rule_request' - - $ref: '#/components/schemas/Alerting_create_siem_query_rule_request' - - $ref: '#/components/schemas/Alerting_create_siem_saved_query_rule_request' - - $ref: '#/components/schemas/Alerting_create_siem_threshold_rule_request' - - $ref: '#/components/schemas/Alerting_create_slo_burn_rate_rule_request' - - $ref: >- - #/components/schemas/Alerting_create_synthetics_monitor_status_rule_request - - $ref: >- - #/components/schemas/Alerting_create_synthetics_uptime_duration_anomaly_rule_request - - $ref: >- - #/components/schemas/Alerting_create_synthetics_uptime_tls_rule_request - - $ref: >- - #/components/schemas/Alerting_create_synthetics_uptime_tls_certificate_rule_request - - $ref: '#/components/schemas/Alerting_create_transform_health_rule_request' - - $ref: >- - #/components/schemas/Alerting_create_uptime_monitor_status_rule_request - discriminator: - propertyName: rule_type_id - mapping: - xpack.ml.anomaly_detection_alert: >- - #/components/schemas/Alerting_create_anomaly_detection_alert_rule_request - xpack.ml.anomaly_detection_jobs_health: >- - #/components/schemas/Alerting_create_anomaly_detection_jobs_health_rule_request - apm.anomaly: '#/components/schemas/Alerting_create_apm_anomaly_rule_request' - apm.error_rate: '#/components/schemas/Alerting_create_apm_error_count_rule_request' - apm.transaction_duration: >- - #/components/schemas/Alerting_create_apm_transaction_duration_rule_request - apm.transaction_error_rate: >- - #/components/schemas/Alerting_create_apm_transaction_error_rate_rule_request - .es-query: '#/components/schemas/Alerting_create_es_query_rule_request' - .geo-containment: '#/components/schemas/Alerting_create_geo_containment_rule_request' - .index-threshold: '#/components/schemas/Alerting_create_index_threshold_rule_request' - metrics.alert.inventory.threshold: '#/components/schemas/Alerting_create_infra_inventory_rule_request' - metrics.alert.anomaly: >- - #/components/schemas/Alerting_create_infra_metric_anomaly_rule_request - metrics.alert.threshold: >- - #/components/schemas/Alerting_create_infra_metric_threshold_rule_request - monitoring_alert_jvm_memory_usage: >- - #/components/schemas/Alerting_create_monitoring_jvm_memory_usage_rule_request - logs.alert.document.count: '#/components/schemas/Alerting_create_log_threshold_rule_request' - monitoring_ccr_read_exceptions: >- - #/components/schemas/Alerting_create_monitoring_ccr_exceptions_rule_request - monitoring_alert_cluster_health: >- - #/components/schemas/Alerting_create_monitoring_cluster_health_rule_request - monitoring_alert_cpu_usage: >- - #/components/schemas/Alerting_create_monitoring_cpu_usage_rule_request - monitoring_alert_disk_usage: >- - #/components/schemas/Alerting_create_monitoring_disk_usage_rule_request - monitoring_alert_elasticsearch_version_mismatch: >- - #/components/schemas/Alerting_create_monitoring_elasticsearch_version_mismatch_rule_request - monitoring_alert_license_expiration: >- - #/components/schemas/Alerting_create_monitoring_license_expiration_rule_request - monitoring_alert_kibana_version_mismatch: >- - #/components/schemas/Alerting_create_monitoring_kibana_version_mismatch_rule_request - monitoring_alert_logstash_version_mismatch: >- - #/components/schemas/Alerting_create_monitoring_logstash_version_mismatch_rule_request - monitoring_alert_missing_monitoring_data: >- - #/components/schemas/Alerting_create_monitoring_missing_data_rule_request - monitoring_alert_nodes_changed: >- - #/components/schemas/Alerting_create_monitoring_nodes_changed_rule_request - monitoring_shard_size: >- - #/components/schemas/Alerting_create_monitoring_shard_size_rule_request - monitoring_alert_thread_pool_search_rejections: >- - #/components/schemas/Alerting_create_monitoring_thread_pool_search_rejections_rule_request - monitoring_alert_thread_pool_write_rejections: >- - #/components/schemas/Alerting_create_monitoring_thread_pool_write_rejections_rule_request - siem.eqlRule: '#/components/schemas/Alerting_create_siem_eql_rule_request' - siem.indicatorRule: '#/components/schemas/Alerting_create_siem_indicator_rule_request' - siem.mlRule: '#/components/schemas/Alerting_create_siem_ml_rule_request' - siem.newTermsRule: '#/components/schemas/Alerting_create_siem_new_terms_rule_request' - siem.notifications: '#/components/schemas/Alerting_create_siem_notifications_rule_request' - siem.queryRule: '#/components/schemas/Alerting_create_siem_query_rule_request' - siem.savedQueryRule: '#/components/schemas/Alerting_create_siem_saved_query_rule_request' - siem.thresholdRule: '#/components/schemas/Alerting_create_siem_threshold_rule_request' - slo.rules.burnRate: '#/components/schemas/Alerting_create_slo_burn_rate_rule_request' - xpack.synthetics.alerts.monitorStatus: >- - #/components/schemas/Alerting_create_synthetics_monitor_status_rule_request - xpack.uptime.alerts.durationAnomaly: >- - #/components/schemas/Alerting_create_synthetics_uptime_duration_anomaly_rule_request - xpack.uptime.alerts.tls: >- - #/components/schemas/Alerting_create_synthetics_uptime_tls_rule_request - xpack.uptime.alerts.tlsCertificate: >- - #/components/schemas/Alerting_create_synthetics_uptime_tls_certificate_rule_request - transform_health: '#/components/schemas/Alerting_create_transform_health_rule_request' - xpack.uptime.alerts.monitorStatus: >- - #/components/schemas/Alerting_create_uptime_monitor_status_rule_request - Alerting_rule_response_properties: - title: Rule response properties - type: object - required: - - actions - - api_key_owner - - consumer - - created_at - - created_by - - enabled - - execution_status - - id - - mute_all - - muted_alert_ids - - name - - params - - rule_type_id - - schedule - - tags - - throttle - - updated_at - - updated_by - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - api_key_created_by_user: - type: boolean - description: >- - Indicates whether the API key that is associated with the rule was - created by the user. - example: false - api_key_owner: - type: string - description: > - The owner of the API key that is associated with the rule and used - to run background tasks. - nullable: true - example: elastic - consumer: - type: string - description: >- - The application or feature that owns the rule. For example, - `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, - `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or - `uptime`. - example: alerts - created_at: - type: string - description: The date and time that the rule was created. - format: date-time - example: '2022-12-05T23:36:58.284Z' - created_by: - type: string - description: The identifier for the user that created the rule. - nullable: true - example: elastic - enabled: - type: boolean - description: Indicates whether the rule is currently enabled. - example: true - execution_status: - type: object - properties: - last_duration: - type: integer - example: 55 - last_execution_date: - type: string - format: date-time - example: '2022-12-06T00:13:43.890Z' - status: - type: string - example: ok - id: - type: string - description: The identifier for the rule. - example: b530fed0-74f5-11ed-9801-35303b735aef - last_run: - type: object - properties: - alerts_count: - type: object - properties: - active: - type: integer - ignored: - type: integer - new: - type: integer - recovered: - type: integer - outcome: - type: string - example: succeeded - outcome_msg: - type: array - items: - type: string - nullable: true - outcome_order: - type: integer - warning: - type: string - nullable: true - example: null - muted_alert_ids: - type: array - nullable: true - items: - type: string - mute_all: - type: boolean - example: false - name: - type: string - description: The name of the rule. - example: cluster_health_rule - next_run: - type: string - format: date-time - nullable: true - example: '2022-12-06T00:14:43.818Z' - notify_when: - type: string - description: Indicates how often alerts generate actions. - nullable: true - params: - type: object - description: The parameters for the rule. - additionalProperties: true - revision: - type: integer - description: The rule revision number. - rule_type_id: - type: string - description: > - The identifier for the type of rule. For example, `.es-query`, - `.index-threshold`, `logs.alert.document.count`, - `monitoring_alert_cluster_health`, `siem.thresholdRule`, or - `xpack.ml.anomaly_detection_alert`. - example: monitoring_alert_cluster_health - running: - type: boolean - description: Indicates whether the rule is running. - schedule: - $ref: '#/components/schemas/Alerting_schedule' - scheduled_task_id: - type: string - example: b530fed0-74f5-11ed-9801-35303b735aef - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - updated_at: - type: string - description: The date and time that the rule was updated most recently. - example: '2022-12-05T23:36:58.284Z' - updated_by: - type: string - description: The identifier for the user that updated this rule most recently. - nullable: true - example: elastic - Alerting_401_response: - type: object - title: Unsuccessful rule API response - properties: - error: - type: string - example: Unauthorized - enum: - - Unauthorized - message: - type: string - statusCode: - type: integer - example: 401 - enum: - - 401 - Alerting_404_response: - type: object - properties: - error: - type: string - example: Not Found - enum: - - Not Found - message: - type: string - example: Saved object [alert/caaad6d0-920c-11ed-b36a-874bd1548a00] not found - statusCode: - type: integer - example: 404 - enum: - - 404 - Alerting_update_rule_request: - title: Update rule request - description: > - The update rule API request body varies depending on the type of rule - and actions. - type: object - required: - - name - - params - - schedule - properties: - actions: - $ref: '#/components/schemas/Alerting_actions' - alert_delay: - $ref: '#/components/schemas/Alerting_alert_delay' - name: - type: string - description: The name of the rule. - example: cluster_health_rule - notify_when: - $ref: '#/components/schemas/Alerting_notify_when' - params: - type: object - description: The parameters for the rule. - additionalProperties: true - schedule: - $ref: '#/components/schemas/Alerting_schedule' - tags: - $ref: '#/components/schemas/Alerting_tags' - throttle: - $ref: '#/components/schemas/Alerting_throttle' - Alerting_fieldmap_properties: - title: Field map objects in the get rule types response - type: object - properties: - array: - type: boolean - description: Indicates whether the field is an array. - dynamic: - type: boolean - description: Indicates whether it is a dynamic field mapping. - format: - type: string - description: > - Indicates the format of the field. For example, if the `type` is - `date_range`, the `format` can be - `epoch_millis||strict_date_optional_time`. - ignore_above: - type: integer - description: >- - Specifies the maximum length of a string field. Longer strings are - not indexed or stored. - index: - type: boolean - description: Indicates whether field values are indexed. - path: - type: string - description: TBD - properties: - type: object - description: > - Details about the object properties. This property is applicable - when `type` is `object`. - additionalProperties: - type: object - properties: - type: - type: string - description: The data type for each object property. - required: - type: boolean - description: Indicates whether the field is required. - scaling_factor: - type: integer - description: > - The scaling factor to use when encoding values. This property is - applicable when `type` is `scaled_float`. Values will be multiplied - by this factor at index time and rounded to the closest long value. - type: - type: string - description: Specifies the data type for the field. - example: scaled_float - Alerting_400_response: - title: Bad request - type: object - required: - - error - - message - - statusCode - properties: - error: - type: string - enum: - - Bad Request - message: - type: string - statusCode: - type: integer - enum: - - 400 - Alerting_alert_response_properties: - title: Legacy alert response properties - type: object - properties: - actions: - type: array - items: - type: object - alertTypeId: - type: string - example: .index-threshold - apiKeyOwner: - type: string - nullable: true - example: elastic - createdAt: - type: string - description: The date and time that the alert was created. - format: date-time - example: '2022-12-05T23:36:58.284Z' - createdBy: - type: string - description: The identifier for the user that created the alert. - example: elastic - enabled: - type: boolean - description: Indicates whether the alert is currently enabled. - example: true - executionStatus: - type: object - properties: - lastExecutionDate: - type: string - format: date-time - example: '2022-12-06T00:13:43.890Z' - status: - type: string - example: ok - id: - type: string - description: The identifier for the alert. - example: b530fed0-74f5-11ed-9801-35303b735aef - muteAll: - type: boolean - example: false - mutedInstanceIds: - type: array - nullable: true - items: - type: string - name: - type: string - description: The name of the alert. - example: my alert - notifyWhen: - type: string - example: onActionGroupChange - params: - type: object - additionalProperties: true - schedule: - type: object - properties: - interval: - type: string - scheduledTaskId: - type: string - example: b530fed0-74f5-11ed-9801-35303b735aef - tags: - type: array - items: - type: string - throttle: - type: string - nullable: true - updatedAt: - type: string - example: '2022-12-05T23:36:58.284Z' - updatedBy: - type: string - description: The identifier for the user that updated this alert most recently. - nullable: true - example: elastic - Cases_assignees: - type: array - description: An array containing users that are assigned to the case. - maxItems: 10 - nullable: true - items: - type: object - required: - - uid - properties: - uid: - type: string - description: >- - A unique identifier for the user profile. These identifiers can be - found by using the suggest user profile API. - example: u_0wpfV1MqYDaXzLtRVY-gLMrddKDEmfz51Fszhj7hWC8_0 - Cases_connector_properties_none: - title: Create or update case request properties for no connector - required: - - fields - - id - - name - - type - description: Defines properties for connectors when type is `.none`. - type: object - properties: - fields: - description: >- - An object containing the connector fields. To create a case without - a connector, specify null. To update a case to remove the connector, - specify null. - nullable: true - type: string - example: null - id: - description: >- - The identifier for the connector. To create a case without a - connector, use `none`. To update a case to remove the connector, - specify `none`. - type: string - example: none - name: - description: >- - The name of the connector. To create a case without a connector, use - `none`. To update a case to remove the connector, specify `none`. - type: string - example: none - type: - description: >- - The type of connector. To create a case without a connector, use - `.none`. To update a case to remove the connector, specify `.none`. - type: string - example: .none - enum: - - .none - Cases_connector_properties_cases_webhook: - title: Create or upate case request properties for Cases Webhook connector - required: - - fields - - id - - name - - type - description: Defines properties for connectors when type is `.cases-webhook`. - type: object - properties: - fields: - type: string - nullable: true - example: null - id: - description: >- - The identifier for the connector. To retrieve connector IDs, use the - find connectors API. - type: string - name: - description: The name of the connector. - type: string - type: - description: The type of connector. - type: string - example: .cases-webhook - enum: - - .cases-webhook - Cases_connector_properties_jira: - title: Create or update case request properties for a Jira connector - required: - - fields - - id - - name - - type - description: Defines properties for connectors when type is `.jira`. - type: object - properties: - fields: - description: >- - An object containing the connector fields. If you want to omit any - individual field, specify null as its value. - type: object - required: - - issueType - - parent - - priority - properties: - issueType: - description: The type of issue. - type: string - nullable: true - parent: - description: The key of the parent issue, when the issue type is sub-task. - type: string - nullable: true - priority: - description: The priority of the issue. - type: string - nullable: true - id: - description: >- - The identifier for the connector. To retrieve connector IDs, use the - find connectors API. - type: string - name: - description: The name of the connector. - type: string - type: - description: The type of connector. - type: string - example: .jira - enum: - - .jira - Cases_connector_properties_resilient: - title: Create case request properties for a IBM Resilient connector - required: - - fields - - id - - name - - type - description: Defines properties for connectors when type is `.resilient`. - type: object - properties: - fields: - description: >- - An object containing the connector fields. If you want to omit any - individual field, specify null as its value. - type: object - nullable: true - required: - - issueTypes - - severityCode - properties: - issueTypes: - description: The type of incident. - type: array - items: - type: string - severityCode: - description: The severity code of the incident. - type: string - id: - description: The identifier for the connector. - type: string - name: - description: The name of the connector. - type: string - type: - description: The type of connector. - type: string - example: .resilient - enum: - - .resilient - Cases_connector_properties_servicenow: - title: Create case request properties for a ServiceNow ITSM connector - required: - - fields - - id - - name - - type - description: Defines properties for connectors when type is `.servicenow`. - type: object - properties: - fields: - description: >- - An object containing the connector fields. If you want to omit any - individual field, specify null as its value. - type: object - required: - - category - - impact - - severity - - subcategory - - urgency - properties: - category: - description: The category of the incident. - type: string - nullable: true - impact: - description: The effect an incident had on business. - type: string - nullable: true - severity: - description: The severity of the incident. - type: string - nullable: true - subcategory: - description: The subcategory of the incident. - type: string - nullable: true - urgency: - description: The extent to which the incident resolution can be delayed. - type: string - nullable: true - id: - description: >- - The identifier for the connector. To retrieve connector IDs, use the - find connectors API. - type: string - name: - description: The name of the connector. - type: string - type: - description: The type of connector. - type: string - example: .servicenow - enum: - - .servicenow - Cases_connector_properties_servicenow_sir: - title: Create case request properties for a ServiceNow SecOps connector - required: - - fields - - id - - name - - type - description: Defines properties for connectors when type is `.servicenow-sir`. - type: object - properties: - fields: - description: >- - An object containing the connector fields. If you want to omit any - individual field, specify null as its value. - type: object - required: - - category - - destIp - - malwareHash - - malwareUrl - - priority - - sourceIp - - subcategory - properties: - category: - description: The category of the incident. - type: string - nullable: true - destIp: - description: >- - Indicates whether cases will send a comma-separated list of - destination IPs. - type: boolean - nullable: true - malwareHash: - description: >- - Indicates whether cases will send a comma-separated list of - malware hashes. - type: boolean - nullable: true - malwareUrl: - description: >- - Indicates whether cases will send a comma-separated list of - malware URLs. - type: boolean - nullable: true - priority: - description: The priority of the issue. - type: string - nullable: true - sourceIp: - description: >- - Indicates whether cases will send a comma-separated list of - source IPs. - type: boolean - nullable: true - subcategory: - description: The subcategory of the incident. - type: string - nullable: true - id: - description: >- - The identifier for the connector. To retrieve connector IDs, use the - find connectors API. - type: string - name: - description: The name of the connector. - type: string - type: - description: The type of connector. - type: string - example: .servicenow-sir - enum: - - .servicenow-sir - Cases_connector_properties_swimlane: - title: Create case request properties for a Swimlane connector - required: - - fields - - id - - name - - type - description: Defines properties for connectors when type is `.swimlane`. - type: object - properties: - fields: - description: >- - An object containing the connector fields. If you want to omit any - individual field, specify null as its value. - type: object - required: - - caseId - properties: - caseId: - description: The case identifier for Swimlane connectors. - type: string - nullable: true - id: - description: >- - The identifier for the connector. To retrieve connector IDs, use the - find connectors API. - type: string - name: - description: The name of the connector. - type: string - type: - description: The type of connector. - type: string - example: .swimlane - enum: - - .swimlane - Cases_case_description: - description: The description for the case. - type: string - maxLength: 30000 - Cases_owners: - type: string - description: > - The application that owns the cases: Stack Management, Observability, or - Elastic Security. - enum: - - cases - - observability - - securitySolution - example: cases - Cases_settings: - type: object - description: An object that contains the case settings. - required: - - syncAlerts - properties: - syncAlerts: - description: Turns alert syncing on or off. - type: boolean - example: true - Cases_case_severity: - type: string - description: The severity of the case. - enum: - - critical - - high - - low - - medium - default: low - Cases_case_tags: - description: > - The words and phrases that help categorize cases. It can be an empty - array. - type: array - maxItems: 200 - items: - type: string - maxLength: 256 - Cases_case_category: - description: A word or phrase that categorizes the case. - type: string - maxLength: 50 - Cases_case_title: - description: A title for the case. - type: string - maxLength: 160 - Cases_create_case_request: - title: Create case request - description: >- - The create case API request body varies depending on the type of - connector. - type: object - required: - - connector - - description - - owner - - settings - - tags - - title - properties: - assignees: - $ref: '#/components/schemas/Cases_assignees' - connector: - oneOf: - - $ref: '#/components/schemas/Cases_connector_properties_none' - - $ref: '#/components/schemas/Cases_connector_properties_cases_webhook' - - $ref: '#/components/schemas/Cases_connector_properties_jira' - - $ref: '#/components/schemas/Cases_connector_properties_resilient' - - $ref: '#/components/schemas/Cases_connector_properties_servicenow' - - $ref: '#/components/schemas/Cases_connector_properties_servicenow_sir' - - $ref: '#/components/schemas/Cases_connector_properties_swimlane' - description: - $ref: '#/components/schemas/Cases_case_description' - owner: - $ref: '#/components/schemas/Cases_owners' - settings: - $ref: '#/components/schemas/Cases_settings' - severity: - $ref: '#/components/schemas/Cases_case_severity' - tags: - $ref: '#/components/schemas/Cases_case_tags' - category: - $ref: '#/components/schemas/Cases_case_category' - title: - $ref: '#/components/schemas/Cases_case_title' - customFields: - type: array - description: > - Custom field values for a case. Any optional custom fields that are - not specified in the request are set to null. - minItems: 0 - maxItems: 10 - items: - type: object - required: - - key - - type - - value - properties: - key: - description: > - The unique identifier for the custom field. The key value must - exist in the case configuration settings. - type: string - type: - description: > - The custom field type. It must match the type specified in the - case configuration settings. - type: string - enum: - - text - - toggle - value: - description: > - The custom field value. If the custom field is required, it - cannot be explicitly set to null. However, for cases that - existed when the required custom field was added, the default - value stored in Elasticsearch is `undefined`. The value - returned in the API and user interface in this case is `null`. - oneOf: - - type: string - minLength: 1 - maxLength: 160 - nullable: true - - type: boolean - Cases_case_response_closed_by_properties: - title: Case response properties for closed_by - type: object - nullable: true - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - required: - - email - - full_name - - username - Cases_alert_comment_response_properties: - title: Add case comment response properties for alerts - type: object - required: - - type - properties: - alertId: - type: array - items: - type: string - example: a6e12ac4-7bce-457b-84f6-d7ce8deb8446 - created_at: - type: string - format: date-time - example: '2023-11-06T19:29:38.424Z' - created_by: - type: object - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - id: - type: string - example: 73362370-ab1a-11ec-985f-97e55adae8b9 - index: - type: array - items: - type: string - example: .internal.alerts-security.alerts-default-000001 - owner: - $ref: '#/components/schemas/Cases_owners' - pushed_at: - type: string - format: date-time - example: null - nullable: true - pushed_by: - type: object - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - nullable: true - rule: - type: object - properties: - id: - description: The rule identifier. - type: string - example: 94d80550-aaf4-11ec-985f-97e55adae8b9 - name: - description: The rule name. - type: string - example: security_rule - type: - type: string - example: alert - enum: - - alert - updated_at: - type: string - format: date-time - nullable: true - updated_by: - type: object - nullable: true - required: - - email - - full_name - - username - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - version: - type: string - example: WzMwNDgsMV0= - Cases_user_comment_response_properties: - title: Case response properties for user comments - type: object - required: - - type - properties: - comment: - type: string - example: A new comment. - created_at: - type: string - format: date-time - example: '2022-05-13T09:16:17.416Z' - created_by: - $ref: '#/components/schemas/Cases_case_response_created_by_properties' - id: - type: string - example: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 - owner: - $ref: '#/components/schemas/Cases_owners' - pushed_at: - type: string - format: date-time - nullable: true - example: null - pushed_by: - $ref: '#/components/schemas/Cases_case_response_pushed_by_properties' - type: - type: string - example: user - enum: - - user - updated_at: - type: string - format: date-time - nullable: true - example: null - updated_by: - $ref: '#/components/schemas/Cases_case_response_updated_by_properties' - version: - type: string - example: WzIwNDMxLDFd - Cases_case_response_created_by_properties: - title: Case response properties for created_by - type: object - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - required: - - email - - full_name - - username - Cases_case_response_pushed_by_properties: - title: Case response properties for pushed_by - type: object - nullable: true - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - required: - - email - - full_name - - username - Cases_case_response_updated_by_properties: - title: Case response properties for updated_by - type: object - nullable: true - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - required: - - email - - full_name - - username - Cases_external_service: - type: object - nullable: true - properties: - connector_id: - type: string - connector_name: - type: string - external_id: - type: string - external_title: - type: string - external_url: - type: string - pushed_at: - type: string - format: date-time - pushed_by: - type: object - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - nullable: true - Cases_case_status: - type: string - description: The status of the case. - enum: - - closed - - in-progress - - open - Cases_case_response_properties: - title: Case response properties - type: object - required: - - closed_at - - closed_by - - comments - - connector - - created_at - - created_by - - description - - duration - - external_service - - id - - owner - - settings - - severity - - status - - tags - - title - - totalAlerts - - totalComment - - updated_at - - updated_by - - version - properties: - assignees: - $ref: '#/components/schemas/Cases_assignees' - category: - type: string - description: The case category. - nullable: true - closed_at: - type: string - format: date-time - nullable: true - closed_by: - $ref: '#/components/schemas/Cases_case_response_closed_by_properties' - comments: - title: Case response properties for comments - description: An array of comment objects for the case. - type: array - maxItems: 10000 - items: - oneOf: - - $ref: '#/components/schemas/Cases_alert_comment_response_properties' - - $ref: '#/components/schemas/Cases_user_comment_response_properties' - discriminator: - propertyName: type - mapping: - alert: '#/components/schemas/Cases_alert_comment_response_properties' - user: '#/components/schemas/Cases_user_comment_response_properties' - connector: - title: Case response properties for connectors - oneOf: - - $ref: '#/components/schemas/Cases_connector_properties_none' - - $ref: '#/components/schemas/Cases_connector_properties_cases_webhook' - - $ref: '#/components/schemas/Cases_connector_properties_jira' - - $ref: '#/components/schemas/Cases_connector_properties_resilient' - - $ref: '#/components/schemas/Cases_connector_properties_servicenow' - - $ref: '#/components/schemas/Cases_connector_properties_servicenow_sir' - - $ref: '#/components/schemas/Cases_connector_properties_swimlane' - discriminator: - propertyName: type - mapping: - .none: '#/components/schemas/Cases_connector_properties_none' - .cases-webhook: '#/components/schemas/Cases_connector_properties_cases_webhook' - .jira: '#/components/schemas/Cases_connector_properties_jira' - .resilient: '#/components/schemas/Cases_connector_properties_resilient' - .servicenow: '#/components/schemas/Cases_connector_properties_servicenow' - .servicenow-sir: '#/components/schemas/Cases_connector_properties_servicenow_sir' - .swimlane: '#/components/schemas/Cases_connector_properties_swimlane' - created_at: - type: string - format: date-time - example: '2022-05-13T09:16:17.416Z' - created_by: - $ref: '#/components/schemas/Cases_case_response_created_by_properties' - customFields: - type: array - description: Custom field values for the case. - items: - type: object - properties: - key: - description: > - The unique identifier for the custom field. The key value must - exist in the case configuration settings. - type: string - type: - description: > - The custom field type. It must match the type specified in the - case configuration settings. - type: string - enum: - - text - - toggle - value: - description: > - The custom field value. If the custom field is required, it - cannot be explicitly set to null. However, for cases that - existed when the required custom field was added, the default - value stored in Elasticsearch is `undefined`. The value - returned in the API and user interface in this case is `null`. - oneOf: - - type: string - minLength: 1 - maxLength: 160 - nullable: true - - type: boolean - description: - type: string - example: A case description. - duration: - type: integer - description: > - The elapsed time from the creation of the case to its closure (in - seconds). If the case has not been closed, the duration is set to - null. If the case was closed after less than half a second, the - duration is rounded down to zero. - nullable: true - example: 120 - external_service: - $ref: '#/components/schemas/Cases_external_service' - id: - type: string - example: 66b9aa00-94fa-11ea-9f74-e7e108796192 - owner: - $ref: '#/components/schemas/Cases_owners' - settings: - $ref: '#/components/schemas/Cases_settings' - severity: - $ref: '#/components/schemas/Cases_case_severity' - status: - $ref: '#/components/schemas/Cases_case_status' - tags: - type: array - items: - type: string - example: - - tag-1 - title: - type: string - example: Case title 1 - totalAlerts: - type: integer - example: 0 - totalComment: - type: integer - example: 0 - updated_at: - type: string - format: date-time - nullable: true - updated_by: - $ref: '#/components/schemas/Cases_case_response_updated_by_properties' - version: - type: string - example: WzUzMiwxXQ== - Cases_4xx_response: - type: object - title: Unsuccessful cases API response - properties: - error: - type: string - example: Unauthorized - message: - type: string - statusCode: - type: integer - example: 401 - Cases_update_case_request: - title: Update case request - description: >- - The update case API request body varies depending on the type of - connector. - type: object - required: - - cases - properties: - cases: - type: array - description: An array containing one or more case objects. - maxItems: 100 - minItems: 1 - items: - type: object - required: - - id - - version - properties: - assignees: - $ref: '#/components/schemas/Cases_assignees' - category: - $ref: '#/components/schemas/Cases_case_category' - connector: - oneOf: - - $ref: '#/components/schemas/Cases_connector_properties_none' - - $ref: >- - #/components/schemas/Cases_connector_properties_cases_webhook - - $ref: '#/components/schemas/Cases_connector_properties_jira' - - $ref: '#/components/schemas/Cases_connector_properties_resilient' - - $ref: '#/components/schemas/Cases_connector_properties_servicenow' - - $ref: >- - #/components/schemas/Cases_connector_properties_servicenow_sir - - $ref: '#/components/schemas/Cases_connector_properties_swimlane' - customFields: - type: array - description: > - Custom field values for a case. Any optional custom fields - that are not specified in the request are set to null. - minItems: 0 - maxItems: 10 - items: - type: object - required: - - key - - type - - value - properties: - key: - description: > - The unique identifier for the custom field. The key - value must exist in the case configuration settings. - type: string - type: - description: > - The custom field type. It must match the type specified - in the case configuration settings. - type: string - enum: - - text - - toggle - value: - description: > - The custom field value. If the custom field is required, - it cannot be explicitly set to null. However, for cases - that existed when the required custom field was added, - the default value stored in Elasticsearch is - `undefined`. The value returned in the API and user - interface in this case is `null`. - oneOf: - - type: string - minLength: 1 - maxLength: 160 - nullable: true - - type: boolean - description: - $ref: '#/components/schemas/Cases_case_description' - id: - description: The identifier for the case. - type: string - maxLength: 30000 - settings: - $ref: '#/components/schemas/Cases_settings' - severity: - $ref: '#/components/schemas/Cases_case_severity' - status: - $ref: '#/components/schemas/Cases_case_status' - tags: - $ref: '#/components/schemas/Cases_case_tags' - title: - $ref: '#/components/schemas/Cases_case_title' - version: - description: >- - The current version of the case. To determine this value, use - the get case or find cases APIs. - type: string - Cases_searchFieldsType: - type: string - description: The fields to perform the `simple_query_string` parsed query against. - enum: - - description - - title - Cases_closure_types: - type: string - description: >- - Indicates whether a case is automatically closed when it is pushed to - external systems (`close-by-pushing`) or not automatically closed - (`close-by-user`). - enum: - - close-by-pushing - - close-by-user - example: close-by-user - Cases_connector_types: - type: string - description: The type of connector. - enum: - - .cases-webhook - - .jira - - .none - - .resilient - - .servicenow - - .servicenow-sir - - .swimlane - example: .none - Cases_template_tags: - description: > - The words and phrases that help categorize templates. It can be an empty - array. - type: array - maxItems: 200 - items: - type: string - maxLength: 256 - Cases_templates: - type: array - x-technical-preview: true - items: - type: object - properties: - caseFields: - type: object - properties: - assignees: - $ref: '#/components/schemas/Cases_assignees' - category: - $ref: '#/components/schemas/Cases_case_category' - connector: - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are not - used and are not propagated to individual cases, therefore - it is recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want a - default connector, use `none`. To retrieve connector IDs, - use the find connectors API. - type: string - example: none - name: - description: >- - The name of the connector. If you do not want a default - connector, use `none`. To retrieve connector names, use - the find connectors API. - type: string - example: none - type: - $ref: '#/components/schemas/Cases_connector_types' - customFields: - type: array - x-technical-preview: true - description: Custom field values in the template. - items: - type: object - properties: - key: - type: string - description: The unique key for the custom field. - type: - type: string - enum: - - text - - toggle - description: The type of the custom field. - value: - oneOf: - - type: string - - type: boolean - description: > - The default value for the custom field when a case uses - the template. If the `type` is `text`, the default value - must be a string. If the `type` is `toggle`, the default - value must be boolean. - description: - $ref: '#/components/schemas/Cases_case_description' - settings: - $ref: '#/components/schemas/Cases_settings' - severity: - $ref: '#/components/schemas/Cases_case_severity' - tags: - $ref: '#/components/schemas/Cases_case_tags' - title: - $ref: '#/components/schemas/Cases_case_title' - description: - type: string - description: A description for the template. - key: - type: string - description: > - A unique key for the template. Must be lower case and composed - only of a-z, 0-9, '_', and '-' characters. It is used in API calls - to refer to a specific template. - name: - type: string - description: The name of the template. - tags: - $ref: '#/components/schemas/Cases_template_tags' - Cases_set_case_configuration_request: - title: Set case configuration request - description: >- - External connection details, such as the closure type and default - connector for cases. - type: object - required: - - closure_type - - connector - - owner - properties: - closure_type: - $ref: '#/components/schemas/Cases_closure_types' - connector: - description: An object that contains the connector configuration. - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are not used and - are not propagated to individual cases, therefore it is - recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want a default - connector, use `none`. To retrieve connector IDs, use the find - connectors API. - type: string - example: none - name: - description: >- - The name of the connector. If you do not want a default - connector, use `none`. To retrieve connector names, use the find - connectors API. - type: string - example: none - type: - $ref: '#/components/schemas/Cases_connector_types' - required: - - fields - - id - - name - - type - customFields: - type: array - description: Custom fields case configuration. - minItems: 0 - maxItems: 10 - items: - type: object - required: - - key - - label - - required - - type - properties: - defaultValue: - oneOf: - - type: string - - type: boolean - description: > - A default value for the custom field. If the `type` is `text`, - the default value must be a string. If the `type` is `toggle`, - the default value must be boolean. - key: - description: > - A unique key for the custom field. Must be lower case and - composed only of a-z, 0-9, '_', and '-' characters. It is used - in API calls to refer to a specific custom field. - type: string - minLength: 1 - maxLength: 36 - label: - description: The custom field label that is displayed in the case. - type: string - minLength: 1 - maxLength: 50 - required: - description: > - Indicates whether the field is required. If `false`, the - custom field can be set to null or omitted when a case is - created or updated. - type: boolean - type: - description: The type of the custom field. - type: string - enum: - - text - - toggle - owner: - $ref: '#/components/schemas/Cases_owners' - templates: - $ref: '#/components/schemas/Cases_templates' - Cases_update_case_configuration_request: - title: Update case configuration request - description: > - You can update settings such as the closure type, custom fields, - templates, and the default connector for cases. - type: object - required: - - version - properties: - closure_type: - $ref: '#/components/schemas/Cases_closure_types' - connector: - description: An object that contains the connector configuration. - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are not used and - are not propagated to individual cases, therefore it is - recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want a default - connector, use `none`. To retrieve connector IDs, use the find - connectors API. - type: string - example: none - name: - description: >- - The name of the connector. If you do not want a default - connector, use `none`. To retrieve connector names, use the find - connectors API. - type: string - example: none - type: - $ref: '#/components/schemas/Cases_connector_types' - required: - - fields - - id - - name - - type - customFields: - type: array - description: Custom fields case configuration. - items: - type: object - required: - - key - - label - - required - - type - properties: - defaultValue: - oneOf: - - type: string - - type: boolean - description: > - A default value for the custom field. If the `type` is `text`, - the default value must be a string. If the `type` is `toggle`, - the default value must be boolean. - key: - description: > - A unique key for the custom field. Must be lower case and - composed only of a-z, 0-9, '_', and '-' characters. It is used - in API calls to refer to a specific custom field. - type: string - minLength: 1 - maxLength: 36 - label: - description: The custom field label that is displayed in the case. - type: string - minLength: 1 - maxLength: 50 - required: - description: > - Indicates whether the field is required. If `false`, the - custom field can be set to null or omitted when a case is - created or updated. - type: boolean - type: - description: The type of the custom field. - type: string - enum: - - text - - toggle - templates: - $ref: '#/components/schemas/Cases_templates' - version: - description: > - The version of the connector. To retrieve the version value, use the - get configuration API. - type: string - example: WzIwMiwxXQ== - Cases_alert_response_properties: - type: object - properties: - attached_at: - type: string - format: date-time - id: - description: The alert identifier. - type: string - index: - description: The alert index. - type: string - Cases_add_alert_comment_request_properties: - title: Add case comment request properties for alerts - required: - - alertId - - index - - owner - - rule - - type - description: Defines properties for case comment requests when type is alert. - type: object - properties: - alertId: - $ref: '#/components/schemas/Cases_alert_identifiers' - index: - $ref: '#/components/schemas/Cases_alert_indices' - owner: - $ref: '#/components/schemas/Cases_owners' - rule: - $ref: '#/components/schemas/Cases_rule' - type: - description: The type of comment. - type: string - example: alert - enum: - - alert - Cases_add_user_comment_request_properties: - title: Add case comment request properties for user comments - description: Defines properties for case comment requests when type is user. - type: object - properties: - comment: - description: The new comment. It is required only when `type` is `user`. - type: string - maxLength: 30000 - example: A new comment. - owner: - $ref: '#/components/schemas/Cases_owners' - type: - type: string - description: The type of comment. - example: user - enum: - - user - required: - - comment - - owner - - type - Cases_alert_identifiers: - title: Alert identifiers - description: > - The alert identifiers. It is required only when `type` is `alert`. You - can use an array of strings to add multiple alerts to a case, provided - that they all relate to the same rule; `index` must also be an array - with the same length or number of elements. Adding multiple alerts in - this manner is recommended rather than calling the API multiple times. - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - oneOf: - - type: string - - type: array - items: - type: string - maxItems: 1000 - x-technical-preview: true - example: 6b24c4dc44bc720cfc92797f3d61fff952f2b2627db1fb4f8cc49f4530c4ff42 - Cases_alert_indices: - title: Alert indices - description: > - The alert indices. It is required only when `type` is `alert`. If you - are adding multiple alerts to a case, use an array of strings; the - position of each index name in the array must match the position of the - corresponding alert identifier in the `alertId` array. This - functionality is in technical preview and may be changed or removed in a - future release. Elastic will work to fix any issues, but features in - technical preview are not subject to the support SLA of official GA - features. - oneOf: - - type: string - - type: array - items: - type: string - maxItems: 1000 - x-technical-preview: true - Cases_rule: - title: Alerting rule - description: > - The rule that is associated with the alerts. It is required only when - `type` is `alert`. This functionality is in technical preview and may be - changed or removed in a future release. Elastic will work to fix any - issues, but features in technical preview are not subject to the support - SLA of official GA features. - type: object - x-technical-preview: true - properties: - id: - description: The rule identifier. - type: string - example: 94d80550-aaf4-11ec-985f-97e55adae8b9 - name: - description: The rule name. - type: string - example: security_rule - Cases_add_case_comment_request: - title: Add case comment request - description: >- - The add comment to case API request body varies depending on whether you - are adding an alert or a comment. - oneOf: - - $ref: '#/components/schemas/Cases_add_alert_comment_request_properties' - - $ref: '#/components/schemas/Cases_add_user_comment_request_properties' - discriminator: - propertyName: type - mapping: - alert: '#/components/schemas/Cases_add_alert_comment_request_properties' - user: '#/components/schemas/Cases_add_user_comment_request_properties' - Cases_update_alert_comment_request_properties: - title: Update case comment request properties for alerts - description: Defines properties for case comment requests when type is alert. - required: - - alertId - - id - - index - - owner - - rule - - type - - version - type: object - properties: - alertId: - $ref: '#/components/schemas/Cases_alert_identifiers' - id: - type: string - description: > - The identifier for the comment. To retrieve comment IDs, use the get - comments API. - example: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 - index: - $ref: '#/components/schemas/Cases_alert_indices' - owner: - $ref: '#/components/schemas/Cases_owners' - rule: - $ref: '#/components/schemas/Cases_rule' - type: - description: The type of comment. - type: string - enum: - - alert - example: alert - version: - description: > - The current comment version. To retrieve version values, use the get - comments API. - type: string - example: Wzk1LDFd - Cases_update_user_comment_request_properties: - title: Update case comment request properties for user comments - description: Defines properties for case comment requests when type is user. - type: object - properties: - comment: - description: The new comment. It is required only when `type` is `user`. - type: string - maxLength: 30000 - example: A new comment. - id: - type: string - description: > - The identifier for the comment. To retrieve comment IDs, use the get - comments API. - example: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 - owner: - $ref: '#/components/schemas/Cases_owners' - type: - type: string - description: The type of comment. - enum: - - user - example: user - version: - description: > - The current comment version. To retrieve version values, use the get - comments API. - type: string - example: Wzk1LDFd - required: - - comment - - id - - owner - - type - - version - Cases_update_case_comment_request: - title: Update case comment request - description: >- - The update case comment API request body varies depending on whether you - are updating an alert or a comment. - oneOf: - - $ref: '#/components/schemas/Cases_update_alert_comment_request_properties' - - $ref: '#/components/schemas/Cases_update_user_comment_request_properties' - discriminator: - propertyName: type - mapping: - alert: '#/components/schemas/Cases_update_alert_comment_request_properties' - user: '#/components/schemas/Cases_update_user_comment_request_properties' - Cases_actions: - type: string - enum: - - add - - create - - delete - - push_to_service - - update - example: create - Cases_payload_alert_comment: - type: object - properties: - comment: - type: object - properties: - alertId: - oneOf: - - type: string - example: 1c0b056b-cc9f-4b61-b5c9-cb801abd5e1d - - type: array - items: - type: string - index: - oneOf: - - type: string - example: .alerts-observability.logs.alerts-default - - type: array - items: - type: string - owner: - $ref: '#/components/schemas/Cases_owners' - rule: - type: object - properties: - id: - description: The rule identifier. - type: string - example: 94d80550-aaf4-11ec-985f-97e55adae8b9 - name: - description: The rule name. - type: string - example: security_rule - type: - type: string - enum: - - alert - Cases_payload_assignees: - type: object - properties: - assignees: - $ref: '#/components/schemas/Cases_assignees' - Cases_payload_connector: - type: object - properties: - connector: - type: object - properties: - fields: - description: >- - An object containing the connector fields. To create a case - without a connector, specify null. If you want to omit any - individual field, specify null as its value. - nullable: true - type: object - properties: - caseId: - description: The case identifier for Swimlane connectors. - type: string - category: - description: >- - The category of the incident for ServiceNow ITSM and - ServiceNow SecOps connectors. - type: string - destIp: - description: >- - Indicates whether cases will send a comma-separated list of - destination IPs for ServiceNow SecOps connectors. - type: boolean - nullable: true - impact: - description: >- - The effect an incident had on business for ServiceNow ITSM - connectors. - type: string - issueType: - description: The type of issue for Jira connectors. - type: string - issueTypes: - description: The type of incident for IBM Resilient connectors. - type: array - items: - type: string - malwareHash: - description: >- - Indicates whether cases will send a comma-separated list of - malware hashes for ServiceNow SecOps connectors. - type: boolean - nullable: true - malwareUrl: - description: >- - Indicates whether cases will send a comma-separated list of - malware URLs for ServiceNow SecOps connectors. - type: boolean - nullable: true - parent: - description: >- - The key of the parent issue, when the issue type is sub-task - for Jira connectors. - type: string - priority: - description: >- - The priority of the issue for Jira and ServiceNow SecOps - connectors. - type: string - severity: - description: The severity of the incident for ServiceNow ITSM connectors. - type: string - severityCode: - description: >- - The severity code of the incident for IBM Resilient - connectors. - type: string - sourceIp: - description: >- - Indicates whether cases will send a comma-separated list of - source IPs for ServiceNow SecOps connectors. - type: boolean - nullable: true - subcategory: - description: >- - The subcategory of the incident for ServiceNow ITSM - connectors. - type: string - urgency: - description: >- - The extent to which the incident resolution can be delayed - for ServiceNow ITSM connectors. - type: string - example: null - id: - description: >- - The identifier for the connector. To create a case without a - connector, use `none`. - type: string - example: none - name: - description: >- - The name of the connector. To create a case without a connector, - use `none`. - type: string - example: none - type: - $ref: '#/components/schemas/Cases_connector_types' - Cases_payload_create_case: - type: object - properties: - assignees: - $ref: '#/components/schemas/Cases_assignees' - connector: - type: object - properties: - fields: - description: >- - An object containing the connector fields. To create a case - without a connector, specify null. If you want to omit any - individual field, specify null as its value. - nullable: true - type: object - properties: - caseId: - description: The case identifier for Swimlane connectors. - type: string - category: - description: >- - The category of the incident for ServiceNow ITSM and - ServiceNow SecOps connectors. - type: string - destIp: - description: >- - Indicates whether cases will send a comma-separated list of - destination IPs for ServiceNow SecOps connectors. - type: boolean - nullable: true - impact: - description: >- - The effect an incident had on business for ServiceNow ITSM - connectors. - type: string - issueType: - description: The type of issue for Jira connectors. - type: string - issueTypes: - description: The type of incident for IBM Resilient connectors. - type: array - items: - type: string - malwareHash: - description: >- - Indicates whether cases will send a comma-separated list of - malware hashes for ServiceNow SecOps connectors. - type: boolean - nullable: true - malwareUrl: - description: >- - Indicates whether cases will send a comma-separated list of - malware URLs for ServiceNow SecOps connectors. - type: boolean - nullable: true - parent: - description: >- - The key of the parent issue, when the issue type is sub-task - for Jira connectors. - type: string - priority: - description: >- - The priority of the issue for Jira and ServiceNow SecOps - connectors. - type: string - severity: - description: The severity of the incident for ServiceNow ITSM connectors. - type: string - severityCode: - description: >- - The severity code of the incident for IBM Resilient - connectors. - type: string - sourceIp: - description: >- - Indicates whether cases will send a comma-separated list of - source IPs for ServiceNow SecOps connectors. - type: boolean - nullable: true - subcategory: - description: >- - The subcategory of the incident for ServiceNow ITSM - connectors. - type: string - urgency: - description: >- - The extent to which the incident resolution can be delayed - for ServiceNow ITSM connectors. - type: string - example: null - id: - description: >- - The identifier for the connector. To create a case without a - connector, use `none`. - type: string - example: none - name: - description: >- - The name of the connector. To create a case without a connector, - use `none`. - type: string - example: none - type: - $ref: '#/components/schemas/Cases_connector_types' - description: - type: string - owner: - $ref: '#/components/schemas/Cases_owners' - settings: - $ref: '#/components/schemas/Cases_settings' - severity: - $ref: '#/components/schemas/Cases_case_severity' - status: - $ref: '#/components/schemas/Cases_case_status' - tags: - type: array - items: - type: string - example: - - tag-1 - title: - type: string - Cases_payload_delete: - type: object - description: >- - If the `action` is `delete` and the `type` is `delete_case`, the payload - is nullable. - nullable: true - Cases_payload_description: - type: object - properties: - description: - type: string - Cases_payload_pushed: - type: object - properties: - externalService: - $ref: '#/components/schemas/Cases_external_service' - Cases_payload_settings: - type: object - properties: - settings: - $ref: '#/components/schemas/Cases_settings' - Cases_payload_severity: - type: object - properties: - severity: - $ref: '#/components/schemas/Cases_case_severity' - Cases_payload_status: - type: object - properties: - status: - $ref: '#/components/schemas/Cases_case_status' - Cases_payload_tags: - type: object - properties: - tags: - type: array - items: - type: string - example: - - tag-1 - Cases_payload_title: - type: object - properties: - title: - type: string - Cases_payload_user_comment: - type: object - properties: - comment: - type: object - properties: - comment: - type: string - owner: - $ref: '#/components/schemas/Cases_owners' - type: - type: string - enum: - - user - Cases_action_types: - type: string - description: The type of action. - enum: - - assignees - - create_case - - comment - - connector - - delete_case - - description - - pushed - - tags - - title - - status - - settings - - severity - example: create_case - Cases_user_actions_response_properties: - type: object - required: - - action - - action_id - - case_id - - comment_id - - created_at - - created_by - - owner - - payload - - type - properties: - action: - $ref: '#/components/schemas/Cases_actions' - action_id: - type: string - example: 22fd3e30-03b1-11ed-920c-974bfa104448 - case_id: - type: string - example: 22df07d0-03b1-11ed-920c-974bfa104448 - comment_id: - type: string - nullable: true - example: 578608d0-03b1-11ed-920c-974bfa104448 - created_at: - type: string - format: date-time - example: '2022-05-13T09:16:17.416Z' - created_by: - type: object - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - required: - - email - - full_name - - username - owner: - $ref: '#/components/schemas/Cases_owners' - payload: - oneOf: - - $ref: '#/components/schemas/Cases_payload_alert_comment' - - $ref: '#/components/schemas/Cases_payload_assignees' - - $ref: '#/components/schemas/Cases_payload_connector' - - $ref: '#/components/schemas/Cases_payload_create_case' - - $ref: '#/components/schemas/Cases_payload_delete' - - $ref: '#/components/schemas/Cases_payload_description' - - $ref: '#/components/schemas/Cases_payload_pushed' - - $ref: '#/components/schemas/Cases_payload_settings' - - $ref: '#/components/schemas/Cases_payload_severity' - - $ref: '#/components/schemas/Cases_payload_status' - - $ref: '#/components/schemas/Cases_payload_tags' - - $ref: '#/components/schemas/Cases_payload_title' - - $ref: '#/components/schemas/Cases_payload_user_comment' - type: - $ref: '#/components/schemas/Cases_action_types' - Cases_user_actions_find_response_properties: - type: object - required: - - action - - comment_id - - created_at - - created_by - - id - - owner - - payload - - type - - version - properties: - action: - $ref: '#/components/schemas/Cases_actions' - comment_id: - type: string - nullable: true - example: 578608d0-03b1-11ed-920c-974bfa104448 - created_at: - type: string - format: date-time - example: '2022-05-13T09:16:17.416Z' - created_by: - type: object - properties: - email: - type: string - example: null - nullable: true - full_name: - type: string - example: null - nullable: true - username: - type: string - example: elastic - nullable: true - profile_uid: - type: string - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - required: - - email - - full_name - - username - id: - type: string - example: 22fd3e30-03b1-11ed-920c-974bfa104448 - owner: - $ref: '#/components/schemas/Cases_owners' - payload: - oneOf: - - $ref: '#/components/schemas/Cases_payload_alert_comment' - - $ref: '#/components/schemas/Cases_payload_assignees' - - $ref: '#/components/schemas/Cases_payload_connector' - - $ref: '#/components/schemas/Cases_payload_create_case' - - $ref: '#/components/schemas/Cases_payload_delete' - - $ref: '#/components/schemas/Cases_payload_description' - - $ref: '#/components/schemas/Cases_payload_pushed' - - $ref: '#/components/schemas/Cases_payload_settings' - - $ref: '#/components/schemas/Cases_payload_severity' - - $ref: '#/components/schemas/Cases_payload_status' - - $ref: '#/components/schemas/Cases_payload_tags' - - $ref: '#/components/schemas/Cases_payload_title' - - $ref: '#/components/schemas/Cases_payload_user_comment' - version: - type: string - example: WzM1ODg4LDFd - type: - type: string - description: The type of action. - enum: - - assignees - - create_case - - comment - - connector - - description - - pushed - - tags - - title - - status - - settings - - severity - example: create_case - Connectors_create_connector_request_bedrock: - title: Create Amazon Bedrock connector request - description: >- - The Amazon Bedrock connector uses axios to send a POST request to Amazon - Bedrock. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_bedrock' - connector_type_id: - type: string - description: The type of connector. - enum: - - .bedrock - example: .bedrock - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_bedrock' - Connectors_create_connector_request_gemini: - title: Create Google Gemini connector request - description: >- - The Google Gemini connector uses axios to send a POST request to Google - Gemini. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_gemini' - connector_type_id: - type: string - description: The type of connector. - enum: - - .gemini - example: .gemini - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_gemini' - Connectors_create_connector_request_cases_webhook: - title: Create Webhook - Case Managment connector request - description: > - The Webhook - Case Management connector uses axios to send POST, PUT, - and GET requests to a case management RESTful API web service. - type: object - required: - - config - - connector_type_id - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' - connector_type_id: - type: string - description: The type of connector. - enum: - - .cases-webhook - example: .cases-webhook - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_cases_webhook' - Connectors_create_connector_request_d3security: - title: Create D3 Security connector request - description: > - The connector uses axios to send a POST request to a D3 Security - endpoint. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_d3security' - connector_type_id: - type: string - description: The type of connector. - enum: - - .d3security - example: .d3security - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_d3security' - Connectors_create_connector_request_email: - title: Create email connector request - description: > - The email connector uses the SMTP protocol to send mail messages, using - an integration of Nodemailer. An exception is Microsoft Exchange, which - uses HTTP protocol for sending emails, Send mail. Email message text is - sent as both plain text and html text. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_email' - connector_type_id: - type: string - description: The type of connector. - enum: - - .email - example: .email - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_email' - Connectors_create_connector_request_genai: - title: Create OpenAI connector request - description: > - The OpenAI connector uses axios to send a POST request to either OpenAI - or Azure OpenAPI. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_genai' - connector_type_id: - type: string - description: The type of connector. - enum: - - .gen-ai - example: .gen-ai - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_genai' - Connectors_create_connector_request_index: - title: Create index connector request - description: The index connector indexes a document into Elasticsearch. - type: object - required: - - config - - connector_type_id - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_index' - connector_type_id: - type: string - description: The type of connector. - enum: - - .index - example: .index - name: - type: string - description: The display name for the connector. - example: my-connector - Connectors_create_connector_request_jira: - title: Create Jira connector request - description: The Jira connector uses the REST API v2 to create Jira issues. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_jira' - connector_type_id: - type: string - description: The type of connector. - enum: - - .jira - example: .jira - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_jira' - Connectors_create_connector_request_opsgenie: - title: Create Opsgenie connector request - description: The Opsgenie connector uses the Opsgenie alert API. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_opsgenie' - connector_type_id: - type: string - description: The type of connector. - enum: - - .opsgenie - example: .opsgenie - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_opsgenie' - Connectors_create_connector_request_pagerduty: - title: Create PagerDuty connector request - description: > - The PagerDuty connector uses the v2 Events API to trigger, acknowledge, - and resolve PagerDuty alerts. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_pagerduty' - connector_type_id: - type: string - description: The type of connector. - enum: - - .pagerduty - example: .pagerduty - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_pagerduty' - Connectors_create_connector_request_resilient: - title: Create IBM Resilient connector request - description: >- - The IBM Resilient connector uses the RESILIENT REST v2 to create IBM - Resilient incidents. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_resilient' - connector_type_id: - description: The type of connector. - type: string - example: .resilient - enum: - - .resilient - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_resilient' - Connectors_create_connector_request_sentinelone: - title: Create SentinelOne connector request - description: > - The SentinelOne connector communicates with SentinelOne Management - Console via REST API. This functionality is in technical preview and may - be changed or removed in a future release. Elastic will work to fix any - issues, but features in technical preview are not subject to the support - SLA of official GA features. - x-technical-preview: true - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_sentinelone' - connector_type_id: - type: string - description: The type of connector. - enum: - - .sentinelone - example: .sentinelone - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_sentinelone' - Connectors_create_connector_request_serverlog: - title: Create server log connector request - description: This connector writes an entry to the Kibana server log. - type: object - required: - - connector_type_id - - name - properties: - connector_type_id: - type: string - description: The type of connector. - enum: - - .server-log - example: .server-log - name: - type: string - description: The display name for the connector. - example: my-connector - Connectors_create_connector_request_servicenow: - title: Create ServiceNow ITSM connector request - description: > - The ServiceNow ITSM connector uses the import set API to create - ServiceNow incidents. You can use the connector for rule actions and - cases. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow - example: .servicenow - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_create_connector_request_servicenow_itom: - title: Create ServiceNow ITOM connector request - description: > - The ServiceNow ITOM connector uses the event API to create ServiceNow - events. You can use the connector for rule actions. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow-itom - example: .servicenow-itom - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_create_connector_request_servicenow_sir: - title: Create ServiceNow SecOps connector request - description: > - The ServiceNow SecOps connector uses the import set API to create - ServiceNow security incidents. You can use the connector for rule - actions and cases. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow-sir - example: .servicenow-sir - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_create_connector_request_slack_api: - title: Create Slack connector request - description: The Slack connector uses an API method to send Slack messages. - type: object - required: - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_slack_api' - connector_type_id: - type: string - description: The type of connector. - enum: - - .slack_api - example: .slack_api - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_slack_api' - Connectors_create_connector_request_slack_webhook: - title: Create Slack connector request - description: The Slack connector uses Slack Incoming Webhooks. - type: object - required: - - connector_type_id - - name - - secrets - properties: - connector_type_id: - type: string - description: The type of connector. - enum: - - .slack - example: .slack - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_slack_webhook' - Connectors_create_connector_request_swimlane: - title: Create Swimlane connector request - description: >- - The Swimlane connector uses the Swimlane REST API to create Swimlane - records. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_swimlane' - connector_type_id: - type: string - description: The type of connector. - enum: - - .swimlane - example: .swimlane - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_swimlane' - Connectors_create_connector_request_teams: - title: Create Microsoft Teams connector request - description: The Microsoft Teams connector uses Incoming Webhooks. - type: object - required: - - connector_type_id - - name - - secrets - properties: - connector_type_id: - type: string - description: The type of connector. - enum: - - .teams - example: .teams - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_teams' - Connectors_create_connector_request_tines: - title: Create Tines connector request - description: > - The Tines connector uses Tines Webhook actions to send events via POST - request. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_tines' - connector_type_id: - type: string - description: The type of connector. - enum: - - .tines - example: .tines - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_tines' - Connectors_create_connector_request_torq: - title: Create Torq connector request - description: > - The Torq connector uses a Torq webhook to trigger workflows with Kibana - actions. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_torq' - connector_type_id: - type: string - description: The type of connector. - enum: - - .torq - example: .torq - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_torq' - Connectors_create_connector_request_webhook: - title: Create Webhook connector request - description: > - The Webhook connector uses axios to send a POST or PUT request to a web - service. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_webhook' - connector_type_id: - type: string - description: The type of connector. - enum: - - .webhook - example: .webhook - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_webhook' - Connectors_create_connector_request_xmatters: - title: Create xMatters connector request - description: > - The xMatters connector uses the xMatters Workflow for Elastic to send - actionable alerts to on-call xMatters resources. - type: object - required: - - config - - connector_type_id - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_xmatters' - connector_type_id: - type: string - description: The type of connector. - enum: - - .xmatters - example: .xmatters - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_xmatters' - Connectors_config_properties_bedrock: - title: Connector request properties for an Amazon Bedrock connector - description: Defines properties for connectors when type is `.bedrock`. - type: object - required: - - apiUrl - properties: - apiUrl: - type: string - description: The Amazon Bedrock request URL. - defaultModel: - type: string - description: > - The generative artificial intelligence model for Amazon Bedrock to - use. Current support is for the Anthropic Claude models. - default: anthropic.claude-3-5-sonnet-20240620-v1:0 - Connectors_secrets_properties_bedrock: - title: Connector secrets properties for an Amazon Bedrock connector - description: Defines secrets for connectors when type is `.bedrock`. - type: object - required: - - accessKey - - secret - properties: - accessKey: - type: string - description: The AWS access key for authentication. - secret: - type: string - description: The AWS secret for authentication. - Connectors_config_properties_gemini: - title: Connector request properties for an Google Gemini connector - description: Defines properties for connectors when type is `.gemini`. - type: object - required: - - apiUrl - - gcpRegion - - gcpProjectID - properties: - apiUrl: - type: string - description: The Google Gemini request URL. - defaultModel: - type: string - description: >- - The generative artificial intelligence model for Google Gemini to - use. - default: gemini-1.5-pro-001 - gcpRegion: - type: string - description: The GCP region where the Vertex AI endpoint enabled. - gcpProjectID: - type: string - description: The Google ProjectID that has Vertex AI endpoint enabled. - Connectors_secrets_properties_gemini: - title: Connector secrets properties for a Google Gemini connector - description: Defines secrets for connectors when type is `.gemini`. - type: object - required: - - credentialsJSON - properties: - credentialsJSON: - type: string - description: >- - The service account credentials JSON file. The service account - should have Vertex AI user IAM role assigned to it. - Connectors_config_properties_cases_webhook: - title: Connector request properties for Webhook - Case Management connector - required: - - createIncidentJson - - createIncidentResponseKey - - createIncidentUrl - - getIncidentResponseExternalTitleKey - - getIncidentUrl - - updateIncidentJson - - updateIncidentUrl - - viewIncidentUrl - description: Defines properties for connectors when type is `.cases-webhook`. - type: object - properties: - createCommentJson: - type: string - description: > - A JSON payload sent to the create comment URL to create a case - comment. You can use variables to add Kibana Cases data to the - payload. The required variable is `case.comment`. Due to Mustache - template variables (the text enclosed in triple braces, for example, - `{{{case.title}}}`), the JSON is not validated when you create the - connector. The JSON is validated once the Mustache variables have - been placed when the REST method runs. Manually ensure that the JSON - is valid, disregarding the Mustache variables, so the later - validation will pass. - example: '{"body": {{{case.comment}}}}' - createCommentMethod: - type: string - description: > - The REST API HTTP request method to create a case comment in the - third-party system. Valid values are `patch`, `post`, and `put`. - default: put - enum: - - patch - - post - - put - createCommentUrl: - type: string - description: > - The REST API URL to create a case comment by ID in the third-party - system. You can use a variable to add the external system ID to the - URL. If you are using the `xpack.actions.allowedHosts setting`, add - the hostname to the allowed hosts. - example: https://example.com/issue/{{{external.system.id}}}/comment - createIncidentJson: - type: string - description: > - A JSON payload sent to the create case URL to create a case. You can - use variables to add case data to the payload. Required variables - are `case.title` and `case.description`. Due to Mustache template - variables (which is the text enclosed in triple braces, for example, - `{{{case.title}}}`), the JSON is not validated when you create the - connector. The JSON is validated after the Mustache variables have - been placed when REST method runs. Manually ensure that the JSON is - valid to avoid future validation errors; disregard Mustache - variables during your review. - example: >- - {"fields": {"summary": {{{case.title}}},"description": - {{{case.description}}},"labels": {{{case.tags}}}}} - createIncidentMethod: - type: string - description: > - The REST API HTTP request method to create a case in the third-party - system. Valid values are `patch`, `post`, and `put`. - enum: - - patch - - post - - put - default: post - createIncidentResponseKey: - type: string - description: >- - The JSON key in the create external case response that contains the - case ID. - createIncidentUrl: - type: string - description: > - The REST API URL to create a case in the third-party system. If you - are using the `xpack.actions.allowedHosts` setting, add the hostname - to the allowed hosts. - getIncidentResponseExternalTitleKey: - type: string - description: >- - The JSON key in get external case response that contains the case - title. - getIncidentUrl: - type: string - description: > - The REST API URL to get the case by ID from the third-party system. - If you are using the `xpack.actions.allowedHosts` setting, add the - hostname to the allowed hosts. You can use a variable to add the - external system ID to the URL. Due to Mustache template variables - (the text enclosed in triple braces, for example, - `{{{case.title}}}`), the JSON is not validated when you create the - connector. The JSON is validated after the Mustache variables have - been placed when REST method runs. Manually ensure that the JSON is - valid, disregarding the Mustache variables, so the later validation - will pass. - example: https://example.com/issue/{{{external.system.id}}} - hasAuth: - type: boolean - description: >- - If true, a username and password for login type authentication must - be provided. - default: true - headers: - type: string - description: > - A set of key-value pairs sent as headers with the request URLs for - the create case, update case, get case, and create comment methods. - updateIncidentJson: - type: string - description: > - The JSON payload sent to the update case URL to update the case. You - can use variables to add Kibana Cases data to the payload. Required - variables are `case.title` and `case.description`. Due to Mustache - template variables (which is the text enclosed in triple braces, for - example, `{{{case.title}}}`), the JSON is not validated when you - create the connector. The JSON is validated after the Mustache - variables have been placed when REST method runs. Manually ensure - that the JSON is valid to avoid future validation errors; disregard - Mustache variables during your review. - example: >- - {"fields": {"summary": {{{case.title}}},"description": - {{{case.description}}},"labels": {{{case.tags}}}}} - updateIncidentMethod: - type: string - description: > - The REST API HTTP request method to update the case in the - third-party system. Valid values are `patch`, `post`, and `put`. - default: put - enum: - - patch - - post - - put - updateIncidentUrl: - type: string - description: > - The REST API URL to update the case by ID in the third-party system. - You can use a variable to add the external system ID to the URL. If - you are using the `xpack.actions.allowedHosts` setting, add the - hostname to the allowed hosts. - example: https://example.com/issue/{{{external.system.ID}}} - viewIncidentUrl: - type: string - description: > - The URL to view the case in the external system. You can use - variables to add the external system ID or external system title to - the URL. - example: >- - https://testing-jira.atlassian.net/browse/{{{external.system.title}}} - Connectors_secrets_properties_cases_webhook: - title: Connector secrets properties for Webhook - Case Management connector - type: object - properties: - password: - type: string - description: >- - The password for HTTP basic authentication. If `hasAuth` is set to - `true`, this property is required. - user: - type: string - description: >- - The username for HTTP basic authentication. If `hasAuth` is set to - `true`, this property is required. - Connectors_config_properties_d3security: - title: Connector request properties for a D3 Security connector - description: Defines properties for connectors when type is `.d3security`. - type: object - required: - - url - properties: - url: - type: string - description: > - The D3 Security API request URL. If you are using the - `xpack.actions.allowedHosts` setting, add the hostname to the - allowed hosts. - Connectors_secrets_properties_d3security: - title: Connector secrets properties for a D3 Security connector - description: Defines secrets for connectors when type is `.d3security`. - required: - - token - type: object - properties: - token: - type: string - description: The D3 Security token. - Connectors_config_properties_email: - title: Connector request properties for an email connector - description: Defines properties for connectors when type is `.email`. - required: - - from - type: object - properties: - clientId: - description: > - The client identifier, which is a part of OAuth 2.0 client - credentials authentication, in GUID format. If `service` is - `exchange_server`, this property is required. - type: string - nullable: true - from: - description: > - The from address for all emails sent by the connector. It must be - specified in `user@host-name` format. - type: string - hasAuth: - description: > - Specifies whether a user and password are required inside the - secrets configuration. - default: true - type: boolean - host: - description: > - The host name of the service provider. If the `service` is - `elastic_cloud` (for Elastic Cloud notifications) or one of - Nodemailer's well-known email service providers, this property is - ignored. If `service` is `other`, this property must be defined. - type: string - oauthTokenUrl: - type: string - nullable: true - port: - description: > - The port to connect to on the service provider. If the `service` is - `elastic_cloud` (for Elastic Cloud notifications) or one of - Nodemailer's well-known email service providers, this property is - ignored. If `service` is `other`, this property must be defined. - type: integer - secure: - description: > - Specifies whether the connection to the service provider will use - TLS. If the `service` is `elastic_cloud` (for Elastic Cloud - notifications) or one of Nodemailer's well-known email service - providers, this property is ignored. - type: boolean - service: - description: | - The name of the email service. - type: string - enum: - - elastic_cloud - - exchange_server - - gmail - - other - - outlook365 - - ses - tenantId: - description: > - The tenant identifier, which is part of OAuth 2.0 client credentials - authentication, in GUID format. If `service` is `exchange_server`, - this property is required. - type: string - nullable: true - Connectors_secrets_properties_email: - title: Connector secrets properties for an email connector - description: Defines secrets for connectors when type is `.email`. - type: object - properties: - clientSecret: - type: string - description: > - The Microsoft Exchange Client secret for OAuth 2.0 client - credentials authentication. It must be URL-encoded. If `service` is - `exchange_server`, this property is required. - password: - type: string - description: > - The password for HTTP basic authentication. If `hasAuth` is set to - `true`, this property is required. - user: - type: string - description: > - The username for HTTP basic authentication. If `hasAuth` is set to - `true`, this property is required. - Connectors_config_properties_genai_azure: - title: >- - Connector request properties for an OpenAI connector that uses Azure - OpenAI - description: > - Defines properties for connectors when type is `.gen-ai` and the API - provider is `Azure OpenAI'. - type: object - required: - - apiProvider - - apiUrl - properties: - apiProvider: - type: string - description: The OpenAI API provider. - enum: - - Azure OpenAI - apiUrl: - type: string - description: The OpenAI API endpoint. - Connectors_config_properties_genai_openai: - title: Connector request properties for an OpenAI connector - description: > - Defines properties for connectors when type is `.gen-ai` and the API - provider is `OpenAI'. - type: object - required: - - apiProvider - - apiUrl - properties: - apiProvider: - type: string - description: The OpenAI API provider. - enum: - - OpenAI - apiUrl: - type: string - description: The OpenAI API endpoint. - defaultModel: - type: string - description: The default model to use for requests. - Connectors_config_properties_genai: - title: Connector request properties for an OpenAI connector - description: Defines properties for connectors when type is `.gen-ai`. - oneOf: - - $ref: '#/components/schemas/Connectors_config_properties_genai_azure' - - $ref: '#/components/schemas/Connectors_config_properties_genai_openai' - discriminator: - propertyName: apiProvider - mapping: - Azure OpenAI: '#/components/schemas/Connectors_config_properties_genai_azure' - OpenAI: '#/components/schemas/Connectors_config_properties_genai_openai' - Connectors_secrets_properties_genai: - title: Connector secrets properties for an OpenAI connector - description: Defines secrets for connectors when type is `.gen-ai`. - type: object - properties: - apiKey: - type: string - description: The OpenAI API key. - Connectors_config_properties_index: - title: Connector request properties for an index connector - required: - - index - description: Defines properties for connectors when type is `.index`. - type: object - properties: - executionTimeField: - description: A field that indicates when the document was indexed. - default: null - type: string - nullable: true - index: - description: The Elasticsearch index to be written to. - type: string - refresh: - description: > - The refresh policy for the write request, which affects when changes - are made visible to search. Refer to the refresh setting for - Elasticsearch document APIs. - default: false - type: boolean - Connectors_config_properties_jira: - title: Connector request properties for a Jira connector - required: - - apiUrl - - projectKey - description: Defines properties for connectors when type is `.jira`. - type: object - properties: - apiUrl: - description: The Jira instance URL. - type: string - projectKey: - description: The Jira project key. - type: string - Connectors_secrets_properties_jira: - title: Connector secrets properties for a Jira connector - required: - - apiToken - - email - description: Defines secrets for connectors when type is `.jira`. - type: object - properties: - apiToken: - description: The Jira API authentication token for HTTP basic authentication. - type: string - email: - description: The account email for HTTP Basic authentication. - type: string - Connectors_config_properties_opsgenie: - title: Connector request properties for an Opsgenie connector - required: - - apiUrl - description: Defines properties for connectors when type is `.opsgenie`. - type: object - properties: - apiUrl: - description: > - The Opsgenie URL. For example, `https://api.opsgenie.com` or - `https://api.eu.opsgenie.com`. If you are using the - `xpack.actions.allowedHosts` setting, add the hostname to the - allowed hosts. - type: string - Connectors_secrets_properties_opsgenie: - title: Connector secrets properties for an Opsgenie connector - required: - - apiKey - description: Defines secrets for connectors when type is `.opsgenie`. - type: object - properties: - apiKey: - description: The Opsgenie API authentication key for HTTP Basic authentication. - type: string - Connectors_config_properties_pagerduty: - title: Connector request properties for a PagerDuty connector - description: Defines properties for connectors when type is `.pagerduty`. - type: object - properties: - apiUrl: - description: The PagerDuty event URL. - type: string - nullable: true - example: https://events.pagerduty.com/v2/enqueue - Connectors_secrets_properties_pagerduty: - title: Connector secrets properties for a PagerDuty connector - description: Defines secrets for connectors when type is `.pagerduty`. - type: object - required: - - routingKey - properties: - routingKey: - description: > - A 32 character PagerDuty Integration Key for an integration on a - service. - type: string - Connectors_config_properties_resilient: - title: Connector request properties for a IBM Resilient connector - required: - - apiUrl - - orgId - description: Defines properties for connectors when type is `.resilient`. - type: object - properties: - apiUrl: - description: The IBM Resilient instance URL. - type: string - orgId: - description: The IBM Resilient organization ID. - type: string - Connectors_secrets_properties_resilient: - title: Connector secrets properties for IBM Resilient connector - required: - - apiKeyId - - apiKeySecret - description: Defines secrets for connectors when type is `.resilient`. - type: object - properties: - apiKeyId: - type: string - description: The authentication key ID for HTTP Basic authentication. - apiKeySecret: - type: string - description: The authentication key secret for HTTP Basic authentication. - Connectors_config_properties_sentinelone: - title: Connector request properties for a SentinelOne connector - required: - - url - description: Defines properties for connectors when type is `.sentinelone`. - type: object - properties: - url: - description: > - The SentinelOne tenant URL. If you are using the - `xpack.actions.allowedHosts` setting, add the hostname to the - allowed hosts. - type: string - Connectors_secrets_properties_sentinelone: - title: Connector secrets properties for a SentinelOne connector - description: Defines secrets for connectors when type is `.sentinelone`. - type: object - required: - - token - properties: - token: - description: The A SentinelOne API token. - type: string - Connectors_config_properties_servicenow: - title: Connector request properties for a ServiceNow ITSM connector - required: - - apiUrl - description: Defines properties for connectors when type is `.servicenow`. - type: object - properties: - apiUrl: - type: string - description: The ServiceNow instance URL. - clientId: - description: > - The client ID assigned to your OAuth application. This property is - required when `isOAuth` is `true`. - type: string - isOAuth: - description: > - The type of authentication to use. The default value is false, which - means basic authentication is used instead of open authorization - (OAuth). - default: false - type: boolean - jwtKeyId: - description: > - The key identifier assigned to the JWT verifier map of your OAuth - application. This property is required when `isOAuth` is `true`. - type: string - userIdentifierValue: - description: > - The identifier to use for OAuth authentication. This identifier - should be the user field you selected when you created an OAuth JWT - API endpoint for external clients in your ServiceNow instance. For - example, if the selected user field is `Email`, the user identifier - should be the user's email address. This property is required when - `isOAuth` is `true`. - type: string - usesTableApi: - description: > - Determines whether the connector uses the Table API or the Import - Set API. This property is supported only for ServiceNow ITSM and - ServiceNow SecOps connectors. NOTE: If this property is set to - `false`, the Elastic application should be installed in ServiceNow. - default: true - type: boolean - Connectors_secrets_properties_servicenow: - title: >- - Connector secrets properties for ServiceNow ITOM, ServiceNow ITSM, and - ServiceNow SecOps connectors - description: >- - Defines secrets for connectors when type is `.servicenow`, - `.servicenow-sir`, or `.servicenow-itom`. - type: object - properties: - clientSecret: - type: string - description: >- - The client secret assigned to your OAuth application. This property - is required when `isOAuth` is `true`. - password: - type: string - description: >- - The password for HTTP basic authentication. This property is - required when `isOAuth` is `false`. - privateKey: - type: string - description: >- - The RSA private key that you created for use in ServiceNow. This - property is required when `isOAuth` is `true`. - privateKeyPassword: - type: string - description: >- - The password for the RSA private key. This property is required when - `isOAuth` is `true` and you set a password on your private key. - username: - type: string - description: >- - The username for HTTP basic authentication. This property is - required when `isOAuth` is `false`. - Connectors_config_properties_servicenow_itom: - title: Connector request properties for a ServiceNow ITSM connector - required: - - apiUrl - description: Defines properties for connectors when type is `.servicenow`. - type: object - properties: - apiUrl: - type: string - description: The ServiceNow instance URL. - clientId: - description: > - The client ID assigned to your OAuth application. This property is - required when `isOAuth` is `true`. - type: string - isOAuth: - description: > - The type of authentication to use. The default value is false, which - means basic authentication is used instead of open authorization - (OAuth). - default: false - type: boolean - jwtKeyId: - description: > - The key identifier assigned to the JWT verifier map of your OAuth - application. This property is required when `isOAuth` is `true`. - type: string - userIdentifierValue: - description: > - The identifier to use for OAuth authentication. This identifier - should be the user field you selected when you created an OAuth JWT - API endpoint for external clients in your ServiceNow instance. For - example, if the selected user field is `Email`, the user identifier - should be the user's email address. This property is required when - `isOAuth` is `true`. - type: string - Connectors_config_properties_slack_api: - title: Connector request properties for a Slack connector - description: Defines properties for connectors when type is `.slack_api`. - type: object - properties: - allowedChannels: - type: array - description: A list of valid Slack channels. - items: - type: object - required: - - id - - name - maxItems: 25 - properties: - id: - type: string - description: The Slack channel ID. - example: C123ABC456 - minLength: 1 - name: - type: string - description: The Slack channel name. - minLength: 1 - Connectors_secrets_properties_slack_api: - title: Connector secrets properties for a Web API Slack connector - description: Defines secrets for connectors when type is `.slack`. - required: - - token - type: object - properties: - token: - type: string - description: Slack bot user OAuth token. - Connectors_secrets_properties_slack_webhook: - title: Connector secrets properties for a Webhook Slack connector - description: Defines secrets for connectors when type is `.slack`. - required: - - webhookUrl - type: object - properties: - webhookUrl: - type: string - description: Slack webhook url. - Connectors_config_properties_swimlane: - title: Connector request properties for a Swimlane connector - required: - - apiUrl - - appId - - connectorType - description: Defines properties for connectors when type is `.swimlane`. - type: object - properties: - apiUrl: - description: The Swimlane instance URL. - type: string - appId: - description: The Swimlane application ID. - type: string - connectorType: - description: >- - The type of connector. Valid values are `all`, `alerts`, and - `cases`. - type: string - enum: - - all - - alerts - - cases - mappings: - title: Connector mappings properties for a Swimlane connector - description: The field mapping. - type: object - properties: - alertIdConfig: - title: Alert identifier mapping - description: Mapping for the alert ID. - type: object - required: - - fieldType - - id - - key - - name - properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - caseIdConfig: - title: Case identifier mapping - description: Mapping for the case ID. - type: object - required: - - fieldType - - id - - key - - name - properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - caseNameConfig: - title: Case name mapping - description: Mapping for the case name. - type: object - required: - - fieldType - - id - - key - - name - properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - commentsConfig: - title: Case comment mapping - description: Mapping for the case comments. - type: object - required: - - fieldType - - id - - key - - name - properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - descriptionConfig: - title: Case description mapping - description: Mapping for the case description. - type: object - required: - - fieldType - - id - - key - - name - properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - ruleNameConfig: - title: Rule name mapping - description: Mapping for the name of the alert's rule. - type: object - required: - - fieldType - - id - - key - - name - properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - severityConfig: - title: Severity mapping - description: Mapping for the severity. - type: object - required: - - fieldType - - id - - key - - name - properties: - fieldType: - type: string - description: The type of field in Swimlane. - id: - type: string - description: The identifier for the field in Swimlane. - key: - type: string - description: The key for the field in Swimlane. - name: - type: string - description: The name of the field in Swimlane. - Connectors_secrets_properties_swimlane: - title: Connector secrets properties for a Swimlane connector - description: Defines secrets for connectors when type is `.swimlane`. - type: object - properties: - apiToken: - description: Swimlane API authentication token. - type: string - Connectors_secrets_properties_teams: - title: Connector secrets properties for a Microsoft Teams connector - description: Defines secrets for connectors when type is `.teams`. - type: object - required: - - webhookUrl - properties: - webhookUrl: - type: string - description: > - The URL of the incoming webhook. If you are using the - `xpack.actions.allowedHosts` setting, add the hostname to the - allowed hosts. - Connectors_config_properties_tines: - title: Connector request properties for a Tines connector - description: Defines properties for connectors when type is `.tines`. - type: object - required: - - url - properties: - url: - description: > - The Tines tenant URL. If you are using the - `xpack.actions.allowedHosts` setting, make sure this hostname is - added to the allowed hosts. - type: string - Connectors_secrets_properties_tines: - title: Connector secrets properties for a Tines connector - description: Defines secrets for connectors when type is `.tines`. - type: object - required: - - email - - token - properties: - email: - description: The email used to sign in to Tines. - type: string - token: - description: The Tines API token. - type: string - Connectors_config_properties_torq: - title: Connector request properties for a Torq connector - description: Defines properties for connectors when type is `.torq`. - type: object - required: - - webhookIntegrationUrl - properties: - webhookIntegrationUrl: - description: The endpoint URL of the Elastic Security integration in Torq. - type: string - Connectors_secrets_properties_torq: - title: Connector secrets properties for a Torq connector - description: Defines secrets for connectors when type is `.torq`. - type: object - required: - - token - properties: - token: - description: The secret of the webhook authentication header. - type: string - Connectors_config_properties_webhook: - title: Connector request properties for a Webhook connector - description: Defines properties for connectors when type is `.webhook`. - type: object - properties: - authType: - type: string - nullable: true - enum: - - webhook-authentication-basic - - webhook-authentication-ssl - description: | - The type of authentication to use: basic, SSL, or none. - ca: - type: string - description: > - A base64 encoded version of the certificate authority file that the - connector can trust to sign and validate certificates. This option - is available for all authentication types. - certType: - type: string - description: > - If the `authType` is `webhook-authentication-ssl`, specifies whether - the certificate authentication data is in a CRT and key file format - or a PFX file format. - enum: - - ssl-crt-key - - ssl-pfx - hasAuth: - type: boolean - description: > - If `true`, a user name and password must be provided for login type - authentication. - headers: - type: object - nullable: true - description: A set of key-value pairs sent as headers with the request. - method: - type: string - default: post - enum: - - post - - put - description: | - The HTTP request method, either `post` or `put`. - url: - type: string - description: > - The request URL. If you are using the `xpack.actions.allowedHosts` - setting, add the hostname to the allowed hosts. - verificationMode: - type: string - enum: - - certificate - - full - - none - default: full - description: > - Controls the verification of certificates. Use `full` to validate - that the certificate has an issue date within the `not_before` and - `not_after` dates, chains to a trusted certificate authority (CA), - and has a hostname or IP address that matches the names within the - certificate. Use `certificate` to validate the certificate and - verify that it is signed by a trusted authority; this option does - not check the certificate hostname. Use `none` to skip certificate - validation. - Connectors_secrets_properties_webhook: - title: Connector secrets properties for a Webhook connector - description: Defines secrets for connectors when type is `.webhook`. - type: object - properties: - crt: - type: string - description: >- - If `authType` is `webhook-authentication-ssl` and `certType` is - `ssl-crt-key`, it is a base64 encoded version of the CRT or CERT - file. - key: - type: string - description: >- - If `authType` is `webhook-authentication-ssl` and `certType` is - `ssl-crt-key`, it is a base64 encoded version of the KEY file. - pfx: - type: string - description: >- - If `authType` is `webhook-authentication-ssl` and `certType` is - `ssl-pfx`, it is a base64 encoded version of the PFX or P12 file. - password: - type: string - description: > - The password for HTTP basic authentication or the passphrase for the - SSL certificate files. If `hasAuth` is set to `true` and `authType` - is `webhook-authentication-basic`, this property is required. - user: - type: string - description: > - The username for HTTP basic authentication. If `hasAuth` is set to - `true` and `authType` is `webhook-authentication-basic`, this - property is required. - Connectors_config_properties_xmatters: - title: Connector request properties for an xMatters connector - description: Defines properties for connectors when type is `.xmatters`. - type: object - properties: - configUrl: - description: > - The request URL for the Elastic Alerts trigger in xMatters. It is - applicable only when `usesBasic` is `true`. - type: string - nullable: true - usesBasic: - description: >- - Specifies whether the connector uses HTTP basic authentication - (`true`) or URL authentication (`false`). - type: boolean - default: true - Connectors_secrets_properties_xmatters: - title: Connector secrets properties for an xMatters connector - description: Defines secrets for connectors when type is `.xmatters`. - type: object - properties: - password: - description: > - A user name for HTTP basic authentication. It is applicable only - when `usesBasic` is `true`. - type: string - secretsUrl: - description: > - The request URL for the Elastic Alerts trigger in xMatters with the - API key included in the URL. It is applicable only when `usesBasic` - is `false`. - type: string - user: - description: > - A password for HTTP basic authentication. It is applicable only when - `usesBasic` is `true`. - type: string - Connectors_create_connector_request: - title: Create connector request body properties - description: The properties vary depending on the connector type. - oneOf: - - $ref: '#/components/schemas/Connectors_create_connector_request_bedrock' - - $ref: '#/components/schemas/Connectors_create_connector_request_gemini' - - $ref: >- - #/components/schemas/Connectors_create_connector_request_cases_webhook - - $ref: '#/components/schemas/Connectors_create_connector_request_d3security' - - $ref: '#/components/schemas/Connectors_create_connector_request_email' - - $ref: '#/components/schemas/Connectors_create_connector_request_genai' - - $ref: '#/components/schemas/Connectors_create_connector_request_index' - - $ref: '#/components/schemas/Connectors_create_connector_request_jira' - - $ref: '#/components/schemas/Connectors_create_connector_request_opsgenie' - - $ref: '#/components/schemas/Connectors_create_connector_request_pagerduty' - - $ref: '#/components/schemas/Connectors_create_connector_request_resilient' - - $ref: '#/components/schemas/Connectors_create_connector_request_sentinelone' - - $ref: '#/components/schemas/Connectors_create_connector_request_serverlog' - - $ref: '#/components/schemas/Connectors_create_connector_request_servicenow' - - $ref: >- - #/components/schemas/Connectors_create_connector_request_servicenow_itom - - $ref: >- - #/components/schemas/Connectors_create_connector_request_servicenow_sir - - $ref: '#/components/schemas/Connectors_create_connector_request_slack_api' - - $ref: >- - #/components/schemas/Connectors_create_connector_request_slack_webhook - - $ref: '#/components/schemas/Connectors_create_connector_request_swimlane' - - $ref: '#/components/schemas/Connectors_create_connector_request_teams' - - $ref: '#/components/schemas/Connectors_create_connector_request_tines' - - $ref: '#/components/schemas/Connectors_create_connector_request_torq' - - $ref: '#/components/schemas/Connectors_create_connector_request_webhook' - - $ref: '#/components/schemas/Connectors_create_connector_request_xmatters' - discriminator: - propertyName: connector_type_id - mapping: - .bedrock: '#/components/schemas/Connectors_create_connector_request_bedrock' - .gemini: '#/components/schemas/Connectors_create_connector_request_gemini' - .cases-webhook: >- - #/components/schemas/Connectors_create_connector_request_cases_webhook - .d3security: '#/components/schemas/Connectors_create_connector_request_d3security' - .email: '#/components/schemas/Connectors_create_connector_request_email' - .gen-ai: '#/components/schemas/Connectors_create_connector_request_genai' - .index: '#/components/schemas/Connectors_create_connector_request_index' - .jira: '#/components/schemas/Connectors_create_connector_request_jira' - .opsgenie: '#/components/schemas/Connectors_create_connector_request_opsgenie' - .pagerduty: '#/components/schemas/Connectors_create_connector_request_pagerduty' - .resilient: '#/components/schemas/Connectors_create_connector_request_resilient' - .sentinelone: '#/components/schemas/Connectors_create_connector_request_sentinelone' - .server-log: '#/components/schemas/Connectors_create_connector_request_serverlog' - .servicenow: '#/components/schemas/Connectors_create_connector_request_servicenow' - .servicenow-itom: >- - #/components/schemas/Connectors_create_connector_request_servicenow_itom - .servicenow-sir: >- - #/components/schemas/Connectors_create_connector_request_servicenow_sir - .slack_api: '#/components/schemas/Connectors_create_connector_request_slack_api' - .slack: >- - #/components/schemas/Connectors_create_connector_request_slack_webhook - .swimlane: '#/components/schemas/Connectors_create_connector_request_swimlane' - .teams: '#/components/schemas/Connectors_create_connector_request_teams' - .tines: '#/components/schemas/Connectors_create_connector_request_tines' - .torq: '#/components/schemas/Connectors_create_connector_request_torq' - .webhook: '#/components/schemas/Connectors_create_connector_request_webhook' - .xmatters: '#/components/schemas/Connectors_create_connector_request_xmatters' - Connectors_connector_response_properties_bedrock: - title: Connector response properties for an Amazon Bedrock connector - type: object - required: - - config - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_bedrock' - connector_type_id: - type: string - description: The type of connector. - enum: - - .bedrock - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - Connectors_connector_response_properties_gemini: - title: Connector response properties for a Google Gemini connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_gemini' - connector_type_id: - type: string - description: The type of connector. - enum: - - .gemini - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_cases_webhook: - title: Connector request properties for a Webhook - Case Management connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' - connector_type_id: - description: The type of connector. - type: string - enum: - - .cases-webhook - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_d3security: - title: Connector response properties for a D3 Security connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_d3security' - connector_type_id: - type: string - description: The type of connector. - enum: - - .d3security - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_email: - title: Connector response properties for an email connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_email' - connector_type_id: - type: string - description: The type of connector. - enum: - - .email - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_genai: - title: Connector response properties for an OpenAI connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_genai' - connector_type_id: - type: string - description: The type of connector. - enum: - - .gen-ai - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_index: - title: Connector response properties for an index connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_index' - connector_type_id: - type: string - description: The type of connector. - enum: - - .index - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_jira: - title: Connector response properties for a Jira connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_jira' - connector_type_id: - type: string - description: The type of connector. - enum: - - .jira - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_opsgenie: - title: Connector response properties for an Opsgenie connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_opsgenie' - connector_type_id: - type: string - description: The type of connector. - enum: - - .opsgenie - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_pagerduty: - title: Connector response properties for a PagerDuty connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_pagerduty' - connector_type_id: - type: string - description: The type of connector. - enum: - - .pagerduty - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_resilient: - title: Connector response properties for a IBM Resilient connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_resilient' - connector_type_id: - type: string - description: The type of connector. - enum: - - .resilient - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_sentinelone: - title: Connector response properties for a SentinelOne connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_sentinelone' - connector_type_id: - type: string - description: The type of connector. - enum: - - .sentinelone - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_serverlog: - title: Connector response properties for a server log connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - type: object - nullable: true - connector_type_id: - type: string - description: The type of connector. - enum: - - .server-log - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_servicenow: - title: Connector response properties for a ServiceNow ITSM connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_servicenow_itom: - title: Connector response properties for a ServiceNow ITOM connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow-itom - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_servicenow_sir: - title: Connector response properties for a ServiceNow SecOps connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - connector_type_id: - type: string - description: The type of connector. - enum: - - .servicenow-sir - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_slack_api: - title: Connector response properties for a Slack connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_slack_api' - connector_type_id: - type: string - description: The type of connector. - enum: - - .slack_api - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_slack_webhook: - title: Connector response properties for a Slack connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - connector_type_id: - type: string - description: The type of connector. - enum: - - .slack - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_swimlane: - title: Connector response properties for a Swimlane connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_swimlane' - connector_type_id: - type: string - description: The type of connector. - enum: - - .swimlane - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_teams: - title: Connector response properties for a Microsoft Teams connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - type: object - connector_type_id: - type: string - description: The type of connector. - enum: - - .teams - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_tines: - title: Connector response properties for a Tines connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_tines' - connector_type_id: - type: string - description: The type of connector. - enum: - - .tines - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_torq: - title: Connector response properties for a Torq connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_torq' - connector_type_id: - type: string - description: The type of connector. - enum: - - .torq - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_webhook: - title: Connector response properties for a Webhook connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_webhook' - connector_type_id: - type: string - description: The type of connector. - enum: - - .webhook - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_connector_response_properties_xmatters: - title: Connector response properties for an xMatters connector - type: object - required: - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_xmatters' - connector_type_id: - type: string - description: The type of connector. - enum: - - .xmatters - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: '#/components/schemas/Connectors_is_deprecated' - is_missing_secrets: - $ref: '#/components/schemas/Connectors_is_missing_secrets' - is_preconfigured: - $ref: '#/components/schemas/Connectors_is_preconfigured' - is_system_action: - $ref: '#/components/schemas/Connectors_is_system_action' - name: - type: string - description: The display name for the connector. - referenced_by_count: - $ref: '#/components/schemas/Connectors_referenced_by_count' - Connectors_is_deprecated: - type: boolean - description: Indicates whether the connector type is deprecated. - example: false - Connectors_is_missing_secrets: - type: boolean - description: >- - Indicates whether secrets are missing for the connector. Secrets - configuration properties vary depending on the connector type. - example: false - Connectors_is_preconfigured: - type: boolean - description: > - Indicates whether it is a preconfigured connector. If true, the `config` - and `is_missing_secrets` properties are omitted from the response. - example: false - Connectors_is_system_action: - type: boolean - description: Indicates whether the connector is used for system actions. - example: false - Connectors_referenced_by_count: - type: integer - description: > - Indicates the number of saved objects that reference the connector. If - `is_preconfigured` is true, this value is not calculated. This property - is returned only by the get all connectors API. - example: 2 - Connectors_connector_response_properties: - title: Connector response properties - description: The properties vary depending on the connector type. - oneOf: - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_bedrock - - $ref: '#/components/schemas/Connectors_connector_response_properties_gemini' - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_cases_webhook - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_d3security - - $ref: '#/components/schemas/Connectors_connector_response_properties_email' - - $ref: '#/components/schemas/Connectors_connector_response_properties_genai' - - $ref: '#/components/schemas/Connectors_connector_response_properties_index' - - $ref: '#/components/schemas/Connectors_connector_response_properties_jira' - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_opsgenie - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_pagerduty - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_resilient - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_sentinelone - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_serverlog - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_servicenow - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_servicenow_itom - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_servicenow_sir - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_slack_api - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_slack_webhook - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_swimlane - - $ref: '#/components/schemas/Connectors_connector_response_properties_teams' - - $ref: '#/components/schemas/Connectors_connector_response_properties_tines' - - $ref: '#/components/schemas/Connectors_connector_response_properties_torq' - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_webhook - - $ref: >- - #/components/schemas/Connectors_connector_response_properties_xmatters - discriminator: - propertyName: connector_type_id - mapping: - .bedrock: >- - #/components/schemas/Connectors_connector_response_properties_bedrock - .gemini: '#/components/schemas/Connectors_connector_response_properties_gemini' - .cases-webhook: >- - #/components/schemas/Connectors_connector_response_properties_cases_webhook - .d3security: >- - #/components/schemas/Connectors_connector_response_properties_d3security - .email: '#/components/schemas/Connectors_connector_response_properties_email' - .gen-ai: '#/components/schemas/Connectors_connector_response_properties_genai' - .index: '#/components/schemas/Connectors_connector_response_properties_index' - .jira: '#/components/schemas/Connectors_connector_response_properties_jira' - .opsgenie: >- - #/components/schemas/Connectors_connector_response_properties_opsgenie - .pagerduty: >- - #/components/schemas/Connectors_connector_response_properties_pagerduty - .resilient: >- - #/components/schemas/Connectors_connector_response_properties_resilient - .sentinelone: >- - #/components/schemas/Connectors_connector_response_properties_sentinelone - .server-log: >- - #/components/schemas/Connectors_connector_response_properties_serverlog - .servicenow: >- - #/components/schemas/Connectors_connector_response_properties_servicenow - .servicenow-itom: >- - #/components/schemas/Connectors_connector_response_properties_servicenow_itom - .servicenow-sir: >- - #/components/schemas/Connectors_connector_response_properties_servicenow_sir - .slack_api: >- - #/components/schemas/Connectors_connector_response_properties_slack_api - .slack: >- - #/components/schemas/Connectors_connector_response_properties_slack_webhook - .swimlane: >- - #/components/schemas/Connectors_connector_response_properties_swimlane - .teams: '#/components/schemas/Connectors_connector_response_properties_teams' - .tines: '#/components/schemas/Connectors_connector_response_properties_tines' - .torq: '#/components/schemas/Connectors_connector_response_properties_torq' - .webhook: >- - #/components/schemas/Connectors_connector_response_properties_webhook - .xmatters: >- - #/components/schemas/Connectors_connector_response_properties_xmatters - Connectors_update_connector_request_bedrock: - title: Update Amazon Bedrock connector request - type: object - required: - - config - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_bedrock' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_bedrock' - Connectors_update_connector_request_gemini: - title: Update Google Gemini connector request - type: object - required: - - config - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_gemini' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_gemini' - Connectors_update_connector_request_cases_webhook: - title: Update Webhook - Case Managment connector request - type: object - required: - - config - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_cases_webhook' - Connectors_update_connector_request_d3security: - title: Update D3 Security connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_d3security' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_d3security' - Connectors_update_connector_request_email: - title: Update email connector request - type: object - required: - - config - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_email' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_email' - Connectors_update_connector_request_index: - title: Update index connector request - type: object - required: - - config - - name - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_index' - name: - type: string - description: The display name for the connector. - Connectors_update_connector_request_jira: - title: Update Jira connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_jira' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_jira' - Connectors_update_connector_request_opsgenie: - title: Update Opsgenie connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_opsgenie' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_opsgenie' - Connectors_update_connector_request_pagerduty: - title: Update PagerDuty connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_pagerduty' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_pagerduty' - Connectors_update_connector_request_resilient: - title: Update IBM Resilient connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_resilient' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_resilient' - Connectors_update_connector_request_sentinelone: - title: Update SentinelOne connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_sentinelone' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_sentinelone' - Connectors_update_connector_request_serverlog: - title: Update server log connector request - type: object - required: - - name - properties: - name: - type: string - description: The display name for the connector. - Connectors_update_connector_request_servicenow: - title: Update ServiceNow ITSM connector or ServiceNow SecOps request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_update_connector_request_servicenow_itom: - title: Create ServiceNow ITOM connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' - Connectors_update_connector_request_slack_api: - title: Update Slack connector request - type: object - required: - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_slack_api' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_slack_api' - Connectors_update_connector_request_slack_webhook: - title: Update Slack connector request - type: object - required: - - name - - secrets - properties: - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_slack_webhook' - Connectors_update_connector_request_swimlane: - title: Update Swimlane connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_swimlane' - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_swimlane' - Connectors_update_connector_request_teams: - title: Update Microsoft Teams connector request - type: object - required: - - name - - secrets - properties: - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_teams' - Connectors_update_connector_request_tines: - title: Update Tines connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_tines' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_tines' - Connectors_update_connector_request_torq: - title: Update Torq connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_torq' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_torq' - Connectors_update_connector_request_webhook: - title: Update Webhook connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_webhook' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_webhook' - Connectors_update_connector_request_xmatters: - title: Update xMatters connector request - type: object - required: - - config - - name - - secrets - properties: - config: - $ref: '#/components/schemas/Connectors_config_properties_xmatters' - name: - type: string - description: The display name for the connector. - secrets: - $ref: '#/components/schemas/Connectors_secrets_properties_xmatters' - Connectors_update_connector_request: - title: Update connector request body properties - description: The properties vary depending on the connector type. - oneOf: - - $ref: '#/components/schemas/Connectors_update_connector_request_bedrock' - - $ref: '#/components/schemas/Connectors_update_connector_request_gemini' - - $ref: >- - #/components/schemas/Connectors_update_connector_request_cases_webhook - - $ref: '#/components/schemas/Connectors_update_connector_request_d3security' - - $ref: '#/components/schemas/Connectors_update_connector_request_email' - - $ref: '#/components/schemas/Connectors_create_connector_request_genai' - - $ref: '#/components/schemas/Connectors_update_connector_request_index' - - $ref: '#/components/schemas/Connectors_update_connector_request_jira' - - $ref: '#/components/schemas/Connectors_update_connector_request_opsgenie' - - $ref: '#/components/schemas/Connectors_update_connector_request_pagerduty' - - $ref: '#/components/schemas/Connectors_update_connector_request_resilient' - - $ref: '#/components/schemas/Connectors_update_connector_request_sentinelone' - - $ref: '#/components/schemas/Connectors_update_connector_request_serverlog' - - $ref: '#/components/schemas/Connectors_update_connector_request_servicenow' - - $ref: >- - #/components/schemas/Connectors_update_connector_request_servicenow_itom - - $ref: '#/components/schemas/Connectors_update_connector_request_slack_api' - - $ref: >- - #/components/schemas/Connectors_update_connector_request_slack_webhook - - $ref: '#/components/schemas/Connectors_update_connector_request_swimlane' - - $ref: '#/components/schemas/Connectors_update_connector_request_teams' - - $ref: '#/components/schemas/Connectors_update_connector_request_tines' - - $ref: '#/components/schemas/Connectors_update_connector_request_torq' - - $ref: '#/components/schemas/Connectors_update_connector_request_webhook' - - $ref: '#/components/schemas/Connectors_update_connector_request_xmatters' - Connectors_run_connector_params_acknowledge_resolve_pagerduty: - title: PagerDuty connector parameters - description: Test an action that acknowledges or resolves a PagerDuty alert. - type: object - required: - - dedupKey - - eventAction - properties: - dedupKey: - description: The deduplication key for the PagerDuty alert. - type: string - maxLength: 255 - eventAction: - description: The type of event. - type: string - enum: - - acknowledge - - resolve - Connectors_run_connector_params_documents: - title: Index connector parameters - description: Test an action that indexes a document into Elasticsearch. - type: object - required: - - documents - properties: - documents: - type: array - description: The documents in JSON format for index connectors. - items: + context: + items: + type: object + properties: + description: + type: string + name: + type: string + useWithTripleBracesInTemplates: + type: boolean + type: array + params: + items: + type: object + properties: + description: + type: string + name: + type: string + type: array + state: + items: + type: object + properties: + description: + type: string + name: + type: string + type: array + alerts: + description: > + Details for writing alerts as data documents for this + rule type. + type: object + properties: + context: + description: | + The namespace for this rule type. + enum: + - ml.anomaly-detection + - observability.apm + - observability.logs + - observability.metrics + - observability.slo + - observability.threshold + - observability.uptime + - security + - stack + type: string + dynamic: + description: Indicates whether new fields are added dynamically. + enum: + - 'false' + - runtime + - strict + - 'true' + type: string + isSpaceAware: + description: > + Indicates whether the alerts are space-aware. If + true, space-specific alert indices are used. + type: boolean + mappings: + type: object + properties: + fieldMap: + additionalProperties: + $ref: >- + #/components/schemas/Alerting_fieldmap_properties + description: > + Mapping information for each field supported in + alerts as data documents for this rule type. For + more information about mapping parameters, refer + to the Elasticsearch documentation. + type: object + secondaryAlias: + description: > + A secondary alias. It is typically used to support + the signals alias for detection rules. + type: string + shouldWrite: + description: > + Indicates whether the rule should write out alerts + as data. + type: boolean + useEcs: + description: > + Indicates whether to include the ECS component + template for the alerts. + type: boolean + useLegacyAlerts: + default: false + description: > + Indicates whether to include the legacy component + template for the alerts. + type: boolean + authorized_consumers: + description: >- + The list of the plugins IDs that have access to the rule + type. + type: object + properties: + alerts: + type: object + properties: + all: + type: boolean + read: + type: boolean + apm: + type: object + properties: + all: + type: boolean + read: + type: boolean + discover: + type: object + properties: + all: + type: boolean + read: + type: boolean + infrastructure: + type: object + properties: + all: + type: boolean + read: + type: boolean + logs: + type: object + properties: + all: + type: boolean + read: + type: boolean + ml: + type: object + properties: + all: + type: boolean + read: + type: boolean + monitoring: + type: object + properties: + all: + type: boolean + read: + type: boolean + siem: + type: object + properties: + all: + type: boolean + read: + type: boolean + slo: + type: object + properties: + all: + type: boolean + read: + type: boolean + stackAlerts: + type: object + properties: + all: + type: boolean + read: + type: boolean + uptime: + type: object + properties: + all: + type: boolean + read: + type: boolean + category: + description: >- + The rule category, which is used by features such as + category-specific maintenance windows. + enum: + - management + - observability + - securitySolution + type: string + default_action_group_id: + description: The default identifier for the rule type group. + type: string + does_set_recovery_context: + description: >- + Indicates whether the rule passes context variables to + its recovery action. + type: boolean + enabled_in_license: + description: >- + Indicates whether the rule type is enabled or disabled + based on the subscription. + type: boolean + has_alerts_mappings: + description: >- + Indicates whether the rule type has custom mappings for + the alert data. + type: boolean + has_fields_for_a_a_d: + type: boolean + id: + description: The unique identifier for the rule type. + type: string + is_exportable: + description: >- + Indicates whether the rule type is exportable in **Stack + Management > Saved Objects**. + type: boolean + minimum_license_required: + description: The subscriptions required to use the rule type. + example: basic + type: string + name: + description: The descriptive name of the rule type. + type: string + producer: + description: >- + An identifier for the application that produces this + rule type. + example: stackAlerts + type: string + recovery_action_group: + description: >- + An action group to use when an alert goes from an active + state to an inactive one. + type: object + properties: + id: + type: string + name: + type: string + rule_task_timeout: + example: 5m + type: string + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get the rule types + tags: + - alerting + '/api/alerting/rule/{id}': + delete: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#2' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Delete a rule + tags: + - alerting + get: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Get rule details + tags: + - alerting + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%3F%7D#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: >- + The identifier for the rule. If it is omitted, an ID is randomly + generated. + in: path + name: id + required: false + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + default: [] + items: + additionalProperties: false + description: An action that runs under defined conditions. + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Conditions that affect whether the action runs. If you + specify multiple conditions, all conditions must be + met for the action to run. For example, if an alert + occurs within the specified time frame and matches the + query, the action runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL) as defined in the + `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the days + of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + description: >- + Defines the range of time in a day that the + action can run. If the `start` value is + `00:00` and the `end` value is `24:00`, + actions be generated all day. + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work but + lack built-in daylight savings time support + and are not recommended. + type: string + required: + - days + - hours + - timezone + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. Valid + values include: `onActionGroupChange`: Actions run + when the alert status changes; `onActiveAlert`: + Actions run when the alert becomes active and at + each check interval while the rule conditions are + met; `onThrottleInterval`: Actions run when the + alert becomes active and at the interval specified + in the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` at + both the rule and action level. The recommended + method is to set it for each action. If you set it + at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific + values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often an + alert generates repeated actions. It is specified + in seconds, minutes, hours, or days and is + applicable only if `notify_when` is set to + `onThrottleInterval`. NOTE: You cannot specify the + throttle interval at both the rule and action + level. The recommended method is to set it for + each action. If you set it at the rule level then + update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + default: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: A universally unique identifier (UUID) for the action. + type: string + required: + - id + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, `infrastructure`, + `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, + `siem`, `stackAlerts`, or `uptime`. + type: string + enabled: + default: true + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + name: + description: >- + The name of the rule. While this name does not have to be + unique, a distinctive name can help you identify a rule. + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while the rule + conditions are met; `onThrottleInterval`: Actions run when + the alert becomes active and at the interval specified in + the throttle property while the rule conditions are met. + NOTE: You cannot specify `notify_when` at both the rule and + action level. The recommended method is to set it for each + action. If you set it at the rule level then update the rule + in Kibana, it is automatically changed to use + action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + default: {} + description: The parameters for the rule. + type: object + rule_type_id: + description: The rule type identifier. + type: string + schedule: + additionalProperties: false + description: >- + The check interval, which specifies how frequently the rule + conditions are checked. + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, or + days. + type: string + required: + - interval + tags: + default: [] + description: The tags for the rule. + items: + type: string + type: array + throttle: + description: >- + Use the `throttle` property in the action `frequency` object + instead. The throttle interval, which defines how often an + alert generates repeated actions. NOTE: You cannot specify + the throttle interval at both the rule and action level. If + you set it at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific values. + nullable: true + type: string + required: + - name + - rule_type_id + - consumer + - schedule + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Create a rule + tags: + - alerting + put: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#1' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + default: [] + items: + additionalProperties: false + description: An action that runs under defined conditions. + type: object + properties: + alerts_filter: + additionalProperties: false + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL) as defined in the + `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the days + of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + description: >- + Defines the range of time in a day that the + action can run. If the `start` value is + `00:00` and the `end` value is `24:00`, + actions be generated all day. + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work but + lack built-in daylight savings time support + and are not recommended. + type: string + required: + - days + - hours + - timezone + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. Valid + values include: `onActionGroupChange`: Actions run + when the alert status changes; `onActiveAlert`: + Actions run when the alert becomes active and at + each check interval while the rule conditions are + met; `onThrottleInterval`: Actions run when the + alert becomes active and at the interval specified + in the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` at + both the rule and action level. The recommended + method is to set it for each action. If you set it + at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific + values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often an + alert generates repeated actions. It is specified + in seconds, minutes, hours, or days and is + applicable only if `notify_when` is set to + `onThrottleInterval`. NOTE: You cannot specify the + throttle interval at both the rule and action + level. The recommended method is to set it for + each action. If you set it at the rule level then + update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + default: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: A universally unique identifier (UUID) for the action. + type: string + required: + - id + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + name: + description: >- + The name of the rule. While this name does not have to be + unique, a distinctive name can help you identify a rule. + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while the rule + conditions are met; `onThrottleInterval`: Actions run when + the alert becomes active and at the interval specified in + the throttle property while the rule conditions are met. + NOTE: You cannot specify `notify_when` at both the rule and + action level. The recommended method is to set it for each + action. If you set it at the rule level then update the rule + in Kibana, it is automatically changed to use + action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + default: {} + description: The parameters for the rule. + type: object + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, or + days. + type: string + required: + - interval + tags: + default: [] + items: + description: The tags for the rule. + type: string + type: array + throttle: + description: >- + Use the `throttle` property in the action `frequency` object + instead. The throttle interval, which defines how often an + alert generates repeated actions. NOTE: You cannot specify + the throttle interval at both the rule and action level. If + you set it at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific values. + nullable: true + type: string + required: + - name + - schedule + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Update a rule + tags: + - alerting + '/api/alerting/rule/{id}/_disable': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_disable#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + nullable: true + type: object + properties: + untrack: + description: Defines whether this rule's alerts should be untracked. + type: boolean + x-oas-optional: true + responses: + '204': + description: Indicates a successful call. + summary: Disable a rule + tags: + - alerting + '/api/alerting/rule/{id}/_enable': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_enable#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Enable a rule + tags: + - alerting + '/api/alerting/rule/{id}/_mute_all': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_mute_all#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Mute all alerts + tags: + - alerting + '/api/alerting/rule/{id}/_unmute_all': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_unmute_all#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Unmute all alerts + tags: + - alerting + '/api/alerting/rule/{id}/_update_api_key': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_update_api_key#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Update the API key for a rule + tags: + - alerting + '/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute': + post: + operationId: >- + %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_mute#0 + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: rule_id + required: true + schema: + type: string + - description: The identifier for the alert. + in: path + name: alert_id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Mute an alert + tags: + - alerting + '/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute': + post: + operationId: >- + %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_unmute#0 + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: rule_id + required: true + schema: + type: string + - description: The identifier for the alert. + in: path + name: alert_id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Unmute an alert + tags: + - alerting + /api/alerting/rules/_find: + get: + operationId: '%2Fapi%2Falerting%2Frules%2F_find#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: The number of rules to return per page. + in: query + name: per_page + required: false + schema: + default: 10 + minimum: 0 + type: number + - description: The page number to return. + in: query + name: page + required: false + schema: + default: 1 + minimum: 1 + type: number + - description: >- + An Elasticsearch simple_query_string query that filters the objects + in the response. + in: query + name: search + required: false + schema: + type: string + - description: The default operator to use for the simple_query_string. + in: query + name: default_search_operator + required: false + schema: + default: OR + enum: + - OR + - AND + type: string + - description: The fields to perform the simple_query_string parsed query against. + in: query + name: search_fields + required: false + schema: + anyOf: + - items: + type: string + type: array + - type: string + - description: >- + Determines which field is used to sort the results. The field must + exist in the `attributes` key of the response. + in: query + name: sort_field + required: false + schema: + type: string + - description: Determines the sort order. + in: query + name: sort_order + required: false + schema: + enum: + - asc + - desc + type: string + - description: >- + Filters the rules that have a relation with the reference objects + with a specific type and identifier. + in: query + name: has_reference + required: false + schema: + additionalProperties: false + nullable: true + type: object + properties: + id: + type: string + type: + type: string + required: + - type + - id + - in: query + name: fields + required: false + schema: + items: + description: The fields to return in the `attributes` key of the response. + type: string + type: array + - description: >- + A KQL string that you filter with an attribute from your saved + object. It should look like `savedObjectType.attributes.title: + "myTitle"`. However, if you used a direct attribute of a saved + object, such as `updatedAt`, you must define your filter, for + example, `savedObjectType.updatedAt > 2018-12-22`. + in: query + name: filter + required: false + schema: + type: string + - in: query + name: filter_consumers + required: false + schema: + items: + description: List of consumers to filter. + type: string + type: array + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Get information about rules + tags: + - alerting + '/api/alerts/alert/{alertId}': + delete: + deprecated: true + description: > + Deprecated in 7.13.0. Use the delete rule API instead. WARNING: After + you delete an alert, you cannot recover it. + operationId: legaryDeleteAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Delete an alert + tags: + - alerting + get: + deprecated: true + description: Deprecated in 7.13.0. Use the get rule API instead. + operationId: legacyGetAlert + parameters: + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_alert_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get an alert by identifier + tags: + - alerting + post: + deprecated: true + description: Deprecated in 7.13.0. Use the create rule API instead. + operationId: legacyCreateAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: >- + An UUID v1 or v4 identifier for the alert. If this parameter is + omitted, the identifier is randomly generated. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + title: Legacy create alert request properties + type: object + properties: + actions: + items: + type: object + properties: + actionTypeId: + description: The identifier for the action type. + type: string + group: + description: > + Grouping actions is recommended for escalations for + different types of alert instances. If you don't need + this functionality, set it to `default`. + type: string + id: + description: The ID of the action saved object. + type: string + params: + description: > + The map to the `params` that the action type will + receive. `params` are handled as Mustache templates + and passed a default set of context. + type: object + required: + - actionTypeId + - group + - id + - params + type: array + alertTypeId: + description: >- + The ID of the alert type that you want to call when the + alert is scheduled to run. + type: string + consumer: + description: >- + The name of the application that owns the alert. This name + has to match the Kibana feature name, as that dictates the + required role-based access control privileges. + type: string + enabled: + description: >- + Indicates if you want to run the alert on an interval basis + after it is created. + type: boolean + name: + description: A name to reference and search. + type: string + notifyWhen: + description: The condition for throttling the notification. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + params: + description: >- + The parameters to pass to the alert type executor `params` + value. This will also validate against the alert type params + validator, if defined. + type: object + schedule: + description: > + The schedule specifying when this alert should be run. A + schedule is structured such that the key specifies the + format you wish to use and its value specifies the schedule. + type: object + properties: + interval: + description: >- + The interval format specifies the interval in seconds, + minutes, hours or days at which the alert should run. + example: 10s + type: string + tags: + description: A list of keywords to reference and search. + items: + type: string + type: array + throttle: + description: > + How often this alert should fire the same actions. This will + prevent the alert from sending out the same notification + over and over. For example, if an alert with a schedule of 1 + minute stays in a triggered state for 90 minutes, setting a + throttle of `10m` or `1h` will prevent it from sending 90 + notifications during this period. + type: string + required: + - alertTypeId + - consumer + - name + - notifyWhen + - params + - schedule + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_alert_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Create an alert + tags: + - alerting + put: + deprecated: true + description: Deprecated in 7.13.0. Use the update rule API instead. + operationId: legacyUpdateAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + title: Legacy update alert request properties + type: object + properties: + actions: + items: + type: object + properties: + actionTypeId: + description: The identifier for the action type. + type: string + group: + description: > + Grouping actions is recommended for escalations for + different types of alert instances. If you don't need + this functionality, set it to `default`. + type: string + id: + description: The ID of the action saved object. + type: string + params: + description: > + The map to the `params` that the action type will + receive. `params` are handled as Mustache templates + and passed a default set of context. + type: object + required: + - actionTypeId + - group + - id + - params + type: array + name: + description: A name to reference and search. + type: string + notifyWhen: + description: The condition for throttling the notification. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + params: + description: >- + The parameters to pass to the alert type executor `params` + value. This will also validate against the alert type params + validator, if defined. + type: object + schedule: + description: > + The schedule specifying when this alert should be run. A + schedule is structured such that the key specifies the + format you wish to use and its value specifies the schedule. + type: object + properties: + interval: + description: >- + The interval format specifies the interval in seconds, + minutes, hours or days at which the alert should run. + example: 1d + type: string + tags: + description: A list of keywords to reference and search. + items: + type: string + type: array + throttle: + description: > + How often this alert should fire the same actions. This will + prevent the alert from sending out the same notification + over and over. For example, if an alert with a schedule of 1 + minute stays in a triggered state for 90 minutes, setting a + throttle of `10m` or `1h` will prevent it from sending 90 + notifications during this period. + type: string + required: + - name + - notifyWhen + - params + - schedule + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_alert_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Update an alert + tags: + - alerting + '/api/alerts/alert/{alertId}/_disable': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the disable rule API instead. + operationId: legacyDisableAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Disable an alert + tags: + - alerting + '/api/alerts/alert/{alertId}/_enable': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the enable rule API instead. + operationId: legacyEnableAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Enable an alert + tags: + - alerting + '/api/alerts/alert/{alertId}/_mute_all': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the mute all alerts API instead. + operationId: legacyMuteAllAlertInstances + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Mute all alert instances + tags: + - alerting + '/api/alerts/alert/{alertId}/_unmute_all': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the unmute all alerts API instead. + operationId: legacyUnmuteAllAlertInstances + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Unmute all alert instances + tags: + - alerting + '/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_mute': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the mute alert API instead. + operationId: legacyMuteAlertInstance + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: An identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + - description: An identifier for the alert instance. + in: path + name: alertInstanceId + required: true + schema: + example: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Mute an alert instance + tags: + - alerting + '/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_unmute': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the unmute alert API instead. + operationId: legacyUnmuteAlertInstance + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: An identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + - description: An identifier for the alert instance. + in: path + name: alertInstanceId + required: true + schema: + example: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Unmute an alert instance + tags: + - alerting + /api/alerts/alerts/_find: + get: + deprecated: true + description: > + Deprecated in 7.13.0. Use the find rules API instead. NOTE: Alert + `params` are stored as a flattened field type and analyzed as keywords. + As alerts change in Kibana, the results on each page of the response + also change. Use the find API for traditional paginated results, but + avoid using it to export large amounts of data. + operationId: legacyFindAlerts + parameters: + - description: The default operator to use for the `simple_query_string`. + example: OR + in: query + name: default_search_operator + schema: + default: OR + type: string + - description: The fields to return in the `attributes` key of the response. + in: query + name: fields + schema: + items: + type: string + type: array + - description: > + A KQL string that you filter with an attribute from your saved + object. It should look like `savedObjectType.attributes.title: + "myTitle"`. However, if you used a direct attribute of a saved + object, such as `updatedAt`, you must define your filter, for + example, `savedObjectType.updatedAt > 2018-12-22`. + in: query + name: filter + schema: + type: string + - description: >- + Filters the rules that have a relation with the reference objects + with a specific type and identifier. + in: query + name: has_reference + schema: type: object - additionalProperties: true - Connectors_run_connector_params_message_email: - title: Email connector parameters + properties: + id: + type: string + type: + type: string + - description: The page number to return. + example: 1 + in: query + name: page + schema: + default: 1 + type: integer + - description: The number of alerts to return per page. + example: 20 + in: query + name: per_page + schema: + default: 20 + type: integer + - description: >- + An Elasticsearch `simple_query_string` query that filters the alerts + in the response. + in: query + name: search + schema: + type: string + - description: >- + The fields to perform the `simple_query_string` parsed query + against. + in: query + name: search_fields + schema: + oneOf: + - type: string + - items: + type: string + type: array + - description: > + Determines which field is used to sort the results. The field must + exist in the `attributes` key of the response. + in: query + name: sort_field + schema: + type: string + - description: Determines the sort order. + example: asc + in: query + name: sort_order + schema: + default: desc + enum: + - asc + - desc + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + data: + items: + $ref: '#/components/schemas/Alerting_alert_response_properties' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get a paginated set of alerts + tags: + - alerting + /api/alerts/alerts/_health: + get: + deprecated: true + description: Deprecated in 7.13.0. Use the get alerting framework health API instead. + operationId: legacyGetAlertingHealth + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + alertingFrameworkHealth: + description: > + Three substates identify the health of the alerting + framework: `decryptionHealth`, `executionHealth`, and + `readHealth`. + type: object + properties: + decryptionHealth: + description: The timestamp and status of the alert decryption. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + executionHealth: + description: The timestamp and status of the alert execution. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + readHealth: + description: The timestamp and status of the alert reading events. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + hasPermanentEncryptionKey: + description: >- + If `false`, the encrypted saved object plugin does not + have a permanent encryption key. + example: true + type: boolean + isSufficientlySecure: + description: 'If `false`, security is enabled but TLS is not.' + example: true + type: boolean + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get the alerting framework health + tags: + - alerting + /api/alerts/alerts/list_alert_types: + get: + deprecated: true + description: Deprecated in 7.13.0. Use the get rule types API instead. + operationId: legacyGetAlertTypes + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + properties: + actionGroups: + description: > + An explicit list of groups for which the alert type can + schedule actions, each with the action group's unique ID + and human readable name. Alert actions validation uses + this configuration to ensure that groups are valid. + items: + type: object + properties: + id: + type: string + name: + type: string + type: array + actionVariables: + description: > + A list of action variables that the alert type makes + available via context and state in action parameter + templates, and a short human readable description. The + Alert UI will use this information to prompt users for + these variables in action parameter editors. + type: object + properties: + context: + items: + type: object + properties: + description: + type: string + name: + type: string + type: array + params: + items: + type: object + properties: + description: + type: string + name: + type: string + type: array + state: + items: + type: object + properties: + description: + type: string + name: + type: string + type: array + authorizedConsumers: + description: >- + The list of the plugins IDs that have access to the + alert type. + type: object + defaultActionGroupId: + description: The default identifier for the alert type group. + type: string + enabledInLicense: + description: >- + Indicates whether the rule type is enabled based on the + subscription. + type: boolean + id: + description: The unique identifier for the alert type. + type: string + isExportable: + description: >- + Indicates whether the alert type is exportable in Saved + Objects Management UI. + type: boolean + minimumLicenseRequired: + description: The subscriptions required to use the alert type. + type: string + name: + description: The descriptive name of the alert type. + type: string + producer: + description: >- + An identifier for the application that produces this + alert type. + type: string + recoveryActionGroup: + description: > + An action group to use when an alert instance goes from + an active state to an inactive one. If it is not + specified, the default recovered action group is used. + type: object + properties: + id: + type: string + name: + type: string + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get the alert types + tags: + - alerting + /api/apm/agent_keys: + post: + description: Create a new agent key for APM. + operationId: createAgentKey + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + privileges: + items: + enum: + - 'event:write' + - 'config_agent:read' + type: string + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + api_key: + type: string + encoded: + type: string + expiration: + format: int64 + type: integer + id: + type: string + name: + type: string + description: Agent key created successfully + summary: Create an APM agent key + tags: + - APM agent keys + '/api/apm/services/{serviceName}/annotation': + post: + description: Create a new annotation for a specific service. + operationId: createAnnotation + parameters: + - description: The name of the service + in: path + name: serviceName + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + '@timestamp': + type: string + message: + type: string + service: + type: object + properties: + environment: + type: string + version: + type: string + tags: + items: + type: string + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + _id: + type: string + _index: + type: string + _source: + type: object + properties: + '@timestamp': + type: string + annotation: + type: string + event: + type: object + properties: + created: + type: string + message: + type: string + service: + type: object + properties: + environment: + type: string + name: + type: string + version: + type: string + tags: + items: + type: string + type: array + description: Annotation created successfully + summary: Create a service annotation + tags: + - APM annotations + '/api/apm/services/{serviceName}/annotation/search': + get: + description: Search for annotations related to a specific service. + operationId: getAnnotation + parameters: + - description: The name of the service + in: path + name: serviceName + required: true + schema: + type: string + - description: The environment to filter annotations by + in: query + name: environment + required: false + schema: + type: string + - description: The start date for the search + in: query + name: start + required: false + schema: + type: string + - description: The end date for the search + in: query + name: end + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + annotations: + items: + type: object + properties: + '@timestamp': + type: number + id: + type: string + text: + type: string + type: + enum: + - version + type: string + type: array + description: Successful response + summary: Search for annotations + tags: + - APM annotations + /api/cases: + delete: + description: > + You must have `read` or `all` privileges and the `delete` sub-feature + privilege for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases you're deleting. + operationId: deleteCaseDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_ids' + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Delete cases + tags: + - cases + patch: + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the + Kibana feature privileges, depending on the owner of the case you're + updating. + operationId: updateCaseDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseRequest: + $ref: '#/components/examples/Cases_update_case_request' + schema: + $ref: '#/components/schemas/Cases_update_case_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseResponse: + $ref: '#/components/examples/Cases_update_case_response' + schema: + items: + $ref: '#/components/schemas/Cases_case_response_properties' + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Update cases + tags: + - cases + post: + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the + Kibana feature privileges, depending on the owner of the case you're + creating. + operationId: createCaseDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createCaseRequest: + $ref: '#/components/examples/Cases_create_case_request' + schema: + $ref: '#/components/schemas/Cases_create_case_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createCaseResponse: + $ref: '#/components/examples/Cases_create_case_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Create a case + tags: + - cases + /api/cases/_find: + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases you're seeking. + operationId: findCasesDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_assignees' + - $ref: '#/components/parameters/Cases_category' + - $ref: '#/components/parameters/Cases_defaultSearchOperator' + - $ref: '#/components/parameters/Cases_from' + - $ref: '#/components/parameters/Cases_owner' + - $ref: '#/components/parameters/Cases_page_index' + - $ref: '#/components/parameters/Cases_page_size' + - $ref: '#/components/parameters/Cases_reporters' + - $ref: '#/components/parameters/Cases_search' + - $ref: '#/components/parameters/Cases_searchFields' + - $ref: '#/components/parameters/Cases_severity' + - $ref: '#/components/parameters/Cases_sortField' + - $ref: '#/components/parameters/Cases_sort_order' + - $ref: '#/components/parameters/Cases_status' + - $ref: '#/components/parameters/Cases_tags' + - $ref: '#/components/parameters/Cases_to' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + findCaseResponse: + $ref: '#/components/examples/Cases_find_case_response' + schema: + type: object + properties: + cases: + items: + $ref: '#/components/schemas/Cases_case_response_properties' + maxItems: 10000 + type: array + count_closed_cases: + type: integer + count_in_progress_cases: + type: integer + count_open_cases: + type: integer + page: + type: integer + per_page: + type: integer + total: + type: integer + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Search cases + tags: + - cases + '/api/cases/{caseId}': + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the case you're seeking. + operationId: getCaseDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_includeComments' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDefaultCaseResponse: + $ref: '#/components/examples/Cases_get_case_response' + getDefaultObservabilityCaseReponse: + $ref: '#/components/examples/Cases_get_case_observability_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case information + tags: + - cases + '/api/cases/{caseId}/alerts': + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases you're seeking. + operationId: getCaseAlertsDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getCaseAlertsResponse: + $ref: '#/components/examples/Cases_get_case_alerts_response' + schema: + items: + $ref: '#/components/schemas/Cases_alert_response_properties' + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get all alerts for a case + tags: + - cases + x-technical-preview: true + '/api/cases/{caseId}/comments': + delete: + description: > + Deletes all comments and alerts from a case. You must have `all` + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases you're deleting. + operationId: deleteCaseCommentsDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_case_id' + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Delete all case comments and alerts + tags: + - cases + get: + deprecated: true + description: > + Deprecated in 8.1.0. This API is deprecated and will be removed in a + future release; instead, use the get case comment API, which requires a + comment identifier in the path. You must have `read` privileges for the + **Cases** feature in the **Management**, **Observability**, or + **Security** section of the Kibana feature privileges, depending on the + owner of the cases with the comments you're seeking. + operationId: getAllCaseCommentsDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get all case comments + tags: + - cases + patch: + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the case you're updating. + NOTE: You cannot change the comment type or the owner of a comment. + operationId: updateCaseCommentDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_case_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseCommentRequest: + $ref: '#/components/examples/Cases_update_comment_request' + schema: + $ref: '#/components/schemas/Cases_update_case_comment_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseCommentResponse: + $ref: '#/components/examples/Cases_update_comment_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Update a case comment or alert + tags: + - cases + post: + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the case you're creating. + NOTE: Each case can have a maximum of 1,000 alerts. + operationId: addCaseCommentDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_case_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createCaseCommentRequest: + $ref: '#/components/examples/Cases_add_comment_request' + schema: + $ref: '#/components/schemas/Cases_add_case_comment_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createCaseCommentResponse: + $ref: '#/components/examples/Cases_add_comment_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Add a case comment or alert + tags: + - cases + '/api/cases/{caseId}/comments/_find': + get: + description: > + Retrieves a paginated list of comments for a case. You must have `read` + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases with the comments you're + seeking. + operationId: findCaseCommentsDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_page_index' + - $ref: '#/components/parameters/Cases_page_size' + - $ref: '#/components/parameters/Cases_sort_order' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Find case comments and alerts + tags: + - cases + '/api/cases/{caseId}/comments/{commentId}': + delete: + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases you're deleting. + operationId: deleteCaseCommentDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_comment_id' + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Delete a case comment or alert + tags: + - cases + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases with the + comments you're seeking. + operationId: getCaseCommentDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_comment_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getCaseCommentResponse: + $ref: '#/components/examples/Cases_get_comment_response' + schema: + oneOf: + - $ref: >- + #/components/schemas/Cases_alert_comment_response_properties + - $ref: >- + #/components/schemas/Cases_user_comment_response_properties + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get a case comment or alert + tags: + - cases + '/api/cases/{caseId}/connector/{connectorId}/_push': + post: + description: > + You must have `all` privileges for the **Actions and Connectors** + feature in the **Management** section of the Kibana feature privileges. + You must also have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the case you're pushing. + operationId: pushCaseDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_connector_id' + - $ref: '#/components/parameters/Cases_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + nullable: true + type: object + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + pushCaseResponse: + $ref: '#/components/examples/Cases_push_case_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Push a case to an external service + tags: + - cases + '/api/cases/{caseId}/user_actions': + get: + deprecated: true + description: > + Returns all user activity for a case. Deprecated in 8.1.0. This API is + deprecated and will be removed in a future release; use the find user + actions API instead. You must have `read` privileges for the **Cases** + feature in the **Management**, **Observability**, or **Security** + section of the Kibana feature privileges, depending on the owner of the + case you're seeking. + operationId: getCaseActivityDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + $ref: '#/components/schemas/Cases_user_actions_response_properties' + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case activity + tags: + - cases + '/api/cases/{caseId}/user_actions/_find': + get: + description: > + Retrives a paginated list of user activity for a case. You must have + `read` privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the case you're seeking. + operationId: findCaseActivityDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_page_index' + - $ref: '#/components/parameters/Cases_page_size' + - $ref: '#/components/parameters/Cases_sort_order' + - $ref: '#/components/parameters/Cases_user_action_types' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + findCaseActivityResponse: + $ref: '#/components/examples/Cases_find_case_activity_response' + schema: + type: object + properties: + page: + type: integer + perPage: + type: integer + total: + type: integer + userActions: + items: + $ref: >- + #/components/schemas/Cases_user_actions_find_response_properties + maxItems: 10000 + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Find case activity + tags: + - cases + '/api/cases/alerts/{alertId}': + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases you're seeking. + operationId: getCasesByAlertDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_alert_id' + - $ref: '#/components/parameters/Cases_owner' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + example: + - id: 06116b80-e1c3-11ec-be9b-9b1838238ee6 + title: security_case + items: + type: object + properties: + id: + description: The case identifier. + type: string + title: + description: The case title. + type: string + maxItems: 10000 + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get cases for an alert + tags: + - cases + x-technical-preview: true + /api/cases/configure: + get: + description: > + Get setting details such as the closure type, custom fields, templatse, + and the default connector for cases. You must have `read` privileges for + the **Cases** feature in the **Management**, **Observability**, or + **Security** section of the Kibana feature privileges, depending on + where the cases were created. + operationId: getCaseConfigurationDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_owner' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getConfigurationResponse: + $ref: '#/components/examples/Cases_get_case_configuration_response' + schema: + items: + type: object + properties: + closure_type: + $ref: '#/components/schemas/Cases_closure_types' + connector: + type: object + properties: + fields: + description: >- + The fields specified in the case configuration are + not used and are not propagated to individual cases, + therefore it is recommended to set it to `null`. + nullable: true + type: object + id: + description: >- + The identifier for the connector. If you do not want + a default connector, use `none`. To retrieve + connector IDs, use the find connectors API. + example: none + type: string + name: + description: >- + The name of the connector. If you do not want a + default connector, use `none`. To retrieve connector + names, use the find connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + created_at: + example: '2022-06-01T17:07:17.767Z' + format: date-time + type: string + created_by: + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + customFields: + description: Custom fields configuration details. + items: + type: object + properties: + defaultValue: + description: > + A default value for the custom field. If the + `type` is `text`, the default value must be a + string. If the `type` is `toggle`, the default + value must be boolean. + oneOf: + - type: string + - type: boolean + key: + description: > + A unique key for the custom field. Must be lower + case and composed only of a-z, 0-9, '_', and '-' + characters. It is used in API calls to refer to a + specific custom field. + maxLength: 36 + minLength: 1 + type: string + label: + description: >- + The custom field label that is displayed in the + case. + maxLength: 50 + minLength: 1 + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + required: + description: > + Indicates whether the field is required. If + `false`, the custom field can be set to null or + omitted when a case is created or updated. + type: boolean + type: array + error: + example: null + nullable: true + type: string + id: + example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 + type: string + mappings: + items: + type: object + properties: + action_type: + example: overwrite + type: string + source: + example: title + type: string + target: + example: summary + type: string + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + templates: + $ref: '#/components/schemas/Cases_templates' + updated_at: + example: '2022-06-01T19:58:48.169Z' + format: date-time + nullable: true + type: string + updated_by: + nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + version: + example: WzIwNzMsMV0= + type: string + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case settings + tags: + - cases + post: + description: > + Case settings include external connection details, custom fields, and + templates. Connectors are used to interface with external systems. You + must create a connector before you can use it in your cases. If you set + a default connector, it is automatically selected when you create cases + in Kibana. If you use the create case API, however, you must still + specify all of the connector details. You must have `all` privileges for + the **Cases** feature in the **Management**, **Observability**, or + **Security** section of the Kibana feature privileges, depending on + where you are creating cases. + operationId: setCaseConfigurationDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + setCaseConfigRequest: + $ref: '#/components/examples/Cases_set_case_configuration_request' + schema: + $ref: '#/components/schemas/Cases_set_case_configuration_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + setCaseConfigResponse: + $ref: '#/components/examples/Cases_set_case_configuration_response' + schema: + type: object + properties: + closure_type: + $ref: '#/components/schemas/Cases_closure_types' + connector: + type: object + properties: + fields: + description: >- + The fields specified in the case configuration are not + used and are not propagated to individual cases, + therefore it is recommended to set it to `null`. + nullable: true + type: object + id: + description: >- + The identifier for the connector. If you do not want a + default connector, use `none`. To retrieve connector + IDs, use the find connectors API. + example: none + type: string + name: + description: >- + The name of the connector. If you do not want a + default connector, use `none`. To retrieve connector + names, use the find connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + created_at: + example: '2022-06-01T17:07:17.767Z' + format: date-time + type: string + created_by: + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + customFields: + description: Custom fields configuration details. + items: + type: object + properties: + defaultValue: + description: > + A default value for the custom field. If the `type` + is `text`, the default value must be a string. If + the `type` is `toggle`, the default value must be + boolean. + oneOf: + - type: string + - type: boolean + key: + description: > + A unique key for the custom field. Must be lower + case and composed only of a-z, 0-9, '_', and '-' + characters. It is used in API calls to refer to a + specific custom field. + maxLength: 36 + minLength: 1 + type: string + label: + description: >- + The custom field label that is displayed in the + case. + maxLength: 50 + minLength: 1 + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + required: + description: > + Indicates whether the field is required. If `false`, + the custom field can be set to null or omitted when + a case is created or updated. + type: boolean + type: array + error: + example: null + nullable: true + type: string + id: + example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 + type: string + mappings: + items: + type: object + properties: + action_type: + example: overwrite + type: string + source: + example: title + type: string + target: + example: summary + type: string + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + templates: + $ref: '#/components/schemas/Cases_templates' + updated_at: + example: '2022-06-01T19:58:48.169Z' + format: date-time + nullable: true + type: string + updated_by: + nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + version: + example: WzIwNzMsMV0= + type: string + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Add case settings + tags: + - cases + '/api/cases/configure/{configurationId}': + patch: description: > - Test an action that sends an email message. There must be at least one - recipient in `to`, `cc`, or `bcc`. - type: object - anyOf: - - required: - - bcc - - message - - subject - - required: - - cc - - message - - subject - - required: - - to - - message - - subject - properties: - bcc: - type: array - items: - type: string - description: > - A list of "blind carbon copy" email addresses. Addresses can be - specified in `user@host-name` format or in name `` - format - cc: - type: array - items: - type: string - description: > - A list of "carbon copy" email addresses. Addresses can be specified - in `user@host-name` format or in name `` format - message: - type: string - description: The email message text. Markdown format is supported. - subject: - type: string - description: The subject line of the email. - to: - type: array - description: > - A list of email addresses. Addresses can be specified in - `user@host-name` format or in name `` format. - items: - type: string - Connectors_run_connector_params_message_serverlog: - title: Server log connector parameters - description: Test an action that writes an entry to the Kibana server log. - type: object - required: - - message - properties: - level: - type: string - description: The log level of the message for server log connectors. - enum: - - debug - - error - - fatal - - info - - trace - - warn - default: info - message: - type: string - description: The message for server log connectors. - Connectors_run_connector_params_message_slack: - title: Slack connector parameters + Updates setting details such as the closure type, custom fields, + templates, and the default connector for cases. Connectors are used to + interface with external systems. You must create a connector before you + can use it in your cases. You must have `all` privileges for the + **Cases** feature in the **Management**, **Observability**, or + **Security** section of the Kibana feature privileges, depending on + where the case was created. + operationId: updateCaseConfigurationDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_configuration_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseConfigurationRequest: + $ref: '#/components/examples/Cases_update_case_configuration_request' + schema: + $ref: '#/components/schemas/Cases_update_case_configuration_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseConfigurationResponse: + $ref: >- + #/components/examples/Cases_update_case_configuration_response + schema: + type: object + properties: + closure_type: + $ref: '#/components/schemas/Cases_closure_types' + connector: + type: object + properties: + fields: + description: >- + The fields specified in the case configuration are not + used and are not propagated to individual cases, + therefore it is recommended to set it to `null`. + nullable: true + type: object + id: + description: >- + The identifier for the connector. If you do not want a + default connector, use `none`. To retrieve connector + IDs, use the find connectors API. + example: none + type: string + name: + description: >- + The name of the connector. If you do not want a + default connector, use `none`. To retrieve connector + names, use the find connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + created_at: + example: '2022-06-01T17:07:17.767Z' + format: date-time + type: string + created_by: + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + customFields: + description: Custom fields configuration details. + items: + type: object + properties: + defaultValue: + description: > + A default value for the custom field. If the `type` + is `text`, the default value must be a string. If + the `type` is `toggle`, the default value must be + boolean. + oneOf: + - type: string + - type: boolean + key: + description: > + A unique key for the custom field. Must be lower + case and composed only of a-z, 0-9, '_', and '-' + characters. It is used in API calls to refer to a + specific custom field. + maxLength: 36 + minLength: 1 + type: string + label: + description: >- + The custom field label that is displayed in the + case. + maxLength: 50 + minLength: 1 + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + required: + description: > + Indicates whether the field is required. If `false`, + the custom field can be set to null or omitted when + a case is created or updated. + type: boolean + type: array + error: + example: null + nullable: true + type: string + id: + example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 + type: string + mappings: + items: + type: object + properties: + action_type: + example: overwrite + type: string + source: + example: title + type: string + target: + example: summary + type: string + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + templates: + $ref: '#/components/schemas/Cases_templates' + updated_at: + example: '2022-06-01T19:58:48.169Z' + format: date-time + nullable: true + type: string + updated_by: + nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + version: + example: WzIwNzMsMV0= + type: string + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Update case settings + tags: + - cases + /api/cases/configure/connectors/_find: + get: description: > - Test an action that sends a message to Slack. It is applicable only when - the connector type is `.slack`. - type: object - required: - - message - properties: - message: - type: string - description: >- - The Slack message text, which cannot contain Markdown, images, or - other advanced formatting. - Connectors_run_connector_params_trigger_pagerduty: - title: PagerDuty connector parameters - description: Test an action that triggers a PagerDuty alert. - type: object - required: - - eventAction - properties: - class: - description: The class or type of the event. - type: string - example: cpu load - component: - description: >- - The component of the source machine that is responsible for the - event. - type: string - example: eth0 - customDetails: - description: Additional details to add to the event. - type: object - dedupKey: - description: > - All actions sharing this key will be associated with the same - PagerDuty alert. This value is used to correlate trigger and - resolution. - type: string - maxLength: 255 - eventAction: - description: The type of event. - type: string - enum: - - trigger - group: - description: The logical grouping of components of a service. - type: string - example: app-stack - links: - description: A list of links to add to the event. - type: array - items: - type: object - properties: - href: - description: The URL for the link. - type: string - text: - description: A plain text description of the purpose of the link. - type: string - severity: - description: The severity of the event on the affected system. - type: string - enum: - - critical - - error - - info - - warning - default: info - source: - description: > - The affected system, such as a hostname or fully qualified domain - name. Defaults to the Kibana saved object id of the action. - type: string - summary: - description: A summery of the event. - type: string - maxLength: 1024 - timestamp: - description: >- - An ISO-8601 timestamp that indicates when the event was detected or - generated. - type: string - format: date-time - Connectors_run_connector_subaction_addevent: - title: The addEvent subaction - type: object - required: - - subAction - description: The `addEvent` subaction for ServiceNow ITOM connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - addEvent - subActionParams: - type: object - description: The set of configuration properties for the action. - properties: - additional_info: - type: string - description: Additional information about the event. - description: - type: string - description: The details about the event. - event_class: - type: string - description: A specific instance of the source. - message_key: - type: string - description: >- - All actions sharing this key are associated with the same - ServiceNow alert. The default value is `:`. - metric_name: - type: string - description: The name of the metric. - node: - type: string - description: The host that the event was triggered for. - resource: - type: string - description: The name of the resource. - severity: - type: string - description: The severity of the event. - source: - type: string - description: The name of the event source type. - time_of_event: - type: string - description: The time of the event. - type: - type: string - description: The type of event. - Connectors_run_connector_subaction_closealert: - title: The closeAlert subaction - type: object - required: - - subAction - - subActionParams - description: The `closeAlert` subaction for Opsgenie connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - closeAlert - subActionParams: - type: object - required: - - alias - properties: - alias: - type: string - description: >- - The unique identifier used for alert deduplication in Opsgenie. - The alias must match the value used when creating the alert. - note: - type: string - description: Additional information for the alert. - source: - type: string - description: The display name for the source of the alert. - user: - type: string - description: The display name for the owner. - Connectors_run_connector_subaction_closeincident: - title: The closeIncident subaction - type: object - required: - - subAction - - subActionParams - description: The `closeIncident` subaction for ServiceNow ITSM connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - closeIncident - subActionParams: - type: object - required: - - incident - properties: - incident: + Get information about connectors that are supported for use in cases. + You must have `read` privileges for the **Actions and Connectors** + feature in the **Management** section of the Kibana feature privileges. + operationId: findCaseConnectorsDefaultSpace + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + findConnectorResponse: + $ref: '#/components/examples/Cases_find_connector_response' + schema: + items: + type: object + properties: + actionTypeId: + $ref: '#/components/schemas/Cases_connector_types' + config: + additionalProperties: true + type: object + properties: + apiUrl: + type: string + projectKey: + type: string + id: + type: string + isDeprecated: + type: boolean + isMissingSecrets: + type: boolean + isPreconfigured: + type: boolean + name: + type: string + referencedByCount: + type: integer + maxItems: 1000 + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case connectors + tags: + - cases + /api/cases/reporters: + get: + description: > + Returns information about the users who opened cases. You must have read + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases. The API returns + information about the users as they existed at the time of the case + creation, including their name, full name, and email address. If any of + those details change thereafter or if a user is deleted, the information + returned by this API is unchanged. + operationId: getCaseReportersDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_owner' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getReportersResponse: + $ref: '#/components/examples/Cases_get_reporters_response' + schema: + items: + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + maxItems: 10000 + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case creators + tags: + - cases + /api/cases/status: + get: + deprecated: true + description: > + Returns the number of cases that are open, closed, and in progress. + Deprecated in 8.1.0. This API is deprecated and will be removed in a + future release; use the find cases API instead. You must have `read` + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases you're seeking. + operationId: getCaseStatusDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_owner' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + count_closed_cases: + type: integer + count_in_progress_cases: + type: integer + count_open_cases: + type: integer + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case status summary + tags: + - cases + /api/cases/tags: + get: + description: > + Aggregates and returns a list of case tags. You must have read + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases you're seeking. + operationId: getCaseTagsDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_owner' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getTagsResponse: + $ref: '#/components/examples/Cases_get_tags_response' + schema: + items: + type: string + maxItems: 10000 + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case tags + tags: + - cases + /api/data_views: + get: + operationId: getAllDataViewsDefault + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getAllDataViewsResponse: + $ref: '#/components/examples/Data_views_get_data_views_response' + schema: + type: object + properties: + data_view: + items: + type: object + properties: + id: + type: string + name: + type: string + namespaces: + items: + type: string + type: array + title: + type: string + typeMeta: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Get all data views + tags: + - data views + /api/data_views/data_view: + post: + operationId: createDataViewDefaultw + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createDataViewRequest: + $ref: '#/components/examples/Data_views_create_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_create_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Create a data view + tags: + - data views + '/api/data_views/data_view/{viewId}': + delete: + description: | + WARNING: When you delete a data view, it cannot be recovered. + operationId: deleteDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '204': + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Delete a data view + tags: + - data views + get: + operationId: getDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDataViewResponse: + $ref: '#/components/examples/Data_views_get_data_view_response' + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Get a data view + tags: + - data views + post: + operationId: updateDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateDataViewRequest: + $ref: '#/components/examples/Data_views_update_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_update_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update a data view + tags: + - data views + '/api/data_views/data_view/{viewId}/fields': + post: + description: > + Update fields presentation metadata such as count, customLabel, + customDescription, and format. + operationId: updateFieldsMetadataDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateFieldsMetadataRequest: + $ref: '#/components/examples/Data_views_update_field_metadata_request' + schema: + type: object + properties: + fields: + description: The field object. + type: object + required: + - fields + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + acknowledged: + type: boolean + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update data view fields metadata + tags: + - data views + '/api/data_views/data_view/{viewId}/runtime_field': + post: + operationId: createRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_create_runtime_field_request' + schema: + type: object + properties: + name: + description: | + The name for a runtime field. + type: string + runtimeField: + description: | + The runtime field definition object. + type: object + required: + - name + - runtimeField + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + summary: Create a runtime field + tags: + - data views + put: + operationId: createUpdateRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - description: | + The ID of the data view fields you want to update. + in: path + name: viewId + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_create_runtime_field_request' + schema: + type: object + properties: + name: + description: | + The name for a runtime field. + type: string + runtimeField: + description: | + The runtime field definition object. + type: object + required: + - name + - runtimeField + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + data_view: + type: object + fields: + items: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Create or update a runtime field + tags: + - data views + '/api/data_views/data_view/{viewId}/runtime_field/{fieldName}': + delete: + operationId: deleteRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Delete a runtime field from a data view + tags: + - data views + get: + operationId: getRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getRuntimeFieldResponse: + $ref: '#/components/examples/Data_views_get_runtime_field_response' + schema: + type: object + properties: + data_view: + type: object + fields: + items: + type: object + type: array + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Get a runtime field + tags: + - data views + post: + operationId: updateRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_update_runtime_field_request' + schema: + type: object + properties: + runtimeField: + description: | + The runtime field definition object. + + You can update following fields: + + - `type` + - `script` + type: object + required: + - runtimeField + required: true + responses: + '200': + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update a runtime field + tags: + - data views + /api/data_views/default: + get: + operationId: getDefaultDataViewDefault + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDefaultDataViewResponse: + $ref: >- + #/components/examples/Data_views_get_default_data_view_response + schema: + type: object + properties: + data_view_id: + type: string + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Get the default data view + tags: + - data views + post: + operationId: setDefaultDatailViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + setDefaultDataViewRequest: + $ref: '#/components/examples/Data_views_set_default_data_view_request' + schema: type: object - anyOf: - - required: - - correlation_id - - required: - - externalId properties: - correlation_id: - type: string - nullable: true + data_view_id: description: > - An identifier that is assigned to the incident when it is - created by the connector. NOTE: If you use the default value - and the rule generates multiple alerts that use the same - alert IDs, the latest open incident for this correlation ID - is closed unless you specify the external ID. - maxLength: 100 - default: '{{rule.id}}:{{alert.id}}' - externalId: - type: string + The data view identifier. NOTE: The API does not validate + whether it is a valid identifier. Use `null` to unset the + default data view. nullable: true - description: >- - The unique identifier (`incidentId`) for the incident in - ServiceNow. - Connectors_run_connector_subaction_createalert: - title: The createAlert subaction - type: object - required: - - subAction - - subActionParams - description: The `createAlert` subaction for Opsgenie connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - createAlert - subActionParams: - type: object - required: - - message - properties: - actions: - type: array - description: The custom actions available to the alert. - items: - type: string - alias: - type: string - description: The unique identifier used for alert deduplication in Opsgenie. - description: - type: string - description: >- - A description that provides detailed information about the - alert. - details: - type: object - description: The custom properties of the alert. - additionalProperties: true - example: - key1: value1 - key2: value2 - entity: - type: string - description: >- - The domain of the alert. For example, the application or server - name. - message: - type: string - description: The alert message. - note: - type: string - description: Additional information for the alert. - priority: - type: string - description: The priority level for the alert. - enum: - - P1 - - P2 - - P3 - - P4 - - P5 - responders: - type: array - description: > - The entities to receive notifications about the alert. If `type` - is `user`, either `id` or `username` is required. If `type` is - `team`, either `id` or `name` is required. - items: + type: string + force: + default: false + description: Update an existing default data view identifier. + type: boolean + required: + - data_view_id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object properties: - id: - type: string - description: The identifier for the entity. - name: - type: string - description: The name of the entity. - type: - type: string - description: The type of responders, in this case `escalation`. - enum: - - escalation - - schedule - - team - - user - username: - type: string - description: A valid email address for the user. - source: - type: string - description: The display name for the source of the alert. - tags: - type: array - description: The tags for the alert. - items: - type: string - user: - type: string - description: The display name for the owner. - visibleTo: - type: array - description: >- - The teams and users that the alert will be visible to without - sending a notification. Only one of `id`, `name`, or `username` - is required. - items: + acknowledged: + type: boolean + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Set the default data view + tags: + - data views + /api/data_views/swap_references: + post: + description: > + Changes saved object references from one data view identifier to + another. WARNING: Misuse can break large numbers of saved objects! + Practicing with a backup is recommended. + operationId: swapDataViewsDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + swapDataViewRequest: + $ref: '#/components/examples/Data_views_swap_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_swap_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + deleteStatus: + type: object + properties: + deletePerformed: + type: boolean + remainingRefs: + type: integer + result: + items: + type: object + properties: + id: + description: A saved object identifier. + type: string + type: + description: The saved object type. + type: string + type: array + description: Indicates a successful call. + summary: Swap saved object references + tags: + - data views + /api/data_views/swap_references/_preview: + post: + description: > + Preview the impact of swapping saved object references from one data + view identifier to another. + operationId: previewSwapDataViewsDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + previewSwapDataViewRequest: + $ref: >- + #/components/examples/Data_views_preview_swap_data_view_request + schema: + $ref: '#/components/schemas/Data_views_swap_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + result: + items: + type: object + properties: + id: + description: A saved object identifier. + type: string + type: + description: The saved object type. + type: string + type: array + description: Indicates a successful call. + summary: Preview a saved object reference swap + tags: + - data views + /api/encrypted_saved_objects/_rotate_key: + post: + description: > + Superuser role required. + + + If a saved object cannot be decrypted using the primary encryption key, + then Kibana will attempt to decrypt it using the specified + decryption-only keys. In most of the cases this overhead is negligible, + but if you're dealing with a large number of saved objects and + experiencing performance issues, you may want to rotate the encryption + key. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: rotateEncryptionKey + parameters: + - description: > + Specifies a maximum number of saved objects that Kibana can process + in a single batch. Bulk key rotation is an iterative process since + Kibana may not be able to fetch and process all required saved + objects in one go and splits processing into consequent batches. By + default, the batch size is 10000, which is also a maximum allowed + value. + in: query + name: batch_size + required: false + schema: + default: 10000 + type: number + - description: > + Limits encryption key rotation only to the saved objects with the + specified type. By default, Kibana tries to rotate the encryption + key for all saved object types that may contain encrypted + attributes. + in: query + name: type + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + rotateEncryptionKeyResponse: + $ref: '#/components/examples/Saved_objects_key_rotation_response' + schema: type: object - required: - - type properties: - id: - type: string - description: The identifier for the entity. - name: - type: string - description: The name of the entity. - type: - type: string - description: Valid values are `team` and `user`. - enum: - - team - - user - username: - type: string - description: >- - The user name. This property is required only when the - `type` is `user`. - Connectors_run_connector_subaction_fieldsbyissuetype: - title: The fieldsByIssueType subaction - type: object - required: - - subAction - - subActionParams - description: The `fieldsByIssueType` subaction for Jira connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - fieldsByIssueType - subActionParams: - type: object - required: - - id - properties: - id: - type: string - description: The Jira issue type identifier. - example: 10024 - Connectors_run_connector_subaction_getchoices: - title: The getChoices subaction - type: object - required: - - subAction - - subActionParams - description: >- - The `getChoices` subaction for ServiceNow ITOM, ServiceNow ITSM, and - ServiceNow SecOps connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - getChoices - subActionParams: - type: object - description: The set of configuration properties for the action. - required: - - fields - properties: - fields: - type: array - description: An array of fields. - items: - type: string - Connectors_run_connector_subaction_getfields: - title: The getFields subaction - type: object - required: - - subAction - description: >- - The `getFields` subaction for Jira, ServiceNow ITSM, and ServiceNow - SecOps connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - getFields - Connectors_run_connector_subaction_getincident: - title: The getIncident subaction - type: object - description: >- - The `getIncident` subaction for Jira, ServiceNow ITSM, and ServiceNow - SecOps connectors. - required: - - subAction - - subActionParams - properties: - subAction: - type: string - description: The action to test. - enum: - - getIncident - subActionParams: - type: object - required: - - externalId - properties: - externalId: - type: string - description: >- - The Jira, ServiceNow ITSM, or ServiceNow SecOps issue - identifier. - example: 71778 - Connectors_run_connector_subaction_issue: - title: The issue subaction - type: object - required: - - subAction - description: The `issue` subaction for Jira connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - issue - subActionParams: - type: object - required: - - id - properties: - id: - type: string - description: The Jira issue identifier. - example: 71778 - Connectors_run_connector_subaction_issues: - title: The issues subaction - type: object - required: - - subAction - - subActionParams - description: The `issues` subaction for Jira connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - issues - subActionParams: - type: object - required: - - title - properties: - title: - type: string - description: The title of the Jira issue. - Connectors_run_connector_subaction_issuetypes: - title: The issueTypes subaction - type: object - required: - - subAction - description: The `issueTypes` subaction for Jira connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - issueTypes - Connectors_run_connector_subaction_pushtoservice: - title: The pushToService subaction - type: object - required: - - subAction - - subActionParams - description: >- - The `pushToService` subaction for Jira, ServiceNow ITSM, ServiceNow - SecOps, Swimlane, and Webhook - Case Management connectors. - properties: - subAction: - type: string - description: The action to test. - enum: - - pushToService - subActionParams: - type: object - description: The set of configuration properties for the action. - properties: - comments: - type: array - description: >- - Additional information that is sent to Jira, ServiceNow ITSM, - ServiceNow SecOps, or Swimlane. - items: + failed: + description: > + Indicates the number of the saved objects that were still + encrypted with one of the old encryption keys that Kibana + failed to re-encrypt with the primary key. + type: number + successful: + description: > + Indicates the total number of all encrypted saved objects + (optionally filtered by the requested `type`), regardless + of the key Kibana used for encryption. + + + NOTE: In most cases, `total` will be greater than + `successful` even if `failed` is zero. The reason is that + Kibana may not need or may not be able to rotate + encryption keys for all encrypted saved objects. + type: number + total: + description: > + Indicates the total number of all encrypted saved objects + (optionally filtered by the requested `type`), regardless + of the key Kibana used for encryption. + type: number + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + '429': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - properties: - comment: - type: string - description: >- - A comment related to the incident. For example, describe - how to troubleshoot the issue. - commentId: - type: integer - description: A unique identifier for the comment. - incident: - type: object - description: >- - Information necessary to create or update a Jira, ServiceNow - ITSM, ServiveNow SecOps, or Swimlane incident. - properties: - alertId: - type: string - description: The alert identifier for Swimlane connectors. - caseId: - type: string - description: >- - The case identifier for the incident for Swimlane - connectors. - caseName: - type: string - description: The case name for the incident for Swimlane connectors. - category: - type: string - description: >- - The category of the incident for ServiceNow ITSM and - ServiceNow SecOps connectors. - correlation_display: - type: string - description: >- - A descriptive label of the alert for correlation purposes - for ServiceNow ITSM and ServiceNow SecOps connectors. - correlation_id: - type: string - description: > - The correlation identifier for the security incident for - ServiceNow ITSM and ServiveNow SecOps connectors. Connectors - using the same correlation ID are associated with the same - ServiceNow incident. This value determines whether a new - ServiceNow incident is created or an existing one is - updated. Modifying this value is optional; if not modified, - the rule ID and alert ID are combined as `{{ruleID}}:{{alert - ID}}` to form the correlation ID value in ServiceNow. The - maximum character length for this value is 100 characters. - NOTE: Using the default configuration of `{{ruleID}}:{{alert - ID}}` ensures that ServiceNow creates a separate incident - record for every generated alert that uses a unique alert - ID. If the rule generates multiple alerts that use the same - alert IDs, ServiceNow creates and continually updates a - single incident record for the alert. - description: - type: string - description: >- - The description of the incident for Jira, ServiceNow ITSM, - ServiceNow SecOps, Swimlane, and Webhook - Case Management - connectors. - dest_ip: - description: > - A list of destination IP addresses related to the security - incident for ServiceNow SecOps connectors. The IPs are added - as observables to the security incident. - oneOf: - - type: string - - type: array - items: - type: string - externalId: - type: string - description: > - The Jira, ServiceNow ITSM, or ServiceNow SecOps issue - identifier. If present, the incident is updated. Otherwise, - a new incident is created. - id: - type: string - description: >- - The external case identifier for Webhook - Case Management - connectors. - impact: - type: string - description: The impact of the incident for ServiceNow ITSM connectors. - issueType: - type: integer - description: >- - The type of incident for Jira connectors. For example, - 10006. To obtain the list of valid values, set `subAction` - to `issueTypes`. - labels: - type: array - items: - type: string - description: > - The labels for the incident for Jira connectors. NOTE: - Labels cannot contain spaces. - malware_hash: - description: >- - A list of malware hashes related to the security incident - for ServiceNow SecOps connectors. The hashes are added as - observables to the security incident. - oneOf: - - type: string - - type: array - items: - type: string - malware_url: - type: string - description: >- - A list of malware URLs related to the security incident for - ServiceNow SecOps connectors. The URLs are added as - observables to the security incident. - oneOf: - - type: string - - type: array - items: - type: string - otherFields: - type: object - additionalProperties: true - maxProperties: 20 - description: > - Custom field identifiers and their values for Jira - connectors. - parent: - type: string - description: >- - The ID or key of the parent issue for Jira connectors. - Applies only to `Sub-task` types of issues. - priority: - type: string - description: >- - The priority of the incident in Jira and ServiceNow SecOps - connectors. - ruleName: - type: string - description: The rule name for Swimlane connectors. - severity: - type: string - description: >- - The severity of the incident for ServiceNow ITSM and - Swimlane connectors. - short_description: - type: string - description: > - A short description of the incident for ServiceNow ITSM and - ServiceNow SecOps connectors. It is used for searching the - contents of the knowledge base. - source_ip: - description: >- - A list of source IP addresses related to the security - incident for ServiceNow SecOps connectors. The IPs are added - as observables to the security incident. - oneOf: - - type: string - - type: array - items: - type: string - status: - type: string - description: >- - The status of the incident for Webhook - Case Management - connectors. - subcategory: - type: string - description: >- - The subcategory of the incident for ServiceNow ITSM and - ServiceNow SecOps connectors. - summary: - type: string - description: A summary of the incident for Jira connectors. - tags: - type: array - items: - type: string - description: A list of tags for Webhook - Case Management connectors. - title: - type: string - description: > - A title for the incident for Jira and Webhook - Case - Management connectors. It is used for searching the contents - of the knowledge base. - urgency: - type: string - description: The urgency of the incident for ServiceNow ITSM connectors. - Connectors_run_connector_subaction_postmessage: - title: The postMessage subaction - type: object + description: Already in progress. + summary: Rotate a key for encrypted saved objects + tags: + - saved objects + /api/ml/saved_objects/sync: + get: description: > - Test an action that sends a message to Slack. It is applicable only when - the connector type is `.slack_api`. - required: - - subAction - - subActionParams - properties: - subAction: - type: string - description: The action to test. - enum: - - postMessage - subActionParams: - type: object - description: The set of configuration properties for the action. - properties: - channelIds: - type: array - maxItems: 1 - description: > - The Slack channel identifier, which must be one of the - `allowedChannels` in the connector configuration. + Synchronizes Kibana saved objects for machine learning jobs and trained + models in the default space. You must have `all` privileges for the + **Machine Learning** feature in the **Analytics** section of the Kibana + feature privileges. This API runs automatically when you start Kibana + and periodically thereafter. + operationId: mlSync + parameters: + - $ref: '#/components/parameters/Machine_learning_APIs_simulateParam' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + syncExample: + $ref: '#/components/examples/Machine_learning_APIs_mlSyncExample' + schema: + $ref: '#/components/schemas/Machine_learning_APIs_mlSync200Response' + description: Indicates a successful call + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Machine_learning_APIs_mlSync4xxResponse' + description: Authorization information is missing or invalid. + summary: Sync saved objects in the default space + tags: + - ml + /api/saved_objects/_bulk_create: + post: + deprecated: true + operationId: bulkCreateSavedObjects + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: 'When true, overwrites the document with the same identifier.' + in: query + name: overwrite + schema: + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: items: - type: string - channels: + type: object type: array - deprecated: true - description: | - The name of a channel that your Slack app has access to. - maxItems: 1 - items: - type: string - text: - type: string - description: > - The Slack message text. If it is a Slack webhook connector, the - text cannot contain Markdown, images, or other advanced - formatting. If it is a Slack web API connector, it can contain - either plain text or block kit messages. - minLength: 1 - Connectors_run_connector_subaction_validchannelid: - title: The validChannelId subaction - type: object - description: > - Retrieves information about a valid Slack channel identifier. It is - applicable only when the connector type is `.slack_api`. - required: - - subAction - - subActionParams - properties: - subAction: - type: string - description: The action to test. - enum: - - validChannelId - subActionParams: - type: object - required: - - channelId - properties: - channelId: - type: string - description: The Slack channel identifier. - example: C123ABC456 - Connectors_run_connector_request: - title: Run connector request body properties - description: The properties vary depending on the connector type. - type: object - required: - - params - properties: - params: - oneOf: - - $ref: >- - #/components/schemas/Connectors_run_connector_params_acknowledge_resolve_pagerduty - - $ref: '#/components/schemas/Connectors_run_connector_params_documents' - - $ref: >- - #/components/schemas/Connectors_run_connector_params_message_email - - $ref: >- - #/components/schemas/Connectors_run_connector_params_message_serverlog - - $ref: >- - #/components/schemas/Connectors_run_connector_params_message_slack - - $ref: >- - #/components/schemas/Connectors_run_connector_params_trigger_pagerduty - - title: Subaction parameters - description: Test an action that involves a subaction. - oneOf: - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_addevent - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_closealert - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_closeincident - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_createalert - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_fieldsbyissuetype - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_getchoices - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_getfields - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_getincident - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_issue - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_issues - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_issuetypes - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_postmessage - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_pushtoservice - - $ref: >- - #/components/schemas/Connectors_run_connector_subaction_validchannelid - discriminator: - propertyName: subAction - mapping: - addEvent: >- - #/components/schemas/Connectors_run_connector_subaction_addevent - closeAlert: >- - #/components/schemas/Connectors_run_connector_subaction_closealert - closeIncident: >- - #/components/schemas/Connectors_run_connector_subaction_closeincident - createAlert: >- - #/components/schemas/Connectors_run_connector_subaction_createalert - fieldsByIssueType: >- - #/components/schemas/Connectors_run_connector_subaction_fieldsbyissuetype - getChoices: >- - #/components/schemas/Connectors_run_connector_subaction_getchoices - getFields: >- - #/components/schemas/Connectors_run_connector_subaction_getfields - getIncident: >- - #/components/schemas/Connectors_run_connector_subaction_getincident - issue: >- - #/components/schemas/Connectors_run_connector_subaction_issue - issues: >- - #/components/schemas/Connectors_run_connector_subaction_issues - issueTypes: >- - #/components/schemas/Connectors_run_connector_subaction_issuetypes - pushToService: >- - #/components/schemas/Connectors_run_connector_subaction_pushtoservice - Connectors_features: - type: string - description: | - The feature that uses the connector. - enum: - - alerting - - cases - - generativeAIForSecurity - - generativeAIForObservability - - generativeAIForSearchPlayground - - siem - - uptime - Connectors_connector_types: - title: Connector types - type: string - description: >- - The type of connector. For example, `.email`, `.index`, `.jira`, - `.opsgenie`, or `.server-log`. - enum: - - .bedrock - - .gemini - - .cases-webhook - - .d3security - - .email - - .gen-ai - - .index - - .jira - - .opsgenie - - .pagerduty - - .resilient - - .sentinelone - - .servicenow - - .servicenow-itom - - .servicenow-sir - - .server-log - - .slack - - .slack_api - - .swimlane - - .teams - - .tines - - .torq - - .webhook - - .xmatters - example: .server-log - Connectors_action_response_properties: - title: Action response properties - description: The properties vary depending on the action type. - type: object - properties: - actionTypeId: - type: string - config: - type: object - id: - type: string - isDeprecated: - type: boolean - description: Indicates whether the action type is deprecated. - isMissingSecrets: - type: boolean - description: Indicates whether secrets are missing for the action. - isPreconfigured: - type: boolean - description: Indicates whether it is a preconfigured action. - name: - type: string - Data_views_400_response: - title: Bad request - type: object - required: - - statusCode - - error - - message - properties: - statusCode: - type: number - example: 400 - error: - type: string - example: Bad Request - message: - type: string - Data_views_allownoindex: - type: boolean - description: Allows the data view saved object to exist before the data is available. - Data_views_fieldattrs: - type: object - description: A map of field attributes by field name. - properties: - count: - type: integer - description: Popularity count for the field. - customDescription: - type: string - description: Custom description for the field. - maxLength: 300 - customLabel: - type: string - description: Custom label for the field. - Data_views_fieldformats: - type: object - description: A map of field formats by field name. - Data_views_namespaces: - type: array - description: >- - An array of space identifiers for sharing the data view between multiple - spaces. - items: - type: string - default: default - Data_views_runtimefieldmap: - type: object - description: A map of runtime field definitions by field name. - required: - - script - - type - properties: - script: - type: object - properties: - source: - type: string - description: Script for the runtime field. - type: - type: string - description: Mapping type of the runtime field. - Data_views_sourcefilters: - type: array - description: The array of field names you want to filter out in Discover. - items: - type: object - required: - - value - properties: - value: + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Create saved objects + tags: + - saved objects + /api/saved_objects/_bulk_delete: + post: + deprecated: true + description: | + WARNING: When you delete a saved object, it cannot be recovered. + operationId: bulkDeleteSavedObjects + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: > + When true, force delete objects that exist in multiple namespaces. + Note that the option applies to the whole request. Use the delete + object API to specify per-object deletion behavior. TIP: Use this if + you attempted to delete objects and received an HTTP 400 error with + the following message: "Unable to delete saved object that exists in + multiple namespaces, use the force option to delete it anyway". + WARNING: When you bulk delete objects that exist in multiple + namespaces, the API also deletes legacy url aliases that reference + the object. These requests are batched to minimise the impact but + they can place a heavy load on Kibana. Make sure you limit the + number of objects that exist in multiple namespaces in a single bulk + delete operation. + in: query + name: force + schema: + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: > + Indicates a successful call. NOTE: This HTTP response code indicates + that the bulk operation succeeded. Errors pertaining to individual + objects will be returned in the response body. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Delete saved objects + tags: + - saved objects + /api/saved_objects/_bulk_get: + post: + deprecated: true + operationId: bulkGetSavedObjects + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Get saved objects + tags: + - saved objects + /api/saved_objects/_bulk_resolve: + post: + deprecated: true + description: > + Retrieve multiple Kibana saved objects by identifier using any legacy + URL aliases if they exist. Under certain circumstances when Kibana is + upgraded, saved object migrations may necessitate regenerating some + object IDs to enable new features. When an object's ID is regenerated, a + legacy URL alias is created for that object, preserving its old ID. In + such a scenario, that object can be retrieved by the bulk resolve API + using either its new ID or its old ID. + operationId: bulkResolveSavedObjects + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: > + Indicates a successful call. NOTE: This HTTP response code indicates + that the bulk operation succeeded. Errors pertaining to individual + objects will be returned in the response body. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Resolve saved objects + tags: + - saved objects + /api/saved_objects/_bulk_update: + post: + deprecated: true + description: Update the attributes for multiple Kibana saved objects. + operationId: bulkUpdateSavedObjects + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: > + Indicates a successful call. NOTE: This HTTP response code indicates + that the bulk operation succeeded. Errors pertaining to individual + objects will be returned in the response body. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Update saved objects + tags: + - saved objects + /api/saved_objects/_export: + post: + description: > + Retrieve sets of saved objects that you want to import into Kibana. + + You must include `type` or `objects` in the request body. + + + Exported saved objects are not backwards compatible and cannot be + imported into an older version of Kibana. + + + NOTE: The `savedObjects.maxImportExportSize` configuration setting + limits the number of saved objects which may be exported. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: exportSavedObjectsDefault + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + exportSavedObjectsRequest: + $ref: '#/components/examples/Saved_objects_export_objects_request' + schema: + type: object + properties: + excludeExportDetails: + default: false + description: Do not add export details entry at the end of the stream. + type: boolean + includeReferencesDeep: + description: >- + Includes all of the referenced objects in the exported + objects. + type: boolean + objects: + description: A list of objects to export. + items: + type: object + type: array + type: + description: >- + The saved object types to include in the export. Use `*` to + export all the types. + oneOf: + - type: string + - items: + type: string + type: array + required: true + responses: + '200': + content: + application/x-ndjson; Elastic-Api-Version=2023-10-31: + examples: + exportSavedObjectsResponse: + $ref: '#/components/examples/Saved_objects_export_objects_response' + schema: + additionalProperties: true + type: object + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Export saved objects + tags: + - saved objects + /api/saved_objects/_find: + get: + deprecated: true + description: Retrieve a paginated set of Kibana saved objects. + operationId: findSavedObjects + parameters: + - description: > + An aggregation structure, serialized as a string. The field format + is similar to filter, meaning that to use a saved object type + attribute in the aggregation, the `savedObjectType.attributes.title: + "myTitle"` format must be used. For root fields, the syntax is + `savedObjectType.rootField`. NOTE: As objects change in Kibana, the + results on each page of the response also change. Use the find API + for traditional paginated results, but avoid using it to export + large amounts of data. + in: query + name: aggs + schema: type: string - Data_views_timefieldname: - type: string - description: The timestamp field name, which you use for time-based data views. - Data_views_title: - type: string - description: >- - Comma-separated list of data streams, indices, and aliases that you want - to search. Supports wildcards (`*`). - Data_views_type: - type: string - description: When set to `rollup`, identifies the rollup data views. - Data_views_typemeta: - type: object + - description: The default operator to use for the `simple_query_string`. + in: query + name: default_search_operator + schema: + type: string + - description: The fields to return in the attributes key of the response. + in: query + name: fields + schema: + oneOf: + - type: string + - type: array + - description: > + The filter is a KQL string with the caveat that if you filter with + an attribute from your saved object type, it should look like that: + `savedObjectType.attributes.title: "myTitle"`. However, if you use a + root attribute of a saved object such as `updated_at`, you will have + to define your filter like that: `savedObjectType.updated_at > + 2018-12-22`. + in: query + name: filter + schema: + type: string + - description: >- + Filters to objects that do not have a relationship with the type and + identifier combination. + in: query + name: has_no_reference + schema: + type: object + - description: >- + The operator to use for the `has_no_reference` parameter. Either + `OR` or `AND`. Defaults to `OR`. + in: query + name: has_no_reference_operator + schema: + type: string + - description: >- + Filters to objects that have a relationship with the type and ID + combination. + in: query + name: has_reference + schema: + type: object + - description: >- + The operator to use for the `has_reference` parameter. Either `OR` + or `AND`. Defaults to `OR`. + in: query + name: has_reference_operator + schema: + type: string + - description: The page of objects to return. + in: query + name: page + schema: + type: integer + - description: The number of objects to return per page. + in: query + name: per_page + schema: + type: integer + - description: >- + An Elasticsearch `simple_query_string` query that filters the + objects in the response. + in: query + name: search + schema: + type: string + - description: >- + The fields to perform the `simple_query_string` parsed query + against. + in: query + name: search_fields + schema: + oneOf: + - type: string + - type: array + - description: > + Sorts the response. Includes "root" and "type" fields. "root" fields + exist for all saved objects, such as "updated_at". "type" fields are + specific to an object type, such as fields returned in the + attributes key of the response. When a single type is defined in the + type parameter, the "root" and "type" fields are allowed, and + validity checks are made in that order. When multiple types are + defined in the type parameter, only "root" fields are allowed. + in: query + name: sort_field + schema: + type: string + - description: The saved object types to include. + in: query + name: type + required: true + schema: + oneOf: + - type: string + - type: array + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Search for saved objects + tags: + - saved objects + /api/saved_objects/_import: + post: + description: > + Create sets of Kibana saved objects from a file created by the export + API. + + Saved objects can be imported only into the same version, a newer minor + on the same major, or the next major. Exported saved objects are not + backwards compatible and cannot be imported into an older version of + Kibana. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: importSavedObjectsDefault + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: > + Creates copies of saved objects, regenerates each object ID, and + resets the origin. When used, potential conflict errors are avoided. + NOTE: This option cannot be used with the `overwrite` and + `compatibilityMode` options. + in: query + name: createNewCopies + required: false + schema: + type: boolean + - description: > + Overwrites saved objects when they already exist. When used, + potential conflict errors are automatically resolved by overwriting + the destination object. NOTE: This option cannot be used with the + `createNewCopies` option. + in: query + name: overwrite + required: false + schema: + type: boolean + - description: > + Applies various adjustments to the saved objects that are being + imported to maintain compatibility between different Kibana + versions. Use this option only if you encounter issues with imported + saved objects. NOTE: This option cannot be used with the + `createNewCopies` option. + in: query + name: compatibilityMode + required: false + schema: + type: boolean + requestBody: + content: + multipart/form-data; Elastic-Api-Version=2023-10-31: + examples: + importObjectsRequest: + $ref: '#/components/examples/Saved_objects_import_objects_request' + schema: + type: object + properties: + file: + description: > + A file exported using the export API. NOTE: The + `savedObjects.maxImportExportSize` configuration setting + limits the number of saved objects which may be included in + this file. Similarly, the + `savedObjects.maxImportPayloadBytes` setting limits the + overall size of the file that can be imported. + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + importObjectsResponse: + $ref: '#/components/examples/Saved_objects_import_objects_response' + schema: + type: object + properties: + errors: + description: > + Indicates the import was unsuccessful and specifies the + objects that failed to import. + + + NOTE: One object may result in multiple errors, which + requires separate steps to resolve. For instance, a + `missing_references` error and conflict error. + items: + type: object + type: array + success: + description: > + Indicates when the import was successfully completed. When + set to false, some objects may not have been created. For + additional information, refer to the `errors` and + `successResults` properties. + type: boolean + successCount: + description: Indicates the number of successfully imported records. + type: integer + successResults: + description: > + Indicates the objects that are successfully imported, with + any metadata if applicable. + + + NOTE: Objects are created only when all resolvable errors + are addressed, including conflicts and missing references. + If objects are created as new copies, each entry in the + `successResults` array includes a `destinationId` + attribute. + items: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Import saved objects + tags: + - saved objects + /api/saved_objects/_resolve_import_errors: + post: + description: > + To resolve errors from the Import objects API, you can: + + + * Retry certain saved objects + + * Overwrite specific saved objects + + * Change references to different saved objects + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: resolveImportErrors + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: > + Applies various adjustments to the saved objects that are being + imported to maintain compatibility between different Kibana + versions. When enabled during the initial import, also enable when + resolving import errors. This option cannot be used with the + `createNewCopies` option. + in: query + name: compatibilityMode + required: false + schema: + type: boolean + - description: > + Creates copies of the saved objects, regenerates each object ID, and + resets the origin. When enabled during the initial import, also + enable when resolving import errors. + in: query + name: createNewCopies + required: false + schema: + type: boolean + requestBody: + content: + multipart/form-data; Elastic-Api-Version=2023-10-31: + examples: + resolveImportErrorsRequest: + $ref: >- + #/components/examples/Saved_objects_resolve_missing_reference_request + schema: + type: object + properties: + file: + description: The same file given to the import API. + format: binary + type: string + retries: + description: >- + The retry operations, which can specify how to resolve + different types of errors. + items: + type: object + properties: + destinationId: + description: >- + Specifies the destination ID that the imported object + should have, if different from the current ID. + type: string + id: + description: The saved object ID. + type: string + ignoreMissingReferences: + description: >- + When set to `true`, ignores missing reference errors. + When set to `false`, does nothing. + type: boolean + overwrite: + description: >- + When set to `true`, the source object overwrites the + conflicting destination object. When set to `false`, + does nothing. + type: boolean + replaceReferences: + description: >- + A list of `type`, `from`, and `to` used to change the + object references. + items: + type: object + properties: + from: + type: string + to: + type: string + type: + type: string + type: array + type: + description: The saved object type. + type: string + required: + - type + - id + type: array + required: + - retries + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + resolveImportErrorsResponse: + $ref: >- + #/components/examples/Saved_objects_resolve_missing_reference_response + schema: + type: object + properties: + errors: + description: > + Specifies the objects that failed to resolve. + + + NOTE: One object can result in multiple errors, which + requires separate steps to resolve. For instance, a + `missing_references` error and a `conflict` error. + items: + type: object + type: array + success: + description: > + Indicates a successful import. When set to `false`, some + objects may not have been created. For additional + information, refer to the `errors` and `successResults` + properties. + type: boolean + successCount: + description: | + Indicates the number of successfully resolved records. + type: number + successResults: + description: > + Indicates the objects that are successfully imported, with + any metadata if applicable. + + + NOTE: Objects are only created when all resolvable errors + are addressed, including conflict and missing references. + items: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Resolve import errors + tags: + - saved objects + '/api/saved_objects/{type}': + post: + deprecated: true + description: Create a Kibana saved object with a randomly generated identifier. + operationId: createSavedObject + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' + - description: 'If true, overwrites the document with the same identifier.' + in: query + name: overwrite + schema: + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + attributes: + $ref: '#/components/schemas/Saved_objects_attributes' + initialNamespaces: + $ref: '#/components/schemas/Saved_objects_initial_namespaces' + references: + $ref: '#/components/schemas/Saved_objects_references' + required: + - attributes + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + '409': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a conflict error. + summary: Create a saved object + tags: + - saved objects + '/api/saved_objects/{type}/{id}': + get: + deprecated: true + description: Retrieve a single Kibana saved object by identifier. + operationId: getSavedObject + parameters: + - $ref: '#/components/parameters/Saved_objects_saved_object_id' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Get a saved object + tags: + - saved objects + post: + deprecated: true description: >- - When you use rollup indices, contains the field list for the rollup data - view API endpoints. - required: - - aggs - - params - properties: - aggs: - type: object - description: A map of rollup restrictions by aggregation type and field name. - params: - type: object - description: Properties for retrieving rollup fields. - Data_views_create_data_view_request_object: - title: Create data view request - type: object - required: - - data_view - properties: - data_view: - type: object - required: - - title - description: The data view object. - properties: - allowNoIndex: - $ref: '#/components/schemas/Data_views_allownoindex' - fieldAttrs: + Create a Kibana saved object and specify its identifier instead of using + a randomly generated ID. + operationId: createSavedObjectId + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_saved_object_id' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' + - description: 'If true, overwrites the document with the same identifier.' + in: query + name: overwrite + schema: + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + attributes: + $ref: '#/components/schemas/Saved_objects_attributes' + initialNamespaces: + $ref: '#/components/schemas/Saved_objects_initial_namespaces' + references: + $ref: '#/components/schemas/Saved_objects_initial_namespaces' + required: + - attributes + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + '409': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a conflict error. + summary: Create a saved object + tags: + - saved objects + put: + deprecated: true + description: Update the attributes for Kibana saved objects. + operationId: updateSavedObject + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_saved_object_id' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_fieldattrs' - fieldFormats: - $ref: '#/components/schemas/Data_views_fieldformats' - fields: + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates the object was not found. + '409': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a conflict error. + summary: Update a saved object + tags: + - saved objects + '/api/saved_objects/resolve/{type}/{id}': + get: + deprecated: true + description: > + Retrieve a single Kibana saved object by identifier using any legacy URL + alias if it exists. Under certain circumstances, when Kibana is + upgraded, saved object migrations may necessitate regenerating some + object IDs to enable new features. When an object's ID is regenerated, a + legacy URL alias is created for that object, preserving its old ID. In + such a scenario, that object can be retrieved using either its new ID or + its old ID. + operationId: resolveSavedObject + parameters: + - $ref: '#/components/parameters/Saved_objects_saved_object_id' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Resolve a saved object + tags: + - saved objects + /api/status: + get: + operationId: '%2Fapi%2Fstatus#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: Set to "true" to get the response in v7 format. + in: query + name: v7format + required: false + schema: + type: boolean + - description: Set to "true" to get the response in v8 format. + in: query + name: v8format + required: false + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + anyOf: + - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' + - $ref: >- + #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse + description: >- + Kibana's operational status. A minimal response is sent for + unauthorized users. + description: Overall status is OK and Kibana should be functioning normally. + '503': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + anyOf: + - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' + - $ref: >- + #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse + description: >- + Kibana's operational status. A minimal response is sent for + unauthorized users. + description: >- + Kibana or some of it's essential services are unavailable. Kibana + may be degraded or unavailable. + summary: Get Kibana's current status + tags: + - system + /data_streams: + get: + operationId: data-streams-list + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + data_streams: + items: + $ref: '#/components/schemas/Fleet_data_stream' + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List data streams + tags: + - Data streams + parameters: [] + /enrollment_api_keys: + get: + operationId: get-enrollment-api-keys + parameters: [] + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - page + - perPage + - total + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List enrollment API keys + tags: + - Fleet enrollment API keys + post: + operationId: create-enrollment-api-keys + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - created + type: string + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create enrollment API key + tags: + - Fleet enrollment API keys + '/enrollment_api_keys/{keyId}': + delete: + operationId: delete-enrollment-api-key + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - deleted + type: string + required: + - action + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete enrollment API key by ID + tags: + - Fleet enrollment API keys + get: + operationId: get-enrollment-api-key + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment API key by ID + tags: + - Fleet enrollment API keys + parameters: + - in: path + name: keyId + required: true + schema: + type: string + /enrollment-api-keys: + get: + deprecated: true + operationId: get-enrollment-api-keys-deprecated + parameters: [] + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - page + - perPage + - total + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List enrollment API keys + tags: + - Fleet enrollment API keys + post: + deprecated: true + operationId: create-enrollment-api-keys-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - created + type: string + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create enrollment API key + tags: + - Fleet enrollment API keys + '/enrollment-api-keys/{keyId}': + delete: + deprecated: true + operationId: delete-enrollment-api-key-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + enum: + - deleted + type: string + required: + - action + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete enrollment API key by ID + tags: + - Fleet enrollment API keys + get: + deprecated: true + operationId: get-enrollment-api-key-deprecated + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment API key by ID + tags: + - Fleet enrollment API keys + parameters: + - in: path + name: keyId + required: true + schema: + type: string + /epm/bulk_assets: + post: + operationId: bulk-get-assets + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - id: + properties: + assetIds: + description: list of items necessary to fetch assets + items: + type: object + properties: + id: + type: string + type: + type: string + type: array + required: + - assetIds + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_get_bulk_assets_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get assets + tags: + - Elastic Package Manager (EPM) + /epm/categories: + get: + operationId: get-package-categories + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_get_categories_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List package categories + tags: + - Elastic Package Manager (EPM) + parameters: + - description: >- + Whether to include prerelease packages in categories count (e.g. beta, + rc, preview) + in: query + name: prerelease + schema: + default: false + type: boolean + - deprecated: true + in: query + name: experimental + schema: + default: false + type: boolean + - in: query + name: include_policy_templates + schema: + default: false + type: boolean + /epm/packages: + get: + operationId: list-all-packages + parameters: + - description: >- + Whether to exclude the install status of each package. Enabling this + option will opt in to caching for the response via `cache-control` + headers. If you don't need up-to-date installation info for a + package, and are querying for a list of available packages, + providing this flag can improve performance substantially. + in: query + name: excludeInstallStatus + schema: + default: false + type: boolean + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean + - deprecated: true + in: query + name: experimental + schema: + default: false + type: boolean + - in: query + name: category + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_get_packages_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List packages + tags: + - Elastic Package Manager (EPM) + post: + description: '' + operationId: install-package-by-upload + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean + requestBody: + content: + application/gzip; Elastic-Api-Version=2023-10-31: + schema: + format: binary type: string - name: + application/zip; Elastic-Api-Version=2023-10-31: + schema: + format: binary type: string - description: The data view name. - namespaces: - $ref: '#/components/schemas/Data_views_namespaces' - runtimeFieldMap: + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + _meta: + type: object + properties: + install_source: + enum: + - upload + - registry + - bundled + type: string + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + '429': + $ref: '#/components/responses/Fleet_error' + summary: Install by package by direct upload + tags: + - Elastic Package Manager (EPM) + /epm/packages/_bulk: + post: + operationId: bulk-install-packages + parameters: + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_runtimefieldmap' - sourceFilters: - $ref: '#/components/schemas/Data_views_sourcefilters' - timeFieldName: - $ref: '#/components/schemas/Data_views_timefieldname' - title: - $ref: '#/components/schemas/Data_views_title' - type: - $ref: '#/components/schemas/Data_views_type' - typeMeta: - $ref: '#/components/schemas/Data_views_typemeta' - version: - type: string - override: + properties: + force: + description: force install to ignore package verification errors + type: boolean + packages: + description: list of packages to install + items: + oneOf: + - description: package name + type: string + - type: object + properties: + name: + description: package name + type: string + version: + description: package version + type: string + type: array + required: + - packages + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_bulk_install_packages_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk install packages + tags: + - Elastic Package Manager (EPM) + '/epm/packages/{pkgkey}': + delete: + deprecated: true + operationId: delete-package-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgkey + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + response: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - response + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete ackage + tags: + - Elastic Package Manager (EPM) + get: + deprecated: true + operationId: get-package-deprecated + parameters: + - in: path + name: pkgkey + required: true + schema: + type: string + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + allOf: + - properties: + response: + $ref: '#/components/schemas/Fleet_package_info' + - properties: + savedObject: + type: string + status: + enum: + - installed + - installing + - install_failed + - not_installed + type: string + required: + - status + - savedObject + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package + tags: + - Elastic Package Manager (EPM) + post: + deprecated: true + description: '' + operationId: install-package-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgkey + required: true + schema: + type: string + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + response: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - response + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Install package + tags: + - Elastic Package Manager (EPM) + '/epm/packages/{pkgName}/{pkgVersion}': + delete: + operationId: delete-package + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: delete package even if policies used by agents + in: query + name: force + schema: + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + deprecated: true + type: object + properties: + force: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete package + tags: + - Elastic Package Manager (EPM) + get: + operationId: get-package + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + allOf: + - properties: + item: + $ref: '#/components/schemas/Fleet_package_info' + - properties: + keepPoliciesUpToDate: + type: boolean + latestVersion: + type: string + licensePath: + type: string + notice: + type: string + savedObject: + deprecated: true + type: object + status: + enum: + - installed + - installing + - install_failed + - not_installed + type: string + required: + - status + - savedObject + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: Ignore if the package is fails signature verification + in: query + name: ignoreUnverified + schema: type: boolean - description: >- - Override an existing data view if a data view with the provided - title already exists. + - description: >- + Return all fields from the package manifest, not just those supported + by the Elastic Package Registry + in: query + name: full + schema: + type: boolean + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: default: false - Data_views_typemeta_response: - type: object - description: >- - When you use rollup indices, contains the field list for the rollup data - view API endpoints. - nullable: true - properties: - aggs: - type: object - description: A map of rollup restrictions by aggregation type and field name. - params: - type: object - description: Properties for retrieving rollup fields. - Data_views_data_view_response_object: - title: Data view response properties - type: object - properties: - data_view: - type: object - properties: - allowNoIndex: - $ref: '#/components/schemas/Data_views_allownoindex' - fieldAttrs: + type: boolean + post: + description: '' + operationId: install-package + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_fieldattrs' - fieldFormats: - $ref: '#/components/schemas/Data_views_fieldformats' - fields: + properties: + force: + type: boolean + ignore_constraints: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + _meta: + type: object + properties: + install_source: + enum: + - registry + - upload + - bundled + type: string + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Install package + tags: + - Elastic Package Manager (EPM) + put: + description: '' + operationId: update-package + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - id: - type: string - example: ff959d40-b880-11e8-a6d9-e546fe2bba5f - name: - type: string - description: The data view name. - namespaces: - $ref: '#/components/schemas/Data_views_namespaces' - runtimeFieldMap: + properties: + keepPoliciesUpToDate: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update package settings + tags: + - Elastic Package Manager (EPM) + '/epm/packages/{pkgName}/{pkgVersion}/{filePath}': + get: + operationId: packages-get-file + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + body: + type: object + headers: + type: object + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package file + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - in: path + name: filePath + required: true + schema: + type: string + '/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': + post: + description: '' + operationId: reauthorize-transforms + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: >- + Whether to include prerelease packages in categories count (e.g. + beta, rc, preview) + in: query + name: prerelease + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_runtimefieldmap' - sourceFilters: - $ref: '#/components/schemas/Data_views_sourcefilters' - timeFieldName: - $ref: '#/components/schemas/Data_views_timefieldname' - title: - $ref: '#/components/schemas/Data_views_title' - typeMeta: - $ref: '#/components/schemas/Data_views_typemeta_response' - version: - type: string - example: WzQ2LDJd - Data_views_404_response: - type: object - properties: - error: + properties: + transforms: + items: + type: object + properties: + transformId: + type: string + type: array + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + error: + type: string + success: + type: boolean + transformId: + type: string + required: + - transformId + - error + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Authorize transforms + tags: + - Elastic Package Manager (EPM) + '/epm/packages/{pkgName}/stats': + get: + operationId: get-package-stats + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + response: + $ref: '#/components/schemas/Fleet_package_usage_stats' + required: + - response + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package stats + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + /epm/packages/limited: + get: + operationId: list-limited-packages + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: string + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get limited package list + tags: + - Elastic Package Manager (EPM) + parameters: [] + '/epm/templates/{pkgName}/{pkgVersion}/inputs': + get: + operationId: get-inputs-template + responses: + '200': + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get inputs template + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: type: string - example: Not Found - enum: - - Not Found - message: + - in: path + name: pkgVersion + required: true + schema: type: string - example: >- - Saved object [index-pattern/caaad6d0-920c-11ed-b36a-874bd1548a00] - not found - statusCode: - type: integer - example: 404 + - description: Format of response - json or yaml + in: query + name: format + schema: enum: - - 404 - Data_views_update_data_view_request_object: - title: Update data view request - type: object - required: - - data_view - properties: - data_view: - type: object - description: > - The data view properties you want to update. Only the specified - properties are updated in the data view. Unspecified fields stay as - they are persisted. - properties: - allowNoIndex: - $ref: '#/components/schemas/Data_views_allownoindex' - fieldFormats: - $ref: '#/components/schemas/Data_views_fieldformats' - fields: - type: object - name: - type: string - runtimeFieldMap: - type: object - additionalProperties: - $ref: '#/components/schemas/Data_views_runtimefieldmap' - sourceFilters: - $ref: '#/components/schemas/Data_views_sourcefilters' - timeFieldName: - $ref: '#/components/schemas/Data_views_timefieldname' - title: - $ref: '#/components/schemas/Data_views_title' - type: - $ref: '#/components/schemas/Data_views_type' - typeMeta: - $ref: '#/components/schemas/Data_views_typemeta' - refresh_fields: + - json + - yaml + - yml + type: string + - description: Specify if version is prerelease + in: query + name: prerelease + schema: type: boolean - description: Reloads the data view fields after the data view is updated. - default: false - Data_views_swap_data_view_request_object: - title: Data view reference swap request - type: object - required: - - fromId - - toId - properties: - delete: + - description: Ignore if the package is fails signature verification + in: query + name: ignoreUnverified + schema: type: boolean - description: Deletes referenced saved object if all references are removed. - forId: - oneOf: - - type: string - - type: array - items: - type: string - description: Limit the affected saved objects to one or more by identifier. - forType: - type: string - description: Limit the affected saved objects by type. - fromId: - type: string - description: The saved object reference to change. - fromType: - type: string - description: > - Specify the type of the saved object reference to alter. The default - value is `index-pattern` for data views. - toId: - type: string - description: New saved object reference value to replace the old value. - Machine_learning_APIs_mlSyncResponseSuccess: - type: boolean - description: The success or failure of the synchronization. - Machine_learning_APIs_mlSyncResponseAnomalyDetectors: - type: object - title: Sync API response for anomaly detection jobs - description: >- - The sync machine learning saved objects API response contains this - object when there are anomaly detection jobs affected by the - synchronization. There is an object for each relevant job, which - contains the synchronization status. - properties: - success: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' - Machine_learning_APIs_mlSyncResponseDatafeeds: - type: object - title: Sync API response for datafeeds - description: >- - The sync machine learning saved objects API response contains this - object when there are datafeeds affected by the synchronization. There - is an object for each relevant datafeed, which contains the - synchronization status. - properties: - success: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' - Machine_learning_APIs_mlSyncResponseDataFrameAnalytics: - type: object - title: Sync API response for data frame analytics jobs - description: >- - The sync machine learning saved objects API response contains this - object when there are data frame analytics jobs affected by the - synchronization. There is an object for each relevant job, which - contains the synchronization status. - properties: - success: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' - Machine_learning_APIs_mlSyncResponseSavedObjectsCreated: - type: object - title: Sync API response for created saved objects - description: >- - If saved objects are missing for machine learning jobs or trained - models, they are created when you run the sync machine learning saved - objects API. - properties: - anomaly-detector: - type: object - description: >- - If saved objects are missing for anomaly detection jobs, they are - created. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseAnomalyDetectors - data-frame-analytics: - type: object - description: >- - If saved objects are missing for data frame analytics jobs, they are - created. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseDataFrameAnalytics - trained-model: - type: object - description: If saved objects are missing for trained models, they are created. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseTrainedModels - Machine_learning_APIs_mlSyncResponseSavedObjectsDeleted: - type: object - title: Sync API response for deleted saved objects - description: >- - If saved objects exist for machine learning jobs or trained models that - no longer exist, they are deleted when you run the sync machine learning - saved objects API. - properties: - anomaly-detector: - type: object - description: >- - If there are saved objects exist for nonexistent anomaly detection - jobs, they are deleted. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseAnomalyDetectors - data-frame-analytics: - type: object - description: >- - If there are saved objects exist for nonexistent data frame - analytics jobs, they are deleted. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseDataFrameAnalytics - trained-model: - type: object - description: >- - If there are saved objects exist for nonexistent trained models, - they are deleted. - additionalProperties: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseTrainedModels - Machine_learning_APIs_mlSyncResponseTrainedModels: - type: object - title: Sync API response for trained models - description: >- - The sync machine learning saved objects API response contains this - object when there are trained models affected by the synchronization. - There is an object for each relevant trained model, which contains the - synchronization status. - properties: - success: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' - Machine_learning_APIs_mlSync200Response: - type: object - title: Successful sync API response - properties: - datafeedsAdded: - type: object - description: >- - If a saved object for an anomaly detection job is missing a datafeed - identifier, it is added when you run the sync machine learning saved - objects API. - additionalProperties: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseDatafeeds' - datafeedsRemoved: - type: object - description: >- - If a saved object for an anomaly detection job references a datafeed - that no longer exists, it is deleted when you run the sync machine - learning saved objects API. - additionalProperties: - $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseDatafeeds' - savedObjectsCreated: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseSavedObjectsCreated - savedObjectsDeleted: - $ref: >- - #/components/schemas/Machine_learning_APIs_mlSyncResponseSavedObjectsDeleted - Machine_learning_APIs_mlSync4xxResponse: - type: object - title: Unsuccessful sync API response - properties: - error: + /epm/verification_key_id: + get: + operationId: packages-get-verification-key-id + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + body: + type: object + properties: + id: + description: >- + the key ID of the GPG key used to verify package + signatures + nullable: true + type: string + headers: + type: object + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package signature verification key ID + tags: + - Elastic Package Manager (EPM) + parameters: [] + /fleet_server_hosts: + get: + operationId: get-fleet-server-hosts + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_fleet_server_host' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List Fleet Server hosts + tags: + - Fleet Server hosts + post: + operationId: post-fleet-server-hosts + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host_urls: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this fleet server host. See + the proxies API for more information. + type: string + required: + - name + - host_urls + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create Fleet Server host + tags: + - Fleet Server hosts + '/fleet_server_hosts/{itemId}': + delete: + operationId: delete-fleet-server-hosts + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete Fleet Server host by ID + tags: + - Fleet Server hosts + get: + operationId: get-one-fleet-server-hosts + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get Fleet Server host by ID + tags: + - Fleet Server hosts + parameters: + - in: path + name: itemId + required: true + schema: type: string - example: Unauthorized - message: + put: + operationId: update-fleet-server-hosts + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host_urls: + items: + type: string + type: array + is_default: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this fleet server host. See + the proxies API for more information. + nullable: true + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update Fleet Server host by ID + tags: + - Fleet Server hosts + /health_check: + post: + operationId: fleet-server-health-check + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + deprecated: true + type: string + id: + type: string + required: + - id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + deprecated: true + type: string + id: + description: Fleet Server host id + type: string + status: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Fleet Server health check + tags: + - Fleet internals + /kubernetes: + get: + operationId: get-full-k8s-manifest + parameters: + - in: query + name: download + required: false + schema: + type: boolean + - in: query + name: fleetServer + required: false + schema: + type: string + - in: query + name: enrolToken + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get full K8s agent manifest + tags: + - Fleet Kubernetes + /logstash_api_keys: + post: + operationId: generate-logstash-api-key + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + api_key: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Generate Logstash API key + tags: + - Fleet outputs + /outputs: + get: + operationId: get-outputs + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_output_create_request' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List outputs + tags: + - Fleet outputs + post: + operationId: post-outputs + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_output_create_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_output_create_request' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create output + tags: + - Fleet outputs + '/outputs/{outputId}': + delete: + operationId: delete-output + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete output by ID + tags: + - Fleet outputs + get: + operationId: get-output + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_output_create_request' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get output by ID + tags: + - Fleet outputs + parameters: + - in: path + name: outputId + required: true + schema: type: string - statusCode: - type: integer - example: 401 - Saved_objects_400_response: - title: Bad request - type: object - required: - - error - - message - - statusCode - properties: - error: + put: + operationId: update-output + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_output_update_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_output_update_request' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update output by ID + tags: + - Fleet outputs + '/outputs/{outputId}/health': + get: + operationId: get-output-health + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + message: + description: long message if unhealthy + type: string + state: + description: 'state of output, HEALTHY or DEGRADED' + type: string + timestamp: + description: timestamp of reported state + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get latest output health + tags: + - Fleet outputs + parameters: + - in: path + name: outputId + required: true + schema: + type: string + /package_policies: + get: + operationId: get-package-policies + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_format' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List package policies + tags: + - Fleet package policies + parameters: [] + post: + operationId: create-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_format' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_package_policy_request' + description: >- + You should use inputs as an object and not use the deprecated inputs + array. + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_package_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + '409': + $ref: '#/components/responses/Fleet_error' + summary: Create package policy + tags: + - Fleet package policies + /package_policies/_bulk_get: + post: + operationId: bulk-get-package-policies + parameters: + - $ref: '#/components/parameters/Fleet_format' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + ids: + description: list of package policy ids + items: + type: string + type: array + ignoreMissing: + type: boolean + required: + - ids + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get package policies + tags: + - Fleet package policies + '/package_policies/{packagePolicyId}': + delete: + operationId: delete-package-policy + parameters: + - in: query + name: force + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete package policy by ID + tags: + - Fleet package policies + get: + operationId: get-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_format' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_package_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package policy by ID + tags: + - Fleet package policies + parameters: + - in: path + name: packagePolicyId + required: true + schema: type: string - enum: - - Bad Request - message: + put: + operationId: update-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_format' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_package_policy_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_package_policy' + sucess: + type: boolean + required: + - item + - sucess + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update package policy by ID + tags: + - Fleet package policies + /package_policies/delete: + post: + operationId: post-delete-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean + packagePolicyIds: + items: + type: string + type: array + required: + - packagePolicyIds + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete package policy + tags: + - Fleet package policies + /package_policies/upgrade: + post: + operationId: upgrade-package-policy + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + packagePolicyIds: + items: + type: string + type: array + required: + - packagePolicyIds + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + '409': + $ref: '#/components/responses/Fleet_error' + summary: Upgrade package policy to a newer package version + tags: + - Fleet package policies + /package_policies/upgrade/dryrun: + post: + operationId: upgrade-package-policy-dry-run + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + packagePolicyIds: + items: + type: string + type: array + packageVersion: + type: string + required: + - packagePolicyIds + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + properties: + agent_diff: + $ref: '#/components/schemas/Fleet_upgrade_agent_diff' + diff: + $ref: '#/components/schemas/Fleet_upgrade_diff' + hasErrors: + type: boolean + required: + - hasErrors + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Dry run package policy upgrade + tags: + - Fleet package policies + /proxies: + get: + operationId: get-fleet-proxies + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_proxies' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List proxies + tags: + - Fleet proxies + post: + operationId: post-fleet-proxies + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + id: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string + required: + - name + - url + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_proxies' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create proxy + tags: + - Fleet proxies + '/proxies/{itemId}': + delete: + operationId: delete-fleet-proxies + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete proxy by ID + tags: + - Fleet proxies + get: + operationId: get-one-fleet-proxies + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_proxies' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get proxy by ID + tags: + - Fleet proxies + parameters: + - in: path + name: itemId + required: true + schema: type: string - statusCode: - type: integer - enum: - - 400 - Saved_objects_attributes: - type: object + put: + operationId: update-fleet-proxies + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_proxies' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update proxy by ID + tags: + - Fleet proxies + '/s/{spaceId}/api/observability/slos': + get: description: > - The data that you want to create. WARNING: When you create saved - objects, attributes are not validated, which allows you to pass - arbitrary and ill-formed data into the API that can break Kibana. Make - sure any data that you send to the API is properly formed. - Saved_objects_initial_namespaces: - type: array + You must have the `read` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: findSlosOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - description: A valid kql query to filter the SLO with + example: 'slo.name:latency* and slo.tags : "prod"' + in: query + name: kqlQuery + schema: + type: string + - description: 'The page to use for pagination, must be greater or equal than 1' + example: 1 + in: query + name: page + schema: + default: 1 + type: integer + - description: Number of SLOs returned by page + example: 25 + in: query + name: perPage + schema: + default: 25 + maximum: 5000 + type: integer + - description: Sort by field + example: status + in: query + name: sortBy + schema: + default: status + enum: + - sli_value + - status + - error_budget_consumed + - error_budget_remaining + type: string + - description: Sort order + example: asc + in: query + name: sortDirection + schema: + default: asc + enum: + - asc + - desc + type: string + - description: >- + Hide stale SLOs from the list as defined by stale SLO threshold in + SLO settings + in: query + name: hideStale + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_find_slo_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Get a paginated list of SLOs + tags: + - slo + post: description: > - Identifiers for the spaces in which this object is created. If this is - provided, the object is created only in the explicitly defined spaces. - If this is not provided, the object is created in the current space - (default behavior). For shareable object types (registered with - `namespaceType: 'multiple'`), this option can be used to specify one or - more spaces, including the "All spaces" identifier ('*'). For isolated - object types (registered with `namespaceType: 'single'` or - `namespaceType: 'multiple-isolated'`), this option can only be used to - specify a single space, and the "All spaces" identifier ('*') is not - allowed. For global object types (`registered with `namespaceType: - agnostic`), this option cannot be used. - Saved_objects_references: - type: array + You must have `all` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: createSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_create_slo_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_create_slo_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '409': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_409_response' + description: Conflict - The SLO id already exists + summary: Create an SLO + tags: + - slo + '/s/{spaceId}/api/observability/slos/_delete_instances': + post: + description: > + The deletion occurs for the specified list of `sloId` and `instanceId`. + You must have `all` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: deleteSloInstancesOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_delete_slo_instances_request' + required: true + responses: + '204': + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + summary: Batch delete rollup and summary data + tags: + - slo + '/s/{spaceId}/api/observability/slos/{sloId}': + delete: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: deleteSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + responses: + '204': + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Delete an SLO + tags: + - slo + get: + description: > + You must have the `read` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: getSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + - description: the specific instanceId used by the summary calculation + example: host-abcde + in: query + name: instanceId + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_slo_with_summary_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Get an SLO + tags: + - slo + put: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: updateSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_update_slo_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_slo_definition_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Update an SLO + tags: + - slo + '/s/{spaceId}/api/observability/slos/{sloId}/_reset': + post: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: resetSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + responses: + '204': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_slo_definition_response' + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Reset an SLO + tags: + - slo + '/s/{spaceId}/api/observability/slos/{sloId}/disable': + post: description: > - Objects with `name`, `id`, and `type` properties that describe the other - saved objects that this object references. Use `name` in attributes to - refer to the other saved object, but never the `id`, which can update - automatically during migrations or import and export. - Kibana_HTTP_APIs_core_status_redactedResponse: - additionalProperties: false - description: A minimal representation of Kibana's operational status. - properties: - status: - additionalProperties: false - properties: - overall: - additionalProperties: false + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: disableSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + responses: + '200': + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Disable an SLO + tags: + - slo + '/s/{spaceId}/api/observability/slos/{sloId}/enable': + post: + description: > + You must have the `write` privileges for the **SLOs** feature in the + **Observability** section of the Kibana feature privileges. + operationId: enableSloOp + parameters: + - $ref: '#/components/parameters/SLOs_kbn_xsrf' + - $ref: '#/components/parameters/SLOs_space_id' + - $ref: '#/components/parameters/SLOs_slo_id' + responses: + '204': + description: Successful request + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_400_response' + description: Bad request + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_401_response' + description: Unauthorized response + '403': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_403_response' + description: Unauthorized response + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/SLOs_404_response' + description: Not found response + summary: Enable an SLO + tags: + - slo + /service_tokens: + post: + operationId: generate-service-token + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + value: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create service token + tags: + - Fleet service tokens + /service-tokens: + post: + deprecated: true + operationId: generate-service-token-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + value: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create service token + tags: + - Fleet service tokens + /settings: + get: + operationId: get-settings + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_settings_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get settings + tags: + - Fleet internals + put: + operationId: update-settings + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object properties: - level: - description: Service status levels as human and machine readable values. - enum: - - available - - degraded - - unavailable - - critical + additional_yaml_config: type: string - required: - - level - type: object - required: - - overall - type: object - required: - - status - type: object - Kibana_HTTP_APIs_core_status_response: - additionalProperties: false - description: >- - Kibana's operational status as well as a detailed breakdown of plugin - statuses indication of various loads (like event loop utilization and - network traffic) at time of request. - properties: - metrics: - additionalProperties: false - description: Metric groups collected by Kibana. - properties: - collection_interval_in_millis: - description: The interval at which metrics should be collected. + fleet_server_hosts: + description: Protocol and path must be the same for each URL + items: + type: string + type: array + has_seen_add_data_notice: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_settings_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update settings + tags: + - Fleet internals + /settings/enrollment: + get: + operationId: get-enrollment-settings + parameters: + - description: >- + An agent policy ID to scope the enrollment settings to. For example, + that policy's Fleet Server host, its proxy, download location, etc. + If not provided, the default Fleet Server policy is used (if any). + in: query + name: agentPolicyId + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_settings_enrollment_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment settings + tags: + - Fleet internals + /setup: + post: + operationId: setup + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_setup_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + '500': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + message: + type: string + description: Internal Server Error + summary: Initiate Fleet setup + tags: + - Fleet internals + /uninstall_tokens: + get: + operationId: get-uninstall-tokens + parameters: + - description: The number of items to return + in: query + name: perPage + required: false + schema: + default: 20 + minimum: 5 + type: integer + - $ref: '#/components/parameters/Fleet_page_index' + - description: Partial match filtering for policy IDs + in: query + name: policyId + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + created_at: + type: string + id: + type: string + policy_id: + type: string + required: + - id + - policy_id + - created_at + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - total + - page + - perPage + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List metadata for latest uninstall tokens per agent policy + tags: + - Fleet uninstall tokens + '/uninstall_tokens/{uninstallTokenId}': + get: + operationId: get-uninstall-token + parameters: + - in: path + name: uninstallTokenId + required: true + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + type: object + properties: + created_at: + type: string + id: + type: string + policy_id: + type: string + token: + type: string + required: + - id + - token + - policy_id + - created_at + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get one decrypted uninstall token by its ID + tags: + - Fleet uninstall tokens +components: + examples: + Alerting_get_health_response: + summary: Retrieve information about the health of the alerting framework. + value: + alerting_framework_health: + decryption_health: + status: ok + timestamp: '2023-01-13T01:28:00.280Z' + execution_health: + status: ok + timestamp: '2023-01-13T01:28:00.280Z' + read_health: + status: ok + timestamp: '2023-01-13T01:28:00.280Z' + has_permanent_encryption_key: true + is_sufficiently_secure: true + Alerting_get_rule_types_response: + summary: Retrieve rule types associated with Kibana machine learning features + value: + - action_groups: + - id: anomaly_score_match + name: Anomaly score matched the condition + - id: recovered + name: Recovered + action_variables: + context: + - description: The bucket timestamp of the anomaly + name: timestamp + - description: The bucket time of the anomaly in ISO8601 format + name: timestampIso8601 + - description: List of job IDs that triggered the alert + name: jobIds + - description: Alert info message + name: message + - description: Indicate if top hits contain interim results + name: isInterim + - description: Anomaly score at the time of the notification action + name: score + - description: Top records + name: topRecords + - description: Top influencers + name: topInfluencers + - description: URL to open in the Anomaly Explorer + name: anomalyExplorerUrl + useWithTripleBracesInTemplates: true + params: [] + state: [] + alerts: + context: ml.anomaly-detection + mappings: + fieldMap: + kibana.alert.anomaly_score: + array: false + type: double + required: false + kibana.alert.anomaly_timestamp: + array: false + type: date + required: false + kibana.alert.is_interim: + array: false + type: boolean + required: false + kibana.alert.job_id: + array: false + type: keyword + required: true + kibana.alert.top_influencers: + array: true + dynamic: false + type: object + properties: + influencer_field_name: + type: keyword + influencer_field_value: + type: keyword + influencer_score: + type: double + initial_influencer_score: + type: double + is_interim: + type: boolean + job_id: + type: keyword + timestamp: + type: date + required: false + kibana.alert.top_records: + array: true + dynamic: false + type: object + properties: + actual: + type: double + by_field_name: + type: keyword + by_field_value: + type: keyword + detector_index: + type: integer + field_name: + type: keyword + function: + type: keyword + initial_record_score: + type: double + is_interim: + type: boolean + job_id: + type: keyword + over_field_name: + type: keyword + over_field_value: + type: keyword + partition_field_name: + type: keyword + partition_field_value: + type: keyword + record_score: + type: double + timestamp: + type: date + typical: + type: double + required: false + shouldWrite: true + authorized_consumers: + alerts: + all: true + read: true + apm: + all: true + read: true + discover: + all: true + read: true + infrastructure: + all: true + read: true + logs: + all: true + read: true + ml: + all: true + read: true + monitoring: + all: true + read: true + siem: + all: true + read: true + slo: + all: true + read: true + stackAlerts: + all: true + read: true + uptime: + all: true + read: true + category: management + default_action_group_id: anomaly_score_match + does_set_recovery_context: true + enabled_in_license: true + has_alerts_mappings: true + has_fields_for_a_a_d: false + id: xpack.ml.anomaly_detection_alert + is_exportable: true + minimum_license_required: platinum + name: Anomaly detection alert + producer: ml + recovery_action_group: + id: recovered + name: Recovered + rule_task_timeout: 5m + - action_groups: + - id: anomaly_detection_realtime_issue + name: Issue detected + - id: recovered + name: Recovered + action_variables: + context: + - description: Results of the rule execution + name: results + - description: Alert info message + name: message + params: [] + state: [] + authorized_consumers: + alerts: + all: true + read: true + apm: + all: true + read: true + discover: + all: true + read: true + infrastructure: + all: true + read: true + logs: + all: true + read: true + ml: + all: true + read: true + monitoring: + all: true + read: true + siem: + all: true + read: true + slo: + all: true + read: true + stackAlerts: + all: true + read: true + uptime: + all: true + read: true + category: management + default_action_group_id: anomaly_detection_realtime_issue + does_set_recovery_context: true + enabled_in_license: true + has_alerts_mappings: false + has_fields_for_a_a_d: false + id: xpack.ml.anomaly_detection_jobs_health + is_exportable: true + minimum_license_required: platinum + name: Anomaly detection jobs health + producer: ml + recovery_action_group: + id: recovered + name: Recovered + rule_task_timeout: 5m + Cases_add_comment_request: + summary: Adds a comment to a case. + value: + comment: A new comment. + owner: cases + type: user + Cases_add_comment_response: + summary: >- + The add comment to case API returns a JSON object that contains details + about the case and its comments. + value: + assignees: [] + category: null + closed_at: null + closed_by: null + comments: + - comment: A new comment. + created_at: '2022-10-02T00:49:47.716Z' + created_by: + email: null + full_name: null + username: elastic + id: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 + owner: cases + type: user + version: WzIwNDMxLDFd + connector: + fields: null + id: none + name: none + type: .none + created_at: '2022-03-24T00:37:03.906Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: Field value + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + type: toggle + value: true + description: A case description. + duration: null + external_service: null + id: 293f1bc0-74f6-11ea-b83a-553aecdb28b6 + owner: cases + settings: + syncAlerts: false + severity: low + status: open + tags: + - tag 1 + title: Case title 1 + totalAlerts: 0 + totalComment: 1 + updated_at: '2022-06-03T00:49:47.716Z' + updated_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + version: WzIzMzgsMV0= + Cases_create_case_request: + summary: Create a security case that uses a Jira connector. + value: + connector: + fields: + issueType: '10006' + parent: null + priority: High + id: 131d4448-abe0-4789-939d-8ef60680b498 + name: My connector + type: .jira + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: My field value + description: A case description. + owner: cases + settings: + syncAlerts: true + tags: + - tag-1 + title: Case title 1 + Cases_create_case_response: + summary: >- + The create case API returns a JSON object that contains details about + the case. + value: + assignees: [] + closed_at: null + closed_by: null + comments: [] + connector: + fields: + issueType: '10006' + parent: null + priority: High + id: 131d4448-abe0-4789-939d-8ef60680b498 + name: My connector + type: .jira + created_at: '2022-10-13T15:33:50.604Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: My field value + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + type: toggle + value: null + description: A case description. + duration: null + external_service: null + id: 66b9aa00-94fa-11ea-9f74-e7e108796192 + owner: cases + settings: + syncAlerts: true + severity: low + status: open + tags: + - tag 1 + title: Case title 1 + totalAlerts: 0 + totalComment: 0 + updated_at: null + updated_by: null + version: WzUzMiwxXQ== + Cases_find_case_activity_response: + summary: Retrieves all activity for a case + value: + page: 1 + perPage: 20 + total: 3 + userActions: + - action: create + comment_id: null + created_at: '2023-10-20T01:17:22.150Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + id: b4cd0770-07c9-11ed-a5fd-47154cb8767e + owner: cases + payload: + assignees: [] + category: null + connector: + fields: null + id: none + name: none + type: .none + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: My field value + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + type: toggle + value: null + description: A case description. + owner: cases + settings: + syncAlerts: false + severity: low + status: open + tags: + - tag 1 + title: Case title 1 + type: create_case + version: WzM1ODg4LDFd + - action: create + comment_id: 578608d0-03b1-11ed-920c-974bfa104448 + created_at: '2023-10-14T20:12:53.354Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + id: 57af14a0-03b1-11ed-920c-974bfa104448 + owner: cases + payload: + comment: A new comment + owner: cases + type: user + type: comment + version: WzM1ODg4LDFa + - action: add + comment_id: null + created_at: '2023-10-20T01:10:28.238Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + id: 573c6980-6123-11ed-aa41-81a0a61fe447 + owner: cases + payload: + assignees: + uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + type: assignees + version: WzM1ODg4LDFb + Cases_find_case_response: + summary: >- + Retrieve the first five cases with the `tag-1` tag, in ascending order + by last update time. + value: + cases: + - assignees: [] + category: null + closed_at: null + closed_by: null + comments: [] + connector: + fields: null + id: none + name: none + type: .none + created_at: '2023-10-12T00:16:36.371Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: My field value + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + type: toggle + value: null + description: Case description + duration: null + external_service: null + id: abed3a70-71bd-11ea-a0b2-c51ea50a58e2 + owner: cases + settings: + syncAlerts: true + severity: low + status: open + tags: + - tag-1 + title: Case title + totalAlerts: 0 + totalComment: 1 + updated_at: '2023-10-12T00:27:58.162Z' + updated_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + version: WzExMCwxXQ== + count_closed_cases: 0 + count_in_progress_cases: 0 + count_open_cases: 1 + page: 1 + per_page: 5 + total: 1 + Cases_find_connector_response: + summary: Retrieve information about the connectors and their settings. + value: + - actionTypeId: .jira + config: + apiUrl: 'https://elastic.atlassian.net/' + projectKey: ES + id: 61787f53-4eee-4741-8df6-8fe84fa616f7 + isDeprecated: false + isMissingSecrets: false + isPreconfigured: false + name: my-Jira + referencedByCount: 0 + Cases_get_case_alerts_response: + summary: Retrieves all alerts attached to a case + value: + - attached_at: '2022-07-25T20:09:40.963Z' + id: f6a7d0c3-d52d-432c-b2e6-447cd7fce04d + index: .alerts-observability.logs.alerts-default + Cases_get_case_configuration_response: + summary: Get the case configuration. + value: + - closure_type: close-by-user + connector: + fields: null + id: none + name: none + type: .none + created_at: '2024-07-01T17:07:17.767Z' + created_by: + email: null + full_name: null + username: elastic + customFields: + - defaultValue: Custom text field value. + key: d312efda-ec2b-42ec-9e2c-84981795c581 + label: my-text-field + type: text + required: false + error: null + id: 856ee650-6c82-11ee-a20a-6164169afa58 + mappings: [] + owner: cases + templates: + - caseFields: + assignees: + - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + category: Default-category + connector: + fields: null + id: none + name: none + type: .none + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: Default text field value. + description: A default description for cases. + settings: + syncAlerts: false + tags: + - Default case tag + title: Default case title + description: A description of the template. + key: 505932fe-ee3a-4960-a661-c781b5acdb05 + name: template-1 + tags: + - Template tag 1 + updated_at: null + updated_by: null + version: WzEyLDNd + Cases_get_case_observability_response: + summary: >- + Retrieves information about an Observability case including its alerts + and comments. + value: + assignees: + - uid: u_0wpfV1MqYDaXzLtRVY-gLMrddKDEmfz51Fszhj7hWC8_0 + category: null + closed_at: null + closed_by: null + comments: + - alertId: + - a6e12ac4-7bce-457b-84f6-d7ce8deb8446 + created_at: '2023-11-06T19:29:38.424Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + id: 59d438d0-79a9-4864-8d4b-e63adacebf6e + index: + - .internal.alerts-observability.logs.alerts-default-000001 + owner: observability + pushed_at: null + pushed_by: null + rule: + id: 03e4eb87-62ca-4e5d-9570-3d7625e9669d + name: Observability rule + type: alert + updated_at: null + updated_by: null + version: WzY3LDJd + - comment: The first comment. + created_at: '2023-11-06T19:29:57.812Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + id: d99342d3-3aa3-4b80-90ec-a702607604f5 + owner: observability + pushed_at: null + pushed_by: null + type: user + updated_at: null + updated_by: null + version: WzcyLDJd + connector: + fields: null + id: none + name: none + type: .none + created_at: '2023-11-06T19:29:04.086Z' + created_by: + email: null + full_name: null + username: elastic + customFields: [] + description: An Observability case description. + duration: null + external_service: null + id: c3ff7550-def1-4e90-b6bc-c9969a4a09b1 + owner: observability + settings: + syncAlerts: false + severity: low + status: in-progress + tags: + - observability + - tag 1 + title: Observability case title 1 + totalAlerts: 1 + totalComment: 1 + updated_at: '2023-11-06T19:47:55.662Z' + updated_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + version: WzI0NywyXQ== + Cases_get_case_response: + summary: Retrieves information about a case including its comments. + value: + assignees: + - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + category: null + closed_at: null + closed_by: null + comments: + - comment: A new comment + created_at: '2023-10-13T15:40:32.335Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + id: 2134c1d0-02c2-11ed-85f2-4f7c222ca2fa + owner: cases + pushed_at: null + pushed_by: null + type: user + updated_at: null + updated_by: null + version: WzM3LDFd + connector: + fields: null + id: none + name: none + type: .none + created_at: '2023-10-13T15:33:50.604Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: My field value + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + type: toggle + value: null + description: A case description + duration: null + external_service: null + id: 31cdada0-02c1-11ed-85f2-4f7c222ca2fa + owner: cases + settings: + syncAlerts: true + severity: low + status: open + tags: + - tag 1 + title: Case title 1 + totalAlerts: 0 + totalComment: 1 + updated_at: '2023-10-13T15:40:32.335Z' + updated_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + version: WzM2LDFd + Cases_get_comment_response: + summary: A single user comment retrieved from a case + value: + comment: A new comment + created_at: '2023-10-07T19:32:13.104Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + id: 8048b460-fe2b-11ec-b15d-779a7c8bbcc3 + owner: cases + pushed_at: null + pushed_by: null + type: user + updated_at: null + updated_by: null + version: WzIzLDFd + Cases_get_reporters_response: + summary: A list of two users that opened cases + value: + - email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + - email: jdoe@example.com + full_name: Jane Doe + profile_uid: u_0wpfV1MqYDaXzLtRVY-gLMrddKDEmfz51Fszhj7hWC8_0 + username: jdoe + Cases_get_tags_response: + summary: A list of tags that are used in cases + value: + - observability + - security + - tag 1 + - tag 2 + Cases_push_case_response: + summary: >- + The push case API returns a JSON object with details about the case and + the external service. + value: + closed_at: null + closed_by: null + comments: [] + connector: + fields: + issueType: '10006' + parent: null + priority: Low + id: 09f8c0b0-0eda-11ed-bd18-65557fe66949 + name: My connector + type: .jira + created_at: '2022-07-29T00:59:39.444Z' + created_by: + email: null + full_name: null + username: elastic + description: A case description. + duration: null + external_service: + connector_id: 09f8c0b0-0eda-11ed-bd18-65557fe66949 + connector_name: My connector + external_id: '71926' + external_title: ES-554 + external_url: 'https://cases.jira.com' + pushed_at: '2022-07-29T01:20:58.436Z' + pushed_by: + email: null + full_name: null + username: elastic + id: b917f300-0ed9-11ed-bd18-65557fe66949 + owner: cases + settings: + syncAlerts: true + severity: low + status: open + tags: + - tag 1 + title: Case title 1 + totalAlerts: 0 + totalComment: 0 + updated_at: '2022-07-29T01:20:58.436Z' + updated_by: + email: null + full_name: null + username: elastic + version: WzE3NjgsM10= + Cases_set_case_configuration_request: + summary: >- + Set the closure type, custom fields, and default connector for Stack + Management cases. + value: + closure_type: close-by-user + connector: + fields: null + id: 5e656730-e1ca-11ec-be9b-9b1838238ee6 + name: my-jira-connector + type: .jira + customFields: + - defaultValue: My custom field default value. + key: d312efda-ec2b-42ec-9e2c-84981795c581 + label: my-text-field + type: text + required: false + owner: cases + templates: + - caseFields: + assignees: + - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + category: Default-category + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: A text field value for the template. + description: A default description for cases. + tags: + - Default case tag + title: Default case title + description: A description of the template. + key: 505932fe-ee3a-4960-a661-c781b5acdb05 + name: template-1 + tags: + - Template tag 1 + Cases_set_case_configuration_response: + summary: This is an example response for case settings. + value: + closure_type: close-by-user + connector: + fields: null + id: 5e656730-e1ca-11ec-be9b-9b1838238ee6 + name: my-jira-connector + type: .jira + created_at: '2024-07-01T17:07:17.767Z' + created_by: + email: 'null,' + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + customFields: + - defaultValue: My custom field default value. + key: d312efda-ec2b-42ec-9e2c-84981795c581 + label: my-text-field + type: text + required: false + error: null + id: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 + mappings: + - action_type: overwrite + source: title + target: summary + - action_type: overwrite + source: description + target: description + - action_type: append + source: comments + target: comments + - action_type: overwrite + source: tags + target: labels + owner: cases + templates: + - caseFields: + assignees: + - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + category: Default-category + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: A text field value for the template. + description: A default description for cases. + tags: + - Default case tag + title: Default case title + description: A description of the template. + key: 505932fe-ee3a-4960-a661-c781b5acdb05 + name: template-1 + tags: + - Template tag 1 + updated_at: null + updated_by: null + version: WzIwNzMsMV0= + Cases_update_case_configuration_request: + summary: Update the case settings. + value: + closure_type: close-by-user + connector: + fields: null + id: 5e656730-e1ca-11ec-be9b-9b1838238ee6 + name: my-jira-connector + type: .jira + customFields: + - defaultValue: A new default value. + key: d312efda-ec2b-42ec-9e2c-84981795c581 + label: my-text-field + type: text + required: true + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + label: my-toggle + type: toggle + required: false + version: WzExOSw0XQ== + Cases_update_case_configuration_response: + summary: This is an example response when the case configuration was updated. + value: + closure_type: close-by-user + connector: + fields: null + id: 5e656730-e1ca-11ec-be9b-9b1838238ee6 + name: my-jira-connector + type: .jira + created_at: '2024-07-01T17:07:17.767Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + customFields: + - defaultValue: A new default value. + key: d312efda-ec2b-42ec-9e2c-84981795c581 + label: my-text-field + type: text + required: true + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + label: my-toggle + type: toggle + required: false + error: null + id: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 + mappings: + - action_type: overwrite + source: title + target: summary + - action_type: overwrite + source: description + target: description + - action_type: overwrite + source: tags + target: labels + - action_type: append + source: comments + target: comments + owner: cases + templates: [] + updated_at: '2024-07-19T00:52:42.401Z' + updated_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + version: WzI2LDNd + Cases_update_case_request: + summary: 'Update the case description, tags, and connector.' + value: + cases: + - connector: + fields: + issueType: '10006' + parent: null + priority: null + id: 131d4448-abe0-4789-939d-8ef60680b498 + name: My connector + type: .jira + customFields: + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + type: toggle + value: false + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: My new field value + description: A case description. + id: a18b38a0-71b0-11ea-a0b2-c51ea50a58e2 + settings: + syncAlerts: true + tags: + - tag-1 + version: WzIzLDFd + Cases_update_case_response: + summary: >- + This is an example response when the case description, tags, and + connector were updated. + value: + - assignees: [] + category: null + closed_at: null + closed_by: null + comments: [] + connector: + fields: + issueType: '10006' + parent: null + priority: null + id: 131d4448-abe0-4789-939d-8ef60680b498 + name: My connector + type: .jira + created_at: '2023-10-13T09:16:17.416Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: My new field value + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + type: toggle + value: false + description: A case description. + duration: null + external_service: + connector_id: 05da469f-1fde-4058-99a3-91e4807e2de8 + connector_name: Jira + external_id: '10003' + external_title: IS-4 + external_url: 'https://hms.atlassian.net/browse/IS-4' + pushed_at: '2023-10-13T09:20:40.672Z' + pushed_by: + email: null + full_name: null + username: elastic + id: 66b9aa00-94fa-11ea-9f74-e7e108796192 + owner: cases + settings: + syncAlerts: true + severity: low + status: open + tags: + - tag-1 + title: Case title 1 + totalAlerts: 0 + totalComment: 0 + updated_at: '2023-10-13T09:48:33.043Z' + updated_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + version: WzU0OCwxXQ== + Cases_update_comment_request: + summary: Updates a comment of a case. + value: + comment: An updated comment. + id: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 + owner: cases + type: user + version: Wzk1LDFd + Cases_update_comment_response: + summary: >- + The add comment to case API returns a JSON object that contains details + about the case and its comments. + value: + assignees: [] + category: null + closed_at: null + closed_by: null + comments: + - comment: An updated comment. + created_at: '2023-10-24T00:37:10.832Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + id: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 + owner: cases + pushed_at: null + pushed_by: null + type: user + updated_at: '2023-10-24T01:27:06.210Z' + updated_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + version: WzIwNjM3LDFd + connector: + fields: null + id: none + name: none + type: .none + created_at: '2023-10-24T00:37:03.906Z' + created_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + customFields: + - key: d312efda-ec2b-42ec-9e2c-84981795c581 + type: text + value: My new field value + - key: fcc6840d-eb14-42df-8aaf-232201a705ec + type: toggle + value: false + description: A case description. + duration: null + external_service: null + id: 293f1bc0-74f6-11ea-b83a-553aecdb28b6 + owner: cases + settings: + syncAlerts: false + severity: low + status: open + tags: + - tag 1 + title: Case title 1 + totalAlerts: 0 + totalComment: 1 + updated_at: '2023-10-24T01:27:06.210Z' + updated_by: + email: null + full_name: null + profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + username: elastic + version: WzIwNjM2LDFd + Connectors_create_email_connector_request: + summary: Create an email connector. + value: + config: + from: tester@example.com + hasAuth: true + host: 'https://example.com' + port: 1025 + secure: false + service: other + connector_type_id: .email + name: email-connector-1 + secrets: + password: password + user: username + Connectors_create_email_connector_response: + summary: A new email connector. + value: + config: + clientId: null + from: tester@example.com + hasAuth: true + host: 'https://example.com' + oauthTokenUrl: null + port: 1025 + secure: false + service: other + tenantId: null + connector_type_id: .email + id: 90a82c60-478f-11ee-a343-f98a117c727f + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: email-connector-1 + Connectors_create_index_connector_request: + summary: Create an index connector. + value: + config: + index: test-index + connector_type_id: .index + name: my-connector + Connectors_create_index_connector_response: + summary: A new index connector. + value: + config: + executionTimeField: null + index: test-index + refresh: false + connector_type_id: .index + id: c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my-connector + Connectors_create_webhook_connector_request: + summary: Create a webhook connector with SSL authentication. + value: + config: + authType: webhook-authentication-ssl + certType: ssl-crt-key + method: post + url: 'https://example.com' + connector_type_id: .webhook + name: my-webhook-connector + secrets: + crt: QmFnIEF0dH... + key: LS0tLS1CRUdJ... + password: my-passphrase + Connectors_create_webhook_connector_response: + summary: A new webhook connector. + value: + config: + authType: webhook-authentication-ssl + certType: ssl-crt-key + hasAuth: true + headers: null + method: post + url: 'https://example.com' + verificationMode: full + connector_type_id: .webhook + id: 900eb010-3b9d-11ee-a642-8ffbb94e38bd + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my-webhook-connector + Connectors_create_xmatters_connector_request: + summary: Create an xMatters connector with URL authentication. + value: + config: + usesBasic: false + connector_type_id: .xmatters + name: my-xmatters-connector + secrets: + secretsUrl: 'https://example.com?apiKey=xxxxx' + Connectors_create_xmatters_connector_response: + summary: A new xMatters connector. + value: + config: + configUrl: null + usesBasic: false + connector_type_id: .xmatters + id: 4d2d8da0-4d1f-11ee-9367-577408be4681 + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my-xmatters-connector + Connectors_get_connector_response: + summary: Get connector details. + value: + config: {} + connector_type_id: .server-log + id: df770e30-8b8b-11ed-a780-3b746c987a81 + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my_server_log_connector + Connectors_get_connector_types_generativeai_response: + summary: A list of connector types for the `generativeAI` feature. + value: + - enabled: true + enabled_in_config: true + enabled_in_license: true + id: .gen-ai + is_system_action_type: false + minimum_license_required: enterprise + name: OpenAI + supported_feature_ids: + - generativeAIForSecurity + - generativeAIForObservability + - generativeAIForSearchPlayground + - enabled: true + enabled_in_config: true + enabled_in_license: true + id: .bedrock + is_system_action_type: false + minimum_license_required: enterprise + name: AWS Bedrock + supported_feature_ids: + - generativeAIForSecurity + - generativeAIForObservability + - generativeAIForSearchPlayground + - enabled: true + enabled_in_config: true + enabled_in_license: true + id: .gemini + is_system_action_type: false + minimum_license_required: enterprise + name: Google Gemini + supported_feature_ids: + - generativeAIForSecurity + Connectors_get_connectors_response: + summary: A list of connectors + value: + - connector_type_id: .email + id: preconfigured-email-connector + is_deprecated: false + is_preconfigured: true + is_system_action: false + name: my-preconfigured-email-notification + referenced_by_count: 0 + - config: + executionTimeField: null + index: test-index + refresh: false + connector_type_id: .index + id: e07d0c80-8b8b-11ed-a780-3b746c987a81 + is_deprecated: false + is_missing_secrets: false + is_preconfigured: false + is_system_action: false + name: my-index-connector + referenced_by_count: 2 + Connectors_run_cases_webhook_connector_request: + summary: Run a Webhook - Case Management connector to create a case. + value: + params: + subAction: pushToService + subActionParams: + comments: + - comment: A comment about the incident. + commentId: 1 + incident: + description: Description of the incident. + id: caseID + severity: low + status: open + tags: + - tag1 + - tag2 + title: Case title + Connectors_run_cases_webhook_connector_response: + summary: >- + Response from a pushToService action for a Webhook - Case Management + connector. + value: + connector_id: 1824b5b8-c005-4dcc-adac-57f92db46459 + data: + comments: + - commentId: 1 + pushedDate: '2023-12-05T19:43:36.360Z' + id: 100665 + pushedDate: '2023-12-05T19:43:36.360Z' + title: TEST-29034 + url: 'https://example.com/browse/TEST-29034' + status: ok + Connectors_run_email_connector_request: + summary: Send an email message from an email connector. + value: + params: + bcc: + - user1@example.com + cc: + - user2@example.com + - user3@example.com + message: Test email message. + subject: Test message subject + to: + - user4@example.com + Connectors_run_email_connector_response: + summary: Response for sending a message from an email connector. + value: + connector_id: 7fc7b9a0-ecc9-11ec-8736-e7d63118c907 + data: + accepted: + - user1@example.com + - user2@example.com + - user3@example.com + - user4@example.com + envelope: + from: tester@example.com + to: + - user1@example.com + - user2@example.com + - user3@example.com + - user4@example.com + envelopeTime: 8 + messageId: <08a92d29-642a-0706-750c-de5996bd5cf3@example.com> + messageSize: 729 + messageTime: 3 + rejected: [] + response: 250 Message queued as QzEXKcGJ + status: ok + Connectors_run_index_connector_request: + summary: Run an index connector. + value: + params: + documents: + - id: my_doc_id + message: 'hello, world' + name: my_doc_name + Connectors_run_index_connector_response: + summary: Response from running an index connector. + value: + connector_id: fd38c600-96a5-11ed-bb79-353b74189cba + data: + errors: false + items: + - create: + _id: 4JtvwYUBrcyxt2NnfW3y + _index: my-index + _primary_term: 1 + _seq_no: 0 + _shards: + failed: 0 + successful: 1 + total: 2 + _version: 1 + result: created + status: 201 + took: 135 + status: ok + Connectors_run_jira_connector_request: + summary: Run a Jira connector to retrieve the list of issue types. + value: + params: + subAction: issueTypes + Connectors_run_jira_connector_response: + summary: Response from retrieving the list of issue types for a Jira connector. + value: + connector_id: b3aad810-edbe-11ec-82d1-11348ecbf4a6 + data: + - id: 10024 + name: Improvement + - id: 10006 + name: Task + - id: 10007 + name: Sub-task + - id: 10025 + name: New Feature + - id: 10023 + name: Bug + - id: 10000 + name: Epic + status: ok + Connectors_run_pagerduty_connector_request: + summary: Run a PagerDuty connector to trigger an alert. + value: + params: + customDetails: + my_data_1: test data + eventAction: trigger + links: + - href: 'http://example.com/pagerduty' + text: An example link + summary: A brief event summary + Connectors_run_pagerduty_connector_response: + summary: Response from running a PagerDuty connector. + value: + connector_id: 45de9f70-954f-4608-b12a-db7cf808e49d + data: + dedup_key: 5115e138b26b484a81eaea779faa6016 + message: Event processed + status: success + status: ok + Connectors_run_server_log_connector_request: + summary: Run a server log connector. + value: + params: + level: warn + message: Test warning message. + Connectors_run_server_log_connector_response: + summary: Response from running a server log connector. + value: + connector_id: 7fc7b9a0-ecc9-11ec-8736-e7d63118c907 + status: ok + Connectors_run_servicenow_itom_connector_request: + summary: Run a ServiceNow ITOM connector to retrieve the list of choices. + value: + params: + subAction: getChoices + subActionParams: + fields: + - severity + - urgency + Connectors_run_servicenow_itom_connector_response: + summary: >- + Response from retrieving the list of choices for a ServiceNow ITOM + connector. + value: + connector_id: 9d9be270-2fd2-11ed-b0e0-87533c532698 + data: + - dependent_value: '' + element: severity + label: Critical + value: 1 + - dependent_value: '' + element: severity + label: Major + value: 2 + - dependent_value: '' + element: severity + label: Minor + value: 3 + - dependent_value: '' + element: severity + label: Warning + value: 4 + - dependent_value: '' + element: severity + label: OK + value: 5 + - dependent_value: '' + element: severity + label: Clear + value: 0 + - dependent_value: '' + element: urgency + label: 1 - High + value: 1 + - dependent_value: '' + element: urgency + label: 2 - Medium + value: 2 + - dependent_value: '' + element: urgency + label: 3 - Low + value: 3 + status: ok + Connectors_run_slack_api_connector_request: + summary: >- + Run a Slack connector that uses the web API method to post a message on + a channel. + value: + params: + subAction: postMessage + subActionParams: + channelIds: + - C123ABC456 + text: A test message. + Connectors_run_slack_api_connector_response: + summary: Response from posting a message with a Slack connector. + value: + connector_id: .slack_api + data: + channel: C123ABC456 + message: + app_id: A01BC2D34EF + blocks: + - block_id: /NXe + elements: + - elements: + - text: A test message. + type: text + type: rich_text_section + type: rich_text + bot_id: B12BCDEFGHI + bot_profile: + app_id: A01BC2D34EF + deleted: false + icons: + image_36: 'https://a.slack-edge.com/80588/img/plugins/app/bot_36.png' + id: B12BCDEFGHI + name: test + team_id: T01ABCDE2F + updated: 1672169705 + team: T01ABCDE2F + text: A test message + ts: '1234567890.123456' + type: message + user: U12A345BC6D + ok: true + ts: '1234567890.123456' + status: ok + Connectors_run_swimlane_connector_request: + summary: Run a Swimlane connector to create an incident. + value: + params: + subAction: pushToService + subActionParams: + comments: + - comment: A comment about the incident. + commentId: 1 + incident: + caseId: '1000' + caseName: Case name + description: Description of the incident. + Connectors_run_swimlane_connector_response: + summary: Response from creating a Swimlane incident. + value: + connector_id: a4746470-2f94-11ed-b0e0-87533c532698 + data: + comments: + - commentId: 1 + pushedDate: '2022-09-08T16:52:27.865Z' + id: aKPmBHWzmdRQtx6Mx + pushedDate: '2022-09-08T16:52:27.866Z' + title: TEST-457 + url: >- + https://elastic.swimlane.url.us/record/aNcL2xniGHGpa2AHb/aKPmBHWzmdRQtx6Mx + status: ok + Connectors_update_index_connector_request: + summary: Update an index connector. + value: + config: + index: updated-index + name: updated-connector + Data_views_create_data_view_request: + summary: Create a data view with runtime fields. + value: + data_view: + name: My Logstash data view + runtimeFieldMap: + runtime_shape_name: + script: + source: 'emit(doc[''shape_name''].value)' + type: keyword + title: logstash-* + Data_views_create_runtime_field_request: + summary: Create a runtime field. + value: + name: runtimeFoo + runtimeField: + script: + source: 'emit(doc["foo"].value)' + type: long + Data_views_get_data_view_response: + summary: >- + The get data view API returns a JSON object that contains information + about the data view. + value: + data_view: + allowNoIndex: false + fieldAttrs: + products.manufacturer: + count: 1 + products.price: + count: 1 + products.product_name: + count: 1 + total_quantity: + count: 1 + fieldFormats: + products.base_price: + id: number + params: + pattern: '$0,0.00' + products.base_unit_price: + id: number + params: + pattern: '$0,0.00' + products.min_price: + id: number + params: + pattern: '$0,0.00' + products.price: + id: number + params: + pattern: '$0,0.00' + products.taxful_price: + id: number + params: + pattern: '$0,0.00' + products.taxless_price: + id: number + params: + pattern: '$0,0.00' + taxful_total_price: + id: number + params: + pattern: '$0,0.[00]' + taxless_total_price: + id: number + params: + pattern: '$0,0.00' + fields: + _id: + aggregatable: false + count: 0 + esTypes: + - _id + format: + id: string + isMapped: true + name: _id + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + _index: + aggregatable: true + count: 0 + esTypes: + - _index + format: + id: string + isMapped: true + name: _index + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + _score: + aggregatable: false + count: 0 + format: + id: number + isMapped: true + name: _score + readFromDocValues: false + scripted: false + searchable: false + shortDotsEnable: false + type: number + _source: + aggregatable: false + count: 0 + esTypes: + - _source + format: + id: _source + isMapped: true + name: _source + readFromDocValues: false + scripted: false + searchable: false + shortDotsEnable: false + type: _source + category: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: category + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + category.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: category.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: category + type: string + currency: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: currency + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_birth_date: + aggregatable: true + count: 0 + esTypes: + - date + format: + id: date + isMapped: true + name: customer_birth_date + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: date + customer_first_name: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: customer_first_name + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_first_name.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_first_name.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: customer_first_name + type: string + customer_full_name: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: customer_full_name + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_full_name.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_full_name.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: customer_full_name + type: string + customer_gender: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_gender + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_id: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_id + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_last_name: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: customer_last_name + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + customer_last_name.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_last_name.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: customer_last_name + type: string + customer_phone: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: customer_phone + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + day_of_week: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: day_of_week + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + day_of_week_i: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: day_of_week_i + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + email: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: email + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + event.dataset: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: event.dataset + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + geoip.city_name: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: geoip.city_name + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + geoip.continent_name: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: geoip.continent_name + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + geoip.country_iso_code: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: geoip.country_iso_code + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + geoip.location: + aggregatable: true + count: 0 + esTypes: + - geo_point + format: + id: geo_point + params: + transform: wkt + isMapped: true + name: geoip.location + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: geo_point + geoip.region_name: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: geoip.region_name + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + manufacturer: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: manufacturer + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + manufacturer.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: manufacturer.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: manufacturer + type: string + order_date: + aggregatable: true + count: 0 + esTypes: + - date + format: + id: date + isMapped: true + name: order_date + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: date + order_id: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: order_id + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + products._id: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: products._id + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + products._id.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products._id.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: products._id + type: string + products.base_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.base_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.base_unit_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.base_unit_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.category: + aggregatable: false + count: 0 + esTypes: + - text + format: + id: string + isMapped: true + name: products.category + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + products.category.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products.category.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: products.category + type: string + products.created_on: + aggregatable: true + count: 0 + esTypes: + - date + format: + id: date + isMapped: true + name: products.created_on + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: date + products.discount_amount: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + isMapped: true + name: products.discount_amount + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false type: number - elasticsearch_client: - additionalProperties: false - description: Current network metrics of Kibana's Elasticsearch client. - properties: - totalActiveSockets: - description: Count of network sockets currently in use. - type: number - totalIdleSockets: - description: Count of network sockets currently idle. - type: number - totalQueuedRequests: - description: Count of requests not yet assigned to sockets. - type: number - required: - - totalActiveSockets - - totalIdleSockets - - totalQueuedRequests - type: object - last_updated: - description: The time metrics were collected. + products.discount_percentage: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + isMapped: true + name: products.discount_percentage + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.manufacturer: + aggregatable: false + count: 1 + esTypes: + - text + format: + id: string + isMapped: true + name: products.manufacturer + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false type: string - required: - - elasticsearch_client - - last_updated - - collection_interval_in_millis - type: object - name: - description: Kibana instance name. - type: string - status: - additionalProperties: false - properties: - core: - additionalProperties: false - description: Statuses of core Kibana services. - properties: - elasticsearch: - additionalProperties: false - properties: - detail: - description: Human readable detail of the service status. - type: string - documentationUrl: - description: A URL to further documentation regarding this service. - type: string - level: - description: >- - Service status levels as human and machine readable - values. - enum: - - available - - degraded - - unavailable - - critical - type: string - meta: - additionalProperties: {} - description: >- - An unstructured set of extra metadata about this - service. - type: object - summary: - description: A human readable summary of the service status. - type: string - required: - - level - - summary - - meta - type: object - savedObjects: - additionalProperties: false - properties: - detail: - description: Human readable detail of the service status. - type: string - documentationUrl: - description: A URL to further documentation regarding this service. - type: string - level: - description: >- - Service status levels as human and machine readable - values. - enum: - - available - - degraded - - unavailable - - critical - type: string - meta: - additionalProperties: {} - description: >- - An unstructured set of extra metadata about this - service. - type: object - summary: - description: A human readable summary of the service status. - type: string - required: - - level - - summary - - meta - type: object - required: - - elasticsearch - - savedObjects - type: object - overall: - additionalProperties: false - properties: - detail: - description: Human readable detail of the service status. - type: string - documentationUrl: - description: A URL to further documentation regarding this service. - type: string - level: - description: Service status levels as human and machine readable values. - enum: - - available - - degraded - - unavailable - - critical - type: string - meta: - additionalProperties: {} - description: An unstructured set of extra metadata about this service. - type: object - summary: - description: A human readable summary of the service status. - type: string - required: - - level - - summary - - meta - type: object - plugins: - additionalProperties: - additionalProperties: false - properties: - detail: - description: Human readable detail of the service status. - type: string - documentationUrl: - description: A URL to further documentation regarding this service. - type: string - level: - description: >- - Service status levels as human and machine readable - values. - enum: - - available - - degraded - - unavailable - - critical - type: string - meta: - additionalProperties: {} - description: An unstructured set of extra metadata about this service. - type: object - summary: - description: A human readable summary of the service status. - type: string - required: - - level - - summary - - meta - type: object - description: A dynamic mapping of plugin ID to plugin status. - type: object - required: - - overall - - core - - plugins - type: object - uuid: - description: >- - Unique, generated Kibana instance UUID. This UUID should persist - even if the Kibana process restarts. - type: string - version: - additionalProperties: false - properties: - build_date: - description: The date and time of this build. + products.manufacturer.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products.manufacturer.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: products.manufacturer type: string - build_flavor: - description: >- - The build flavour determines configuration and behavior of - Kibana. On premise users will almost always run the - "traditional" flavour, while other flavours are reserved for - Elastic-specific use cases. - enum: - - serverless - - traditional + products.min_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.min_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.price: + aggregatable: true + count: 1 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: products.price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.product_id: + aggregatable: true + count: 0 + esTypes: + - long + format: + id: number + isMapped: true + name: products.product_id + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.product_name: + aggregatable: false + count: 1 + esTypes: + - text + format: + id: string + isMapped: true + name: products.product_name + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false type: string - build_hash: - description: >- - A unique hash value representing the git commit of this Kibana - build. + products.product_name.keyword: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products.product_name.keyword + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + subType: + multi: + parent: products.product_name type: string - build_number: - description: >- - A monotonically increasing number, each subsequent build will - have a higher number. + products.quantity: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: products.quantity + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false type: number - build_snapshot: - description: Whether this build is a snapshot build. - type: boolean - number: - description: A semantic version number. + products.sku: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: products.sku + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false type: string - required: - - number - - build_hash - - build_number - - build_snapshot - - build_flavor - - build_date - type: object - required: - - name - - uuid - - version - - status - - metrics - type: object - examples: - Alerting_create_es_query_esql_rule_request: - summary: >- - Create an Elasticsearch query rule that uses Elasticsearch Query - Language (ES|QL). - value: - name: my Elasticsearch query ESQL rule - params: - searchType: esqlQuery - esqlQuery: - esql: >- - FROM kibana_sample_data_logs | KEEP bytes, clientip, host, - geo.dest | where geo.dest != "GB" | STATS sumbytes = sum(bytes) by - clientip, host | WHERE sumbytes > 5000 | SORT sumbytes desc | - LIMIT 10 - timeField: '@timestamp' - timeWindowSize: 1 - timeWindowUnit: d - size: 0 - thresholdComparator: '>' - threshold: - - 0 - consumer: stackAlerts - rule_type_id: .es-query - schedule: - interval: 1d - actions: - - group: query matched - id: d0db1fe0-78d6-11ee-9177-f7d404c8c945 - params: - level: info - message: >- - Elasticsearch query rule '{{rule.name}}' is active: - - - Value: {{context.value}} - Conditions Met: - {{context.conditions}} over - {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - - Timestamp: {{context.date}} - Link: {{context.link}} - frequency: - summary: false - notify_when: onActiveAlert - Alerting_create_es_query_rule_request: - summary: >- - Create an Elasticsearch query rule that uses Elasticsearch query domain - specific language (DSL) to define its query and a server log connector - to send notifications. - value: - actions: - - group: query matched - params: - level: info - message: >- - The system has detected {{alerts.new.count}} new, - {{alerts.ongoing.count}} ongoing, and {{alerts.recovered.count}} - recovered alerts. - id: fdbece50-406c-11ee-850e-c71febc4ca7f - frequency: - throttle: 1d - summary: true - notify_when: onThrottleInterval - - group: recovered - params: - level: info - message: Recovered - id: fdbece50-406c-11ee-850e-c71febc4ca7f - frequency: - summary: false - notify_when: onActionGroupChange - consumer: alerts - name: my Elasticsearch query rule - params: - esQuery: '"""{"query":{"match_all" : {}}}"""' - index: - - kibana_sample_data_logs - size: 100 - threshold: - - 100 - thresholdComparator: '>' - timeField: '@timestamp' - timeWindowSize: 1 - timeWindowUnit: d - rule_type_id: .es-query - schedule: - interval: 1d - Alerting_create_es_query_kql_rule_request: - summary: >- - Create an Elasticsearch query rule that uses Kibana query language - (KQL). - value: - consumer: alerts - name: my Elasticsearch query KQL rule - params: - aggType: count - excludeHitsFromPreviousRun: true - groupBy: all - searchConfiguration: - query: - query: '""geo.src : "US" ""' - language: kuery - index: 90943e30-9a47-11e8-b64d-95841ca0b247 - searchType: searchSource - size: 100 - threshold: - - 1000 - thresholdComparator: '>' - timeWindowSize: 5 - timeWindowUnit: m - rule_type_id: .es-query - schedule: - interval: 1m - Alerting_create_index_threshold_rule_request: - summary: Create an index threshold rule. - value: - actions: - - id: 48de3460-f401-11ed-9f8e-399c75a2deeb - frequency: - notify_when: onActionGroupChange - summary: false - group: threshold met - params: - level: info - message: >- - Rule '{{rule.name}}' is active for group '{{context.group}}': - - - - Value: {{context.value}} - - - Conditions Met: {{context.conditions}} over - {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - - - Timestamp: {{context.date}} - alert_delay: - active: 3 - consumer: alerts - name: my rule - params: - aggType: avg - termSize: 6 - thresholdComparator: '>' - timeWindowSize: 5 - timeWindowUnit: m - groupBy: top - threshold: - - 1000 - index: - - .test-index - timeField: '@timestamp' - aggField: sheet.version - termField: name.keyword - rule_type_id: .index-threshold - schedule: - interval: 1m - tags: - - cpu - Alerting_create_tracking_containment_rule_request: - summary: Create a tracking containment rule. - value: - consumer: alerts - name: my tracking rule - params: - index: kibana_sample_data_logs - dateField": '@timestamp' - geoField: geo.coordinates - entity: agent.keyword - boundaryType: entireIndex - boundaryIndexTitle: boundary* - boundaryGeoField: location - boundaryNameField: name - indexId: 90943e30-9a47-11e8-b64d-95841ca0b247 - boundaryIndexId: 0cd90abf-abe7-44c7-909a-f621bbbcfefc - rule_type_id: .geo-containment - schedule: - interval: 1h - Alerting_create_es_query_esql_rule_response: - summary: >- - The create rule API returns a JSON object that contains details about - the rule. - value: - id: e0d62360-78e8-11ee-9177-f7d404c8c945 - enabled: true - name: my Elasticsearch query ESQL rule - tags: [] - rule_type_id: .es-query - consumer: stackAlerts - schedule: - interval: 1d - actions: - - group: query matched - id: d0db1fe0-78d6-11ee-9177-f7d404c8c945 - params: - level: info - message: >- - Elasticsearch query rule '{{rule.name}}' is active: - - - Value: {{context.value}} - Conditions Met: - {{context.conditions}} over - {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - - Timestamp: {{context.date}} - Link: {{context.link}} - connector_type_id: .server-log - frequency: - summary: false - notify_when: onActiveAlert - throttle: null - uuid: bfe370a3-531b-4855-bbe6-ad739f578844 - params: - searchType: esqlQuery - esqlQuery: - esql: >- - FROM kibana_sample_data_logs | keep bytes, clientip, host, - geo.dest | WHERE geo.dest != "GB" | stats sumbytes = sum(bytes) by - clientip, host | WHERE sumbytes > 5000 | sort sumbytes desc | - limit 10 - timeField: '@timestamp' - timeWindowSize: 1 - timeWindowUnit: d - size: 0 - thresholdComparator: '>' - threshold: - - 0 - excludeHitsFromPreviousRun": true, - aggType: count - groupBy: all - scheduled_task_id: e0d62360-78e8-11ee-9177-f7d404c8c945 - created_by: elastic - updated_by: elastic", - created_at: '2023-11-01T19:00:10.453Z' - updated_at: '2023-11-01T19:00:10.453Z' - api_key_owner: elastic - api_key_created_by_user: false - throttle: null - mute_all: false - notify_when: null - muted_alert_ids: [] - execution_status: - status: pending - last_execution_date: '2023-11-01T19:00:10.453Z' - revision: 0 - running: false - Alerting_create_es_query_rule_response: - summary: >- - The create rule API returns a JSON object that contains details about - the rule. - value: - id: 58148c70-407f-11ee-850e-c71febc4ca7f - enabled: true - name: my Elasticsearch query rule - tags: [] - rule_type_id: .es-query - consumer: alerts - schedule: - interval: 1d - actions: - - group: query matched - id: fdbece50-406c-11ee-850e-c71febc4ca7f - params: - level: info - message: >- - The system has detected {{alerts.new.count}} new, - {{alerts.ongoing.count}} ongoing, and {{alerts.recovered.count}} - recovered alerts. - connector_type_id: .server-log - frequency: - summary: true - notify_when: onThrottleInterval - throttle: 1d - uuid: 53f3c2a3-e5d0-4cfa-af3b-6f0881385e78 - - group: recovered - id: fdbece50-406c-11ee-850e-c71febc4ca7f - params: - level: info - message: Recovered - connector_type_id: .server-log - frequency: - summary: false - notify_when: onActionGroupChange - throttle: null - uuid: 2324e45b-c0df-45c7-9d70-4993e30be758 - params: - thresholdComparator: '>' - timeWindowSize: 1 - timeWindowUnit: d - threshold: - - 100 - size: 100 - timeField: '@timestamp' - index: - - kibana_sample_data_logs - esQuery: '"""{"query":{"match_all" : {}}}"""' - excludeHitsFromPreviousRun: true - aggType: count - groupBy: all - searchType: esQuery - scheduled_task_id: 58148c70-407f-11ee-850e-c71febc4ca7f - created_by: elastic - updated_by: elastic - created_at: '2023-08-22T00:03:38.263Z' - updated_at: '2023-08-22T00:03:38.263Z' - api_key_owner: elastic - api_key_created_by_user: false - throttle: null - mute_all: false - notify_when: null - muted_alert_ids: [] - execution_status: - status: pending - last_execution_date: '2023-08-22T00:03:38.263Z' - revision: 0 - running: false - Alerting_create_es_query_kql_rule_response: - summary: >- - The create rule API returns a JSON object that contains details about - the rule. - value: - id: 7bd506d0-2284-11ee-8fad-6101956ced88 - enabled: true - name: my Elasticsearch query KQL rule" - tags: [] - rule_type_id: .es-query - consumer: alerts - schedule: - interval: 1m - actions: [] - params: - searchConfiguration: - query: - query: '""geo.src : "US" ""' - language: kuery - index: 90943e30-9a47-11e8-b64d-95841ca0b247 - searchType: searchSource - timeWindowSize: 5 - timeWindowUnit: m - threshold: - - 1000 - thresholdComparator: '>' - size: 100 - aggType: count - groupBy: all - excludeHitsFromPreviousRun: true - created_by: elastic - updated_by: elastic - created_at: '2023-07-14T20:24:50.729Z' - updated_at: '2023-07-14T20:24:50.729Z' - api_key_owner: elastic - api_key_created_by_user: false - throttle: null - notify_when: null - mute_all: false - muted_alert_ids: [] - scheduled_task_id: 7bd506d0-2284-11ee-8fad-6101956ced88 - execution_status: - status: pending - last_execution_date: '2023-07-14T20:24:50.729Z' - revision: 0 - running: false - Alerting_create_index_threshold_rule_response: - summary: >- - The create rule API returns a JSON object that contains details about - the rule. - value: - actions: - - group: threshold met - id: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 - uuid: 07aef2a0-9eed-4ef9-94ec-39ba58eb609d - connector_type_id: .server-log - frequency: - notify_when: onActionGroupChange - summary: false - throttle: null - params: - level: info - message: >- - Rule {{rule.name}} is active for group {{context.group} : - - - - Value: {{context.value}} - - - Conditions Met: {{context.conditions}} over - {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - - - Timestamp: {{context.date}} - alert_delay: - active: 3 - api_key_created_by_user: false - api_key_owner: elastic - consumer: alerts - created_at: '2022-06-08T17:20:31.632Z' - created_by: elastic - enabled: true - execution_status: - last_execution_date: '2022-06-08T17:20:31.632Z' - status: pending - id: 41893910-6bca-11eb-9e0d-85d233e3ee35 - muted_alert_ids: [] - mute_all: false - name: my rule - notify_when: null - params: - aggType: avg - termSize: 6 - thresholdComparator: '>' - timeWindowSize: 5 - timeWindowUnit: m - groupBy: top - threshold: - - 1000 - index: - - .test-index - timeField: '@timestamp' - aggField: sheet.version - termField: name.keyword - revision: 0 - rule_type_id: .index-threshold - running: false - schedule: - interval: 1m - scheduled_task_id: 425b0800-6bca-11eb-9e0d-85d233e3ee35 - tags: - - cpu - throttle: null - updated_at: '2022-06-08T17:20:31.632Z' - updated_by: elastic - Alerting_create_tracking_containment_rule_response: - summary: >- - The create rule API returns a JSON object that contains details about - the rule. - value: - id: b6883f9d-5f70-4758-a66e-369d7c26012f - name: my tracking rule - tags: [] - enabled: true - consumer: alerts - throttle: null - revision: 1 - running: false - schedule: - interval: 1h - params: - index: kibana_sample_data_logs - dateField: '@timestamp' - geoField: geo.coordinates - entity: agent.keyword - boundaryType: entireIndex - boundaryIndexTitle: boundary* - boundaryGeoField: location - boundaryNameField: name - indexId: 90943e30-9a47-11e8-b64d-95841ca0b247 - boundaryIndexId: 0cd90abf-abe7-44c7-909a-f621bbbcfefc - rule_type_id: .geo-containment - created_by: elastic - updated_by: elastic - created_at: '2024-02-14T19:52:55.920Z' - updated_at: '2024-02-15T03:24:32.574Z' - api_key_owner: elastic - notify_when: null - mute_all: false - muted_alert_ids: [] - scheduled_task_id: b6883f9d-5f70-4758-a66e-369d7c26012f - execution_status: - status: ok - last_execution_date: '2024-02-15T03:25:38.125Z' - last_duration: 74 - actions: [] - last_run: - alerts_count: - active: 0 - new: 0 - recovered: 0 - ignored: 0 - outcome_msg: null - outcome_order: 0 - outcome: succeeded - warning: null - next_run: '2024-02-15T03:26:38.033Z' - api_key_created_by_user: false - Alerting_get_rule_response: - summary: >- - The get rule API returns a JSON object that contains details about the - rule. - value: - id: 31697a40-7b36-11ed-aa79-f742c05329b2 - consumer: alerts - tags: - - cpu - name: my alert - enabled: true - throttle: null - schedule: - interval: 1m - params: - aggType: avg - termSize: 6 - thresholdComparator: '>' - timeWindowSize: 5 - timeWindowUnit: m - groupBy: top - threshold: - - 1000 - index: - - test-index - timeField: '@timestamp' - aggField: sheet.version - termField: name.keyword - revision: 1 - rule_type_id: .index-threshold - created_by: elastic - updated_by: elastic - created_at: '2022-12-13T22:33:41.163Z' - updated_at: '2022-12-13T22:33:41.163Z' - api_key_owner: elastic - notify_when: null - muted_alert_ids: [] - mute_all: false - scheduled_task_id: 31697a40-7b36-11ed-aa79-f742c05329b2 - execution_status: - status: ok - last_execution_date: '2022-12-13T22:33:44.388Z' - last_duration: 83 - actions: - - group: threshold met - id: 1007a0c0-7a6e-11ed-89d5-abec321c0def - uuid: 1c7a1280-f28c-4e06-96b2-e4e5f05d1d61 - params: - level: info - message: >- - Rule {{rule.name}} is active for group {{context.group}}: - - - - Value: {{context.value}} - - - Conditions Met: {{context.conditions}} over - {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - - - Timestamp: {{context.date} - connector_type_id: .server-log - connector_type_id: .server-log - frequency: - throttle: null - summary: false - notify_when: onActionGroupChange - last_run: - alerts_count: - new: 0 - ignored: 0 - recovered: 0 - active: 0 - outcome_msg: null - warning: null - outcome: succeeded - next_run: '2022-12-13T22:34:44.314Z' - api_key_created_by_user: false - Alerting_update_rule_request: - summary: Update an index threshold rule. - value: - actions: - - frequency: - summary: false - notify_when: onActionGroupChange - group: threshold met - id: 96b668d0-a1b6-11ed-afdf-d39a49596974 - params: - level: info - message: >- - Rule {{rule.name}} is active for group {{context.group}}: - - - - Value: {{context.value}} - - - Conditions Met: {{context.conditions}} over - {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - - - Timestamp: {{context.date}} - params: - aggField: sheet.version - aggType: avg - index: - - .updated-index - groupBy: top - termField: name.keyword - termSize: 6 - threshold: - - 1000 - thresholdComparator: '>' - timeField: '@timestamp' - timeWindowSize: 5 - timeWindowUnit: m - name: new name - schedule: - interval: 1m - tags: [] - Alerting_update_rule_response: - summary: >- - The update rule API returns a JSON object that contains details about - the rule. - value: - id: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 - consumer: alerts - tags: [] - name: new name - enabled: true - throttle: null - revision: 1 - running: false - schedule: - interval: 1m - params: - index: - - .updated-index - timeField: '@timestamp' - groupBy: top - aggType: avg - timeWindowSize: 5 - timeWindowUnit: m - thresholdComparator: '>' - threshold: - - 1000 - aggField: sheet.version - termField: name.keyword - termSize: 6 - api_key_owner: elastic - created_by: elastic - updated_by: elastic - rule_type_id: .index-threshold - scheduled_task_id: 4c5eda00-e74f-11ec-b72f-5b18752ff9ea - created_at: '2024-03-26T23:13:20.985Z' - updated_at: '2024-03-26T23:22:59.949Z' - mute_all: false - muted_alert_ids: [] - execution_status: - status: ok - last_execution_date: '2024-03-26T23:22:51.390Z' - last_duration: 52 - actions: - - group: threshold met - params: - level: info - message: >- - Rule {{rule.name}} is active for group {{context.group}}: - - - - Value: {{context.value}} - - - Conditions Met: {{context.conditions}} over - {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - - - Timestamp: {{context.date} - id: 96b668d0-a1b6-11ed-afdf-d39a49596974 - uuid: 07aef2a0-9eed-4ef9-94ec-39ba58eb609d - connector_type_id: .server-log - frequency: - summary: false - throttle: null - notify_when: onActionGroupChange - last_run: - alerts_count: - new: 0 - ignored: 0 - recovered: 0 - active: 0 - outcome_msg: null - warning: null - outcome: succeeded - next_run: '2024-03-26T23:23:51.316Z' - api_key_created_by_user: false - Alerting_find_rules_response: - summary: Retrieve information about a rule. - value: - page: 1 - total: 1 - per_page: 10 - data: - - id: 3583a470-74f6-11ed-9801-35303b735aef - consumer: alerts - tags: - - cpu - name: my alert - enabled: true - throttle: null - schedule: - interval: 1m - params: - aggType: avg - termSize: 6 - thresholdComparator: '>' - timeWindowSize: 5 - timeWindowUnit: m - groupBy: top - threshold: - - 1000 - index: - - test-index - timeField: '@timestamp' - aggField: sheet.version - termField: name.keyword - revision: 1 - rule_type_id: .index-threshold - created_by: elastic - updated_by: elastic - created_at: '2022-12-05T23:40:33.132Z' - updated_at: '2022-12-05T23:40:33.132Z' - api_key_owner: elastic - mute_all: false - muted_alert_ids: [] - scheduled_task_id: 3583a470-74f6-11ed-9801-35303b735aef - execution_status: - status: ok - last_execution_date: '2022-12-06T01:44:23.983Z' - last_duration: 48 - actions: - - id: 9dca3e00-74f5-11ed-9801-35303b735aef - group: threshold met - uuid: 1c7a1280-f28c-4e06-96b2-e4e5f05d1d61 + products.tax_amount: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + isMapped: true + name: products.tax_amount + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.taxful_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number params: - level: info - message: >- - Rule {{rule.name}} is active for group {{context.group}}: - - - - Value: {{context.value}} - - - Conditions Met: {{context.conditions}} over - {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - - - Timestamp: {{context.date}} - connector_type_id: .server-log - frequency: - summary: false - notify_when: onActionGroupChange - throttle: null - last_run: - alerts_count: - new: 0 - ignored: 0 - recovered: 0 - active: 0 - outcome_msg: null - warning: null - outcome: succeeded - next_run: '2022-12-06T01:45:23.912Z' - api_key_created_by_user: false - Alerting_find_rules_response_conditional_action: - summary: Retrieve information about a rule that has conditional actions. - value: - page: 1 - total: 1 - per_page: 10 - data: - - id: 6107a8f0-f401-11ed-9f8e-399c75a2deeb - name: security_rule - consumer: siem - enabled: true - tags: [] - throttle: null - revision: 1 - running: false - schedule: - interval: 1m - params: - author: [] - description: A security threshold rule. - ruleId: an_internal_rule_id - falsePositives: [] - from: now-3660s - immutable: false - license: '' - outputIndex: '' - meta: - from: 1h - kibana_siem_app_url: https://localhost:5601/app/security - maxSignals: 100 - riskScore: 21 - riskScoreMapping: [] - severity: low - severityMapping: [] - threat: [] - to: now - references: [] - version: 1 - exceptionsList: [] - type: threshold - language: kuery - index: - - kibana_sample_data_logs - query: '*' - filters: [] - threshold: - field: - - bytes - value: 1 - cardinality: [] - rule_type_id: siem.thresholdRule - created_by: elastic - updated_by: elastic - created_at: '2023-05-16T15:50:28.358Z' - updated_at: '2023-05-16T20:25:42.559Z' - api_key_owner: elastic - notify_when: null - mute_all: false - muted_alert_ids: [] - scheduled_task_id: 6107a8f0-f401-11ed-9f8e-399c75a2deeb - execution_status: - status: ok - last_execution_date: '2023-05-16T20:26:49.590Z' - last_duration: 166 - actions: - - group: default - id: 49eae970-f401-11ed-9f8e-399c75a2deeb + pattern: '$0,0.00' + isMapped: true + name: products.taxful_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.taxless_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number params: - documents: - - rule_id: - '[object Object]': null - rule_name: - '[object Object]': null - alert_id: - '[object Object]': null - context_message: - '[object Object]': null - connector_type_id: .index - frequency: - summary: true - notify_when: onActiveAlert - throttle: null - uuid: 1c7a1280-f28c-4e06-96b2-e4e5f05d1d61 - alerts_filter: - timeframe: - days: - - 7 - timezone: UTC - hours: - start: '08:00' - end: '17:00' - query: - kql: '' - filters: - - meta: - disabled: false - negate: false - alias: null - index: c4bdca79-e69e-4d80-82a1-e5192c621bea - key: client.geo.region_iso_code - field: client.geo.region_iso_code - params: - query: CA-QC - type: phrase - $state: - store: appState - query: - match_phrase: - client.geo.region_iso_code: CA-QC - last_run: - alerts_count: - new: 0 - ignored: 0 - recovered: 0 - active: 0 - outcome_msg: - - Rule execution completed successfully - outcome_order: 0 - warning: null - outcome: succeeded - next_run: '2023-05-16T20:27:49.507Z' - api_key_created_by_user: false - Alerting_get_health_response: - summary: Retrieve information about the health of the alerting framework. - value: - is_sufficiently_secure: true - has_permanent_encryption_key: true - alerting_framework_health: - decryption_health: - status: ok - timestamp: '2023-01-13T01:28:00.280Z' - execution_health: - status: ok - timestamp: '2023-01-13T01:28:00.280Z' - read_health: - status: ok - timestamp: '2023-01-13T01:28:00.280Z' - Alerting_get_rule_types_response: - summary: Retrieve rule types associated with Kibana machine learning features - value: - - id: xpack.ml.anomaly_detection_alert - name: Anomaly detection alert - category: management - producer: ml - alerts: - context: ml.anomaly-detection - mappings: - fieldMap: - kibana.alert.job_id: - type: keyword - array: false - required: true - kibana.alert.anomaly_score: - type: double - array: false - required: false - kibana.alert.is_interim: - type: boolean - array: false - required: false - kibana.alert.anomaly_timestamp: - type: date - array: false - required: false - kibana.alert.top_records: - type: object - array: true - required: false - dynamic: false - properties: - job_id: - type: keyword - record_score: - type: double - initial_record_score: - type: double - detector_index: - type: integer - is_interim: - type: boolean - timestamp: - type: date - partition_field_name: - type: keyword - partition_field_value: - type: keyword - over_field_name: - type: keyword - over_field_value: - type: keyword - by_field_name: - type: keyword - by_field_value: - type: keyword - function: - type: keyword - typical: - type: double - actual: - type: double - field_name: - type: keyword - kibana.alert.top_influencers: - type: object - array: true - required: false - dynamic: false - properties: - job_id: - type: keyword - influencer_field_name: - type: keyword - influencer_field_value: - type: keyword - influencer_score: - type: double - initial_influencer_score: - type: double - is_interim: - type: boolean - timestamp: - type: date - shouldWrite: true - enabled_in_license: true - recovery_action_group: - id: recovered - name: Recovered - action_groups: - - id: anomaly_score_match - name: Anomaly score matched the condition - - id: recovered - name: Recovered - default_action_group_id: anomaly_score_match - minimum_license_required: platinum - is_exportable: true - rule_task_timeout: 5m - action_variables: - context: - - name: timestamp - description: The bucket timestamp of the anomaly - - name: timestampIso8601 - description: The bucket time of the anomaly in ISO8601 format - - name: jobIds - description: List of job IDs that triggered the alert - - name: message - description: Alert info message - - name: isInterim - description: Indicate if top hits contain interim results - - name: score - description: Anomaly score at the time of the notification action - - name: topRecords - description: Top records - - name: topInfluencers - description: Top influencers - - name: anomalyExplorerUrl - description: URL to open in the Anomaly Explorer - useWithTripleBracesInTemplates: true - state: [] - params: [] - authorized_consumers: - alerts: - read: true - all: true - stackAlerts: - read: true - all: true - slo: - read: true - all: true - ml: - read: true - all: true - uptime: - read: true - all: true - infrastructure: - read: true - all: true - logs: - read: true - all: true - monitoring: - read: true - all: true - siem: - read: true - all: true - apm: - read: true - all: true - discover: - read: true - all: true - does_set_recovery_context: true - has_alerts_mappings: true - has_fields_for_a_a_d: false - - id: xpack.ml.anomaly_detection_jobs_health - name: Anomaly detection jobs health - category: management - producer: ml - enabled_in_license: true - recovery_action_group: - id: recovered - name: Recovered - action_groups: - - id: anomaly_detection_realtime_issue - name: Issue detected - - id: recovered - name: Recovered - default_action_group_id: anomaly_detection_realtime_issue - minimum_license_required: platinum - is_exportable: true - rule_task_timeout: 5m - action_variables: - context: - - name: results - description: Results of the rule execution - - name: message - description: Alert info message - state: [] - params: [] - authorized_consumers: - alerts: - read: true - all: true - stackAlerts: - read: true - all: true - slo: - read: true - all: true - ml: - read: true - all: true - uptime: - read: true - all: true - infrastructure: - read: true - all: true - logs: - read: true - all: true - monitoring: - read: true - all: true - siem: - read: true - all: true - apm: - read: true - all: true - discover: - read: true - all: true - does_set_recovery_context: true - has_alerts_mappings: false - has_fields_for_a_a_d: false - Cases_create_case_request: - summary: Create a security case that uses a Jira connector. + pattern: '$0,0.00' + isMapped: true + name: products.taxless_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + products.unit_discount_amount: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + isMapped: true + name: products.unit_discount_amount + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + sku: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: sku + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + taxful_total_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.[00]' + isMapped: true + name: taxful_total_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + taxless_total_price: + aggregatable: true + count: 0 + esTypes: + - half_float + format: + id: number + params: + pattern: '$0,0.00' + isMapped: true + name: taxless_total_price + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + total_quantity: + aggregatable: true + count: 1 + esTypes: + - integer + format: + id: number + isMapped: true + name: total_quantity + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + total_unique_products: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: total_unique_products + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + type: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: type + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + user: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: user + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + id: ff959d40-b880-11e8-a6d9-e546fe2bba5f + name: Kibana Sample Data eCommerce + namespaces: + - default + runtimeFieldMap: {} + sourceFilters: [] + timeFieldName: order_date + title: kibana_sample_data_ecommerce + typeMeta: {} + version: WzUsMV0= + Data_views_get_data_views_response: + summary: The get all data views API returns a list of data views. value: - description: A case description. - title: Case title 1 - tags: - - tag-1 - connector: - id: 131d4448-abe0-4789-939d-8ef60680b498 - name: My connector - type: .jira - fields: - issueType: '10006' - priority: High - parent: null - settings: - syncAlerts: true - owner: cases - customFields: - - type: text - key: d312efda-ec2b-42ec-9e2c-84981795c581 - value: My field value - Cases_create_case_response: + data_view: + - id: ff959d40-b880-11e8-a6d9-e546fe2bba5f + name: Kibana Sample Data eCommerce + namespaces: + - default + title: kibana_sample_data_ecommerce + typeMeta: {} + - id: d3d7af60-4c81-11e8-b3d7-01146121b73d + name: Kibana Sample Data Flights + namespaces: + - default + title: kibana_sample_data_flights + - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + name: Kibana Sample Data Logs + namespaces: + - default + title: kibana_sample_data_logs + Data_views_get_default_data_view_response: + summary: The get default data view API returns the default data view identifier. + value: + data_view_id: ff959d40-b880-11e8-a6d9-e546fe2bba5f + Data_views_get_runtime_field_response: summary: >- - The create case API returns a JSON object that contains details about - the case. + The get runtime field API returns a JSON object that contains + information about the runtime field (`hour_of_day`) and the data view + (`d3d7af60-4c81-11e8-b3d7-01146121b73d`). + value: + data_view: + allowNoIndex: false + fieldAttrs: {} + fieldFormats: + AvgTicketPrice: + id: number + params: + pattern: '$0,0.[00]' + hour_of_day: + id: number + params: + pattern: '00' + fields: + _id: + aggregatable: false + count: 0 + esTypes: + - _id + format: + id: string + isMapped: true + name: _id + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + _index: + aggregatable: true + count: 0 + esTypes: + - _index + format: + id: string + isMapped: true + name: _index + readFromDocValues: false + scripted: false + searchable: true + shortDotsEnable: false + type: string + _score: + aggregatable: false + count: 0 + format: + id: number + isMapped: true + name: _score + readFromDocValues: false + scripted: false + searchable: false + shortDotsEnable: false + type: number + _source: + aggregatable: false + count: 0 + esTypes: + - _source + format: + id: _source + isMapped: true + name: _source + readFromDocValues: false + scripted: false + searchable: false + shortDotsEnable: false + type: _source + AvgTicketPrice: + aggregatable: true + count: 0 + esTypes: + - float + format: + id: number + params: + pattern: '$0,0.[00]' + isMapped: true + name: AvgTicketPrice + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + Cancelled: + aggregatable: true + count: 0 + esTypes: + - boolean + format: + id: boolean + isMapped: true + name: Cancelled + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: boolean + Carrier: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: Carrier + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + dayOfWeek: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: dayOfWeek + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + Dest: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: Dest + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestAirportID: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestAirportID + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestCityName: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestCityName + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestCountry: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestCountry + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestLocation: + aggregatable: true + count: 0 + esTypes: + - geo_point + format: + id: geo_point + params: + transform: wkt + isMapped: true + name: DestLocation + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: geo_point + DestRegion: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestRegion + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DestWeather: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: DestWeather + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + DistanceKilometers: + aggregatable: true + count: 0 + esTypes: + - float + format: + id: number + isMapped: true + name: DistanceKilometers + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + DistanceMiles: + aggregatable: true + count: 0 + esTypes: + - float + format: + id: number + isMapped: true + name: DistanceMiles + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + FlightDelay: + aggregatable: true + count: 0 + esTypes: + - boolean + format: + id: boolean + isMapped: true + name: FlightDelay + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: boolean + FlightDelayMin: + aggregatable: true + count: 0 + esTypes: + - integer + format: + id: number + isMapped: true + name: FlightDelayMin + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + FlightDelayType: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: FlightDelayType + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + FlightNum: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: FlightNum + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + FlightTimeHour: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: FlightTimeHour + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + FlightTimeMin: + aggregatable: true + count: 0 + esTypes: + - float + format: + id: number + isMapped: true + name: FlightTimeMin + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: number + hour_of_day: + aggregatable: true + count: 0 + esTypes: + - long + format: + id: number + params: + pattern: '00' + name: hour_of_day + readFromDocValues: false + runtimeField: + script: + source: 'emit(doc[''timestamp''].value.getHour());' + type: long + scripted: false + searchable: true + shortDotsEnable: false + type: number + Origin: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: Origin + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginAirportID: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginAirportID + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginCityName: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginCityName + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginCountry: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginCountry + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginLocation: + aggregatable: true + count: 0 + esTypes: + - geo_point + format: + id: geo_point + params: + transform: wkt + isMapped: true + name: OriginLocation + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: geo_point + OriginRegion: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginRegion + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + OriginWeather: + aggregatable: true + count: 0 + esTypes: + - keyword + format: + id: string + isMapped: true + name: OriginWeather + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: string + timestamp: + aggregatable: true + count: 0 + esTypes: + - date + format: + id: date + isMapped: true + name: timestamp + readFromDocValues: true + scripted: false + searchable: true + shortDotsEnable: false + type: date + id: d3d7af60-4c81-11e8-b3d7-01146121b73d + name: Kibana Sample Data Flights + runtimeFieldMap: + hour_of_day: + script: + source: 'emit(doc[''timestamp''].value.getHour());' + type: long + sourceFilters: [] + timeFieldName: timestamp + title: kibana_sample_data_flights + version: WzM2LDJd + fields: + - aggregatable: true + count: 0 + esTypes: + - long + name: hour_of_day + readFromDocValues: false + runtimeField: + script: + source: 'emit(doc[''timestamp''].value.getHour());' + type: long + scripted: false + searchable: true + shortDotsEnable: false + type: number + Data_views_preview_swap_data_view_request: + summary: Preview swapping references from data view ID "abcd-efg" to "xyz-123". value: - comments: [] - totalAlerts: 0 - id: 66b9aa00-94fa-11ea-9f74-e7e108796192 - version: WzUzMiwxXQ== - totalComment: 0 - title: Case title 1 - tags: - - tag 1 - assignees: [] - description: A case description. - settings: - syncAlerts: true - owner: cases - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - type: text - value: My field value - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - type: toggle - value: null - duration: null - severity: low - closed_at: null - closed_by: null - created_at: '2022-10-13T15:33:50.604Z' - created_by: - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - status: open - updated_at: null - updated_by: null - connector: - id: 131d4448-abe0-4789-939d-8ef60680b498 - name: My connector - type: .jira - fields: - issueType: '10006' - parent: null - priority: High - external_service: null - Cases_update_case_request: - summary: Update the case description, tags, and connector. + fromId: abcd-efg + toId: xyz-123 + Data_views_set_default_data_view_request: + summary: Set the default data view identifier. value: - cases: - - id: a18b38a0-71b0-11ea-a0b2-c51ea50a58e2 - version: WzIzLDFd - connector: - id: 131d4448-abe0-4789-939d-8ef60680b498 - name: My connector - type: .jira - fields: - issueType: '10006' - priority: null - parent: null - description: A case description. - tags: - - tag-1 - settings: - syncAlerts: true - customFields: - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - type: toggle - value: false - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - type: text - value: My new field value - Cases_update_case_response: + data_view_id: ff959d40-b880-11e8-a6d9-e546fe2bba5f + force: true + Data_views_swap_data_view_request: summary: >- - This is an example response when the case description, tags, and - connector were updated. + Swap references from data view ID "abcd-efg" to "xyz-123" and remove the + data view that is no longer referenced. value: - - id: 66b9aa00-94fa-11ea-9f74-e7e108796192 - version: WzU0OCwxXQ== - comments: [] - totalComment: 0 - totalAlerts: 0 - title: Case title 1 - tags: - - tag-1 - settings: - syncAlerts: true - owner: cases - description: A case description. - duration: null - severity: low - closed_at: null - closed_by: null - created_at: '2023-10-13T09:16:17.416Z' - created_by: - email: null - full_name: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - status: open - updated_at: '2023-10-13T09:48:33.043Z' - updated_by: - email: null - full_name: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - assignees: [] - category: null - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - type: text - value: My new field value - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - type: toggle - value: false - connector: - id: 131d4448-abe0-4789-939d-8ef60680b498 - name: My connector - type: .jira - fields: - issueType: '10006' - parent: null - priority: null - external_service: - external_title: IS-4 - pushed_by: - full_name: null - email: null - username: elastic - external_url: https://hms.atlassian.net/browse/IS-4 - pushed_at: '2023-10-13T09:20:40.672Z' - connector_id: 05da469f-1fde-4058-99a3-91e4807e2de8 - external_id: '10003' - connector_name: Jira - Cases_find_case_response: + delete: true + fromId: abcd-efg + toId: xyz-123 + Data_views_update_data_view_request: + summary: Update some properties for a data view. + value: + data_view: + allowNoIndex: false + name: Kibana Sample Data eCommerce + timeFieldName: order_date + title: kibana_sample_data_ecommerce + refresh_fields: true + Data_views_update_field_metadata_request: + summary: Update metadata for multiple fields. + value: + fields: + field1: + count: 123 + customLabel: Field 1 label + field2: + customDescription: Field 2 description + customLabel: Field 2 label + Data_views_update_runtime_field_request: + summary: Update an existing runtime field on a data view. + value: + runtimeField: + script: + source: 'emit(doc["bar"].value)' + Machine_learning_APIs_mlSyncExample: + summary: Two anomaly detection jobs required synchronization in this example. + value: + datafeedsAdded: {} + datafeedsRemoved: {} + savedObjectsCreated: + anomaly-detector: + myjob1: + success: true + myjob2: + success: true + savedObjectsDeleted: {} + Saved_objects_export_objects_request: + summary: Export a specific saved object. + value: + excludeExportDetails: true + includeReferencesDeep: false + objects: + - id: de71f4f0-1902-11e9-919b-ffe5949a18d2 + type: map + Saved_objects_export_objects_response: summary: >- - Retrieve the first five cases with the `tag-1` tag, in ascending order - by last update time. + The export objects API response contains a JSON record for each exported + object. value: - page: 1 - per_page: 5 - total: 1 - cases: - - id: abed3a70-71bd-11ea-a0b2-c51ea50a58e2 - version: WzExMCwxXQ== - comments: [] - totalComment: 1 - totalAlerts: 0 - title: Case title - tags: - - tag-1 - description: Case description - settings: - syncAlerts: true - owner: cases - customFields: - - type: text - key: d312efda-ec2b-42ec-9e2c-84981795c581 - value: My field value - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - type: toggle - value: null - duration: null - severity: low - closed_at: null - closed_by: null - created_at: '2023-10-12T00:16:36.371Z' - created_by: - email: null - full_name: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - status: open - updated_at: '2023-10-12T00:27:58.162Z' - updated_by: - email: null - full_name: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - assignees: [] - category: null - connector: - id: none - name: none - type: .none - fields: null - external_service: null - count_open_cases: 1 - count_in_progress_cases: 0 - count_closed_cases: 0 - Cases_get_case_configuration_response: - summary: Get the case configuration. + attributes: + description: '' + layerListJSON: >- + [{"id":"0hmz5","alpha":1,"sourceDescriptor":{"type":"EMS_TMS","isAutoSelect":true,"lightModeDefault":"road_map_desaturated"},"visible":true,"style":{},"type":"EMS_VECTOR_TILE","minZoom":0,"maxZoom":24},{"id":"edh66","label":"Total + Requests by + Destination","minZoom":0,"maxZoom":24,"alpha":0.5,"sourceDescriptor":{"type":"EMS_FILE","id":"world_countries","tooltipProperties":["name","iso2"]},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"DYNAMIC","options":{"field":{"name":"__kbnjoin__count__673ff994-fc75-4c67-909b-69fcb0e1060e","origin":"join"},"color":"Greys","fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"lineColor":{"type":"STATIC","options":{"color":"#FFFFFF"}},"lineWidth":{"type":"STATIC","options":{"size":1}},"iconSize":{"type":"STATIC","options":{"size":10}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR","joins":[{"leftField":"iso2","right":{"type":"ES_TERM_SOURCE","id":"673ff994-fc75-4c67-909b-69fcb0e1060e","indexPatternTitle":"kibana_sample_data_logs","term":"geo.dest","indexPatternRefName":"layer_1_join_0_index_pattern","metrics":[{"type":"count","label":"web + logs + count"}],"applyGlobalQuery":true}}]},{"id":"gaxya","label":"Actual + Requests","minZoom":9,"maxZoom":24,"alpha":1,"sourceDescriptor":{"id":"b7486535-171b-4d3b-bb2e-33c1a0a2854c","type":"ES_SEARCH","geoField":"geo.coordinates","limit":2048,"filterByMapBounds":true,"tooltipProperties":["clientip","timestamp","host","request","response","machine.os","agent","bytes"],"indexPatternRefName":"layer_2_source_index_pattern","applyGlobalQuery":true,"scalingType":"LIMIT"},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"STATIC","options":{"color":"#2200ff"}},"lineColor":{"type":"STATIC","options":{"color":"#FFFFFF"}},"lineWidth":{"type":"STATIC","options":{"size":2}},"iconSize":{"type":"DYNAMIC","options":{"field":{"name":"bytes","origin":"source"},"minSize":1,"maxSize":23,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR"},{"id":"tfi3f","label":"Total + Requests and + Bytes","minZoom":0,"maxZoom":9,"alpha":1,"sourceDescriptor":{"type":"ES_GEO_GRID","resolution":"COARSE","id":"8aaa65b5-a4e9-448b-9560-c98cb1c5ac5b","geoField":"geo.coordinates","requestType":"point","metrics":[{"type":"count","label":"web + logs + count"},{"type":"sum","field":"bytes"}],"indexPatternRefName":"layer_3_source_index_pattern","applyGlobalQuery":true},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"color":"Blues","fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"lineColor":{"type":"STATIC","options":{"color":"#cccccc"}},"lineWidth":{"type":"STATIC","options":{"size":1}},"iconSize":{"type":"DYNAMIC","options":{"field":{"name":"sum_of_bytes","origin":"source"},"minSize":7,"maxSize":25,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"labelText":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"labelSize":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"minSize":12,"maxSize":24,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR"}] + mapStateJSON: >- + {"zoom":3.64,"center":{"lon":-88.92107,"lat":42.16337},"timeFilters":{"from":"now-7d","to":"now"},"refreshConfig":{"isPaused":true,"interval":0},"query":{"language":"kuery","query":""},"settings":{"autoFitToDataBounds":false}} + title: '[Logs] Total Requests and Bytes' + uiStateJSON: '{"isDarkMode":false}' + coreMigrationVersion: 8.8.0 + created_at: '2023-08-23T20:03:32.204Z' + id: de71f4f0-1902-11e9-919b-ffe5949a18d2 + managed: false + references: + - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + name: layer_1_join_0_index_pattern + type: index-pattern + - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + name: layer_2_source_index_pattern + type: index-pattern + - id: 90943e30-9a47-11e8-b64d-95841ca0b247 + name: layer_3_source_index_pattern + type: index-pattern + type: map + typeMigrationVersion: 8.4.0 + updated_at: '2023-08-23T20:03:32.204Z' + version: WzEzLDFd + Saved_objects_import_objects_request: value: - - id: 856ee650-6c82-11ee-a20a-6164169afa58 - closure_type: close-by-user - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - defaultValue: Custom text field value. - label: my-text-field - required: false - type: text - owner: cases - created_at: '2024-07-01T17:07:17.767Z' - created_by: - username: elastic - email: null - full_name: null - updated_at: null - updated_by: null - connector: - id: none - name: none - type: .none - fields: null - mappings: [] - version: WzEyLDNd - error: null - templates: - - key: 505932fe-ee3a-4960-a661-c781b5acdb05 - name: template-1 - caseFields: - title: Default case title - tags: - - Default case tag - category: Default-category - description: A default description for cases. - assignees: - - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - connector: - id: none - type: .none - fields: null - name: none - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - value: Default text field value. - type: text - settings: - syncAlerts: false - description: A description of the template. - tags: - - Template tag 1 - Cases_set_case_configuration_request: + file: file.ndjson + Saved_objects_import_objects_response: summary: >- - Set the closure type, custom fields, and default connector for Stack - Management cases. + The import objects API response indicates a successful import and the + objects are created. Since these objects are created as new copies, each + entry in the successResults array includes a destinationId attribute. value: - owner: cases - connector: - id: 5e656730-e1ca-11ec-be9b-9b1838238ee6 - name: my-jira-connector - type: .jira - fields: null - closure_type: close-by-user - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - label: my-text-field - required: false - type: text - defaultValue: My custom field default value. - templates: - - key: 505932fe-ee3a-4960-a661-c781b5acdb05 - name: template-1 - caseFields: - title: Default case title - tags: - - Default case tag - category: Default-category - description: A default description for cases. - assignees: - - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - type: text - value: A text field value for the template. - description: A description of the template. - tags: - - Template tag 1 - Cases_set_case_configuration_response: - summary: This is an example response for case settings. + success: true + successCount: 1 + successResults: + - destinationId: 82d2760c-468f-49cf-83aa-b9a35b6a8943 + id: 90943e30-9a47-11e8-b64d-95841ca0b247 + managed: false + meta: + icon: indexPatternApp + title: Kibana Sample Data Logs + type: index-pattern + Saved_objects_key_rotation_response: + summary: Encryption key rotation using default parameters. value: - closure_type: close-by-user - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - label: my-text-field - required: false - type: text - defaultValue: My custom field default value. - templates: - - key: 505932fe-ee3a-4960-a661-c781b5acdb05 - name: template-1 - caseFields: - title: Default case title - tags: - - Default case tag - category: Default-category - description: A default description for cases. - assignees: - - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - type: text - value: A text field value for the template. - description: A description of the template. - tags: - - Template tag 1 - owner: cases - created_at: '2024-07-01T17:07:17.767Z' + failed: 0 + successful: 300 + total: 1000 + Saved_objects_resolve_missing_reference_request: + value: + file: file.ndjson + retries: + - id: my-pattern + overwrite: true + type: index-pattern + - destinationId: another-vis + id: my-vis + overwrite: true + type: visualization + - destinationId: yet-another-canvas + id: my-canvas + overwrite: true + type: canvas + - id: my-dashboard + type: dashboard + Saved_objects_resolve_missing_reference_response: + summary: Resolve missing reference errors. + value: + success: true + successCount: 3 + successResults: + - id: my-vis + meta: + icon: visualizeApp + title: Look at my visualization + type: visualization + - id: my-search + meta: + icon: searchApp + title: Look at my search + type: search + - id: my-dashboard + meta: + icon: dashboardApp + title: Look at my dashboard + type: dashboard + parameters: + Alerting_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + Cases_alert_id: + description: An identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 09f0c261e39e36351d75995b78bb83673774d1bc2cca9df2d15f0e5c0a99a540 + type: string + Cases_assignees: + description: > + Filters the returned cases by assignees. Valid values are `none` or + unique identifiers for the user profiles. These identifiers can be found + by using the suggest user profile API. + in: query + name: assignees + schema: + oneOf: + - type: string + - items: + type: string + maxItems: 100 + type: array + Cases_case_id: + description: >- + The identifier for the case. To retrieve case IDs, use the find cases + API. All non-ASCII characters must be URL encoded. + in: path + name: caseId + required: true + schema: + example: 9c235210-6834-11ea-a78c-6ffb38a34414 + type: string + Cases_category: + description: Filters the returned cases by category. + in: query + name: category + schema: + oneOf: + - example: my-category + type: string + - items: + type: string + maxItems: 100 + type: array + Cases_comment_id: + description: > + The identifier for the comment. To retrieve comment IDs, use the get + case or find cases APIs. + in: path + name: commentId + required: true + schema: + example: 71ec1870-725b-11ea-a0b2-c51ea50a58e2 + type: string + Cases_configuration_id: + description: An identifier for the configuration. + in: path + name: configurationId + required: true + schema: + example: 3297a0f0-b5ec-11ec-b141-0fdb20a7f9a9 + type: string + Cases_connector_id: + description: >- + An identifier for the connector. To retrieve connector IDs, use the find + connectors API. + in: path + name: connectorId + required: true + schema: + example: abed3a70-71bd-11ea-a0b2-c51ea50a58e2 + type: string + Cases_defaultSearchOperator: + description: he default operator to use for the simple_query_string. + example: OR + in: query + name: defaultSearchOperator + schema: + default: OR + type: string + Cases_from: + description: > + Returns only cases that were created after a specific date. The date + must be specified as a KQL data range or date match expression. + in: query + name: from + schema: + example: now-1d + type: string + Cases_ids: + description: > + The cases that you want to removed. All non-ASCII characters must be URL + encoded. + example: d4e7abb0-b462-11ec-9a8d-698504725a43 + in: query + name: ids + required: true + schema: + items: + maxItems: 100 + minItems: 1 + type: string + type: array + Cases_includeComments: + deprecated: true + description: >- + Deprecated in 8.1.0. This parameter is deprecated and will be removed in + a future release. It determines whether case comments are returned. + in: query + name: includeComments + schema: + default: true + type: boolean + Cases_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + Cases_owner: + description: > + A filter to limit the response to a specific set of applications. If + this parameter is omitted, the response contains information about all + the cases that the user has access to read. + example: cases + in: query + name: owner + schema: + oneOf: + - $ref: '#/components/schemas/Cases_owners' + - items: + $ref: '#/components/schemas/Cases_owners' + type: array + Cases_page_index: + description: The page number to return. + in: query + name: page + required: false + schema: + default: 1 + type: integer + Cases_page_size: + description: The number of items to return. Limited to 100 items. + in: query + name: perPage + required: false + schema: + default: 20 + maximum: 100 + type: integer + Cases_reporters: + description: Filters the returned cases by the user name of the reporter. + example: elastic + in: query + name: reporters + schema: + oneOf: + - type: string + - items: + type: string + maxItems: 100 + type: array + Cases_search: + description: >- + An Elasticsearch simple_query_string query that filters the objects in + the response. + in: query + name: search + schema: + type: string + Cases_searchFields: + description: The fields to perform the simple_query_string parsed query against. + in: query + name: searchFields + schema: + oneOf: + - $ref: '#/components/schemas/Cases_searchFieldsType' + - items: + $ref: '#/components/schemas/Cases_searchFieldsType' + type: array + Cases_severity: + description: The severity of the case. + in: query + name: severity + schema: + enum: + - critical + - high + - low + - medium + type: string + Cases_sort_order: + description: Determines the sort order. + in: query + name: sortOrder + required: false + schema: + default: desc + enum: + - asc + - desc + type: string + Cases_sortField: + description: Determines which field is used to sort the results. + example: updatedAt + in: query + name: sortField + schema: + default: createdAt + enum: + - createdAt + - updatedAt + - closedAt + - title + - category + - status + - severity + type: string + Cases_status: + description: Filters the returned cases by state. + example: open + in: query + name: status + schema: + enum: + - closed + - in-progress + - open + type: string + Cases_tags: + description: Filters the returned cases by tags. + example: tag-1 + in: query + name: tags + schema: + oneOf: + - type: string + - items: + type: string + maxItems: 100 + type: array + Cases_to: + description: > + Returns only cases that were created before a specific date. The date + must be specified as a KQL data range or date match expression. + example: now+1d + in: query + name: to + schema: + type: string + Cases_user_action_types: + description: Determines the types of user actions to return. + example: create_case + in: query + name: types + schema: + items: + enum: + - action + - alert + - assignees + - attachment + - comment + - connector + - create_case + - description + - pushed + - settings + - severity + - status + - tags + - title + - user + type: string + type: array + Connectors_action_id: + description: An identifier for the action. + in: path + name: actionId + required: true + schema: + example: c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad + type: string + Connectors_connector_id: + description: An identifier for the connector. + in: path + name: connectorId + required: true + schema: + example: df770e30-8b8b-11ed-a780-3b746c987a81 + type: string + Connectors_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + Data_views_field_name: + description: The name of the runtime field. + in: path + name: fieldName + required: true + schema: + example: hour_of_day + type: string + Data_views_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + Data_views_view_id: + description: An identifier for the data view. + in: path + name: viewId + required: true + schema: + example: ff959d40-b880-11e8-a6d9-e546fe2bba5f + type: string + Fleet_format: + description: Simplified or legacy format for package inputs + in: query + name: format + required: false + schema: + enum: + - simplified + - legacy + type: string + Fleet_kbn_xsrf: + description: Kibana's anti Cross-Site Request Forgery token. Can be any string value. + in: header + name: kbn-xsrf + required: true + schema: + type: string + Fleet_kuery: + in: query + name: kuery + required: false + schema: + type: string + Fleet_page_index: + in: query + name: page + required: false + schema: + default: 1 + type: integer + Fleet_page_size: + description: The number of items to return + in: query + name: perPage + required: false + schema: + default: 20 + type: integer + Fleet_show_inactive: + in: query + name: showInactive + required: false + schema: + type: boolean + Fleet_show_upgradeable: + in: query + name: showUpgradeable + required: false + schema: + type: boolean + Fleet_sort_field: + in: query + name: sortField + required: false + schema: + deprecated: true + type: string + Fleet_sort_order: + in: query + name: sortOrder + required: false + schema: + enum: + - asc + - desc + type: string + Fleet_with_metrics: + description: 'Return agent metrics, false by default' + in: query + name: withMetrics + required: false + schema: + type: boolean + Machine_learning_APIs_simulateParam: + description: >- + When true, simulates the synchronization by returning only the list of + actions that would be performed. + example: 'true' + in: query + name: simulate + required: false + schema: + type: boolean + Saved_objects_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + Saved_objects_saved_object_id: + description: An identifier for the saved object. + in: path + name: id + required: true + schema: + type: string + Saved_objects_saved_object_type: + description: >- + Valid options include `visualization`, `dashboard`, `search`, + `index-pattern`, `config`. + in: path + name: type + required: true + schema: + type: string + SLOs_kbn_xsrf: + description: Cross-site request forgery protection + in: header + name: kbn-xsrf + required: true + schema: + type: string + SLOs_slo_id: + description: An identifier for the slo. + in: path + name: sloId + required: true + schema: + example: 9c235211-6834-11ea-a78c-6feb38a34414 + type: string + SLOs_space_id: + description: >- + An identifier for the space. If `/s/` and the identifier are omitted + from the path, the default space is used. + in: path + name: spaceId + required: true + schema: + example: default + type: string + responses: + Connectors_200_actions: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Connectors_action_response_properties' + description: Indicates a successful call. + Connectors_401: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + properties: + error: + enum: + - Unauthorized + example: Unauthorized + type: string + message: + type: string + statusCode: + enum: + - 401 + example: 401 + type: integer + title: Unauthorized response + type: object + description: Authorization information is missing or invalid. + Connectors_404: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + properties: + error: + enum: + - Not Found + example: Not Found + type: string + message: + example: >- + Saved object [action/baf33fc0-920c-11ed-b36a-874bd1548a00] not + found + type: string + statusCode: + enum: + - 404 + example: 404 + type: integer + title: Not found response + type: object + description: Object is not found. + Fleet_error: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + error: + type: string + message: + type: string + statusCode: + type: number + description: Generic Error + schemas: + Alerting_401_response: + properties: + error: + enum: + - Unauthorized + example: Unauthorized + type: string + message: + type: string + statusCode: + enum: + - 401 + example: 401 + type: integer + title: Unsuccessful rule API response + type: object + Alerting_alert_response_properties: + title: Legacy alert response properties + type: object + properties: + actions: + items: + type: object + type: array + alertTypeId: + example: .index-threshold + type: string + apiKeyOwner: + example: elastic + nullable: true + type: string + createdAt: + description: The date and time that the alert was created. + example: '2022-12-05T23:36:58.284Z' + format: date-time + type: string + createdBy: + description: The identifier for the user that created the alert. + example: elastic + type: string + enabled: + description: Indicates whether the alert is currently enabled. + example: true + type: boolean + executionStatus: + type: object + properties: + lastExecutionDate: + example: '2022-12-06T00:13:43.890Z' + format: date-time + type: string + status: + example: ok + type: string + id: + description: The identifier for the alert. + example: b530fed0-74f5-11ed-9801-35303b735aef + type: string + muteAll: + example: false + type: boolean + mutedInstanceIds: + items: + type: string + nullable: true + type: array + name: + description: The name of the alert. + example: my alert + type: string + notifyWhen: + example: onActionGroupChange + type: string + params: + additionalProperties: true + type: object + schedule: + type: object + properties: + interval: + type: string + scheduledTaskId: + example: b530fed0-74f5-11ed-9801-35303b735aef + type: string + tags: + items: + type: string + type: array + throttle: + nullable: true + type: string + updatedAt: + example: '2022-12-05T23:36:58.284Z' + type: string + updatedBy: + description: The identifier for the user that updated this alert most recently. + example: elastic + nullable: true + type: string + Alerting_fieldmap_properties: + title: Field map objects in the get rule types response + type: object + properties: + array: + description: Indicates whether the field is an array. + type: boolean + dynamic: + description: Indicates whether it is a dynamic field mapping. + type: boolean + format: + description: > + Indicates the format of the field. For example, if the `type` is + `date_range`, the `format` can be + `epoch_millis||strict_date_optional_time`. + type: string + ignore_above: + description: >- + Specifies the maximum length of a string field. Longer strings are + not indexed or stored. + type: integer + index: + description: Indicates whether field values are indexed. + type: boolean + path: + description: TBD + type: string + properties: + additionalProperties: + type: object + properties: + type: + description: The data type for each object property. + type: string + description: > + Details about the object properties. This property is applicable + when `type` is `object`. + type: object + required: + description: Indicates whether the field is required. + type: boolean + scaling_factor: + description: > + The scaling factor to use when encoding values. This property is + applicable when `type` is `scaled_float`. Values will be multiplied + by this factor at index time and rounded to the closest long value. + type: integer + type: + description: Specifies the data type for the field. + example: scaled_float + type: string + Cases_4xx_response: + properties: + error: + example: Unauthorized + type: string + message: + type: string + statusCode: + example: 401 + type: integer + title: Unsuccessful cases API response + type: object + Cases_action_types: + description: The type of action. + enum: + - assignees + - create_case + - comment + - connector + - delete_case + - description + - pushed + - tags + - title + - status + - settings + - severity + example: create_case + type: string + Cases_actions: + enum: + - add + - create + - delete + - push_to_service + - update + example: create + type: string + Cases_add_alert_comment_request_properties: + description: Defines properties for case comment requests when type is alert. + type: object + properties: + alertId: + $ref: '#/components/schemas/Cases_alert_identifiers' + index: + $ref: '#/components/schemas/Cases_alert_indices' + owner: + $ref: '#/components/schemas/Cases_owners' + rule: + $ref: '#/components/schemas/Cases_rule' + type: + description: The type of comment. + enum: + - alert + example: alert + type: string + required: + - alertId + - index + - owner + - rule + - type + title: Add case comment request properties for alerts + Cases_add_case_comment_request: + description: >- + The add comment to case API request body varies depending on whether you + are adding an alert or a comment. + discriminator: + mapping: + alert: '#/components/schemas/Cases_add_alert_comment_request_properties' + user: '#/components/schemas/Cases_add_user_comment_request_properties' + propertyName: type + oneOf: + - $ref: '#/components/schemas/Cases_add_alert_comment_request_properties' + - $ref: '#/components/schemas/Cases_add_user_comment_request_properties' + title: Add case comment request + Cases_add_user_comment_request_properties: + description: Defines properties for case comment requests when type is user. + properties: + comment: + description: The new comment. It is required only when `type` is `user`. + example: A new comment. + maxLength: 30000 + type: string + owner: + $ref: '#/components/schemas/Cases_owners' + type: + description: The type of comment. + enum: + - user + example: user + type: string + required: + - comment + - owner + - type + title: Add case comment request properties for user comments + type: object + Cases_alert_comment_response_properties: + title: Add case comment response properties for alerts + type: object + properties: + alertId: + items: + example: a6e12ac4-7bce-457b-84f6-d7ce8deb8446 + type: string + type: array + created_at: + example: '2023-11-06T19:29:38.424Z' + format: date-time + type: string created_by: - username: elastic - email: null, - full_name: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - updated_at: null - updated_by: null + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + id: + example: 73362370-ab1a-11ec-985f-97e55adae8b9 + type: string + index: + items: + example: .internal.alerts-security.alerts-default-000001 + type: string + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + pushed_at: + example: null + format: date-time + nullable: true + type: string + pushed_by: + nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + rule: + type: object + properties: + id: + description: The rule identifier. + example: 94d80550-aaf4-11ec-985f-97e55adae8b9 + type: string + name: + description: The rule name. + example: security_rule + type: string + type: + enum: + - alert + example: alert + type: string + updated_at: + format: date-time + nullable: true + type: string + updated_by: + nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + version: + example: WzMwNDgsMV0= + type: string + required: + - type + Cases_alert_identifiers: + description: > + The alert identifiers. It is required only when `type` is `alert`. You + can use an array of strings to add multiple alerts to a case, provided + that they all relate to the same rule; `index` must also be an array + with the same length or number of elements. Adding multiple alerts in + this manner is recommended rather than calling the API multiple times. + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + example: 6b24c4dc44bc720cfc92797f3d61fff952f2b2627db1fb4f8cc49f4530c4ff42 + oneOf: + - type: string + - items: + type: string + maxItems: 1000 + type: array + title: Alert identifiers + x-technical-preview: true + Cases_alert_indices: + description: > + The alert indices. It is required only when `type` is `alert`. If you + are adding multiple alerts to a case, use an array of strings; the + position of each index name in the array must match the position of the + corresponding alert identifier in the `alertId` array. This + functionality is in technical preview and may be changed or removed in a + future release. Elastic will work to fix any issues, but features in + technical preview are not subject to the support SLA of official GA + features. + oneOf: + - type: string + - items: + type: string + maxItems: 1000 + type: array + title: Alert indices + x-technical-preview: true + Cases_alert_response_properties: + type: object + properties: + attached_at: + format: date-time + type: string + id: + description: The alert identifier. + type: string + index: + description: The alert index. + type: string + Cases_assignees: + description: An array containing users that are assigned to the case. + items: + type: object + properties: + uid: + description: >- + A unique identifier for the user profile. These identifiers can be + found by using the suggest user profile API. + example: u_0wpfV1MqYDaXzLtRVY-gLMrddKDEmfz51Fszhj7hWC8_0 + type: string + required: + - uid + maxItems: 10 + nullable: true + type: array + Cases_case_category: + description: A word or phrase that categorizes the case. + maxLength: 50 + type: string + Cases_case_description: + description: The description for the case. + maxLength: 30000 + type: string + Cases_case_response_closed_by_properties: + nullable: true + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + title: Case response properties for closed_by + type: object + Cases_case_response_created_by_properties: + title: Case response properties for created_by + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + Cases_case_response_properties: + title: Case response properties + type: object + properties: + assignees: + $ref: '#/components/schemas/Cases_assignees' + category: + description: The case category. + nullable: true + type: string + closed_at: + format: date-time + nullable: true + type: string + closed_by: + $ref: '#/components/schemas/Cases_case_response_closed_by_properties' + comments: + description: An array of comment objects for the case. + items: + discriminator: + mapping: + alert: '#/components/schemas/Cases_alert_comment_response_properties' + user: '#/components/schemas/Cases_user_comment_response_properties' + propertyName: type + oneOf: + - $ref: '#/components/schemas/Cases_alert_comment_response_properties' + - $ref: '#/components/schemas/Cases_user_comment_response_properties' + maxItems: 10000 + title: Case response properties for comments + type: array connector: - id: 5e656730-e1ca-11ec-be9b-9b1838238ee6 - name: my-jira-connector - type: .jira - fields: null - mappings: - - source: title - target: summary - action_type: overwrite - - source: description - target: description - action_type: overwrite - - source: comments - target: comments - action_type: append - - source: tags - target: labels - action_type: overwrite - version: WzIwNzMsMV0= - error: null - id: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 - Cases_update_case_configuration_request: - summary: Update the case settings. - value: - version: WzExOSw0XQ== + discriminator: + mapping: + .cases-webhook: '#/components/schemas/Cases_connector_properties_cases_webhook' + .jira: '#/components/schemas/Cases_connector_properties_jira' + .none: '#/components/schemas/Cases_connector_properties_none' + .resilient: '#/components/schemas/Cases_connector_properties_resilient' + .servicenow: '#/components/schemas/Cases_connector_properties_servicenow' + .servicenow-sir: '#/components/schemas/Cases_connector_properties_servicenow_sir' + .swimlane: '#/components/schemas/Cases_connector_properties_swimlane' + propertyName: type + oneOf: + - $ref: '#/components/schemas/Cases_connector_properties_none' + - $ref: '#/components/schemas/Cases_connector_properties_cases_webhook' + - $ref: '#/components/schemas/Cases_connector_properties_jira' + - $ref: '#/components/schemas/Cases_connector_properties_resilient' + - $ref: '#/components/schemas/Cases_connector_properties_servicenow' + - $ref: '#/components/schemas/Cases_connector_properties_servicenow_sir' + - $ref: '#/components/schemas/Cases_connector_properties_swimlane' + title: Case response properties for connectors + created_at: + example: '2022-05-13T09:16:17.416Z' + format: date-time + type: string + created_by: + $ref: '#/components/schemas/Cases_case_response_created_by_properties' + customFields: + description: Custom field values for the case. + items: + type: object + properties: + key: + description: > + The unique identifier for the custom field. The key value must + exist in the case configuration settings. + type: string + type: + description: > + The custom field type. It must match the type specified in the + case configuration settings. + enum: + - text + - toggle + type: string + value: + description: > + The custom field value. If the custom field is required, it + cannot be explicitly set to null. However, for cases that + existed when the required custom field was added, the default + value stored in Elasticsearch is `undefined`. The value + returned in the API and user interface in this case is `null`. + oneOf: + - maxLength: 160 + minLength: 1 + nullable: true + type: string + - type: boolean + type: array + description: + example: A case description. + type: string + duration: + description: > + The elapsed time from the creation of the case to its closure (in + seconds). If the case has not been closed, the duration is set to + null. If the case was closed after less than half a second, the + duration is rounded down to zero. + example: 120 + nullable: true + type: integer + external_service: + $ref: '#/components/schemas/Cases_external_service' + id: + example: 66b9aa00-94fa-11ea-9f74-e7e108796192 + type: string + owner: + $ref: '#/components/schemas/Cases_owners' + settings: + $ref: '#/components/schemas/Cases_settings' + severity: + $ref: '#/components/schemas/Cases_case_severity' + status: + $ref: '#/components/schemas/Cases_case_status' + tags: + example: + - tag-1 + items: + type: string + type: array + title: + example: Case title 1 + type: string + totalAlerts: + example: 0 + type: integer + totalComment: + example: 0 + type: integer + updated_at: + format: date-time + nullable: true + type: string + updated_by: + $ref: '#/components/schemas/Cases_case_response_updated_by_properties' + version: + example: WzUzMiwxXQ== + type: string + required: + - closed_at + - closed_by + - comments + - connector + - created_at + - created_by + - description + - duration + - external_service + - id + - owner + - settings + - severity + - status + - tags + - title + - totalAlerts + - totalComment + - updated_at + - updated_by + - version + Cases_case_response_pushed_by_properties: + nullable: true + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + title: Case response properties for pushed_by + type: object + Cases_case_response_updated_by_properties: + nullable: true + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + title: Case response properties for updated_by + type: object + Cases_case_severity: + default: low + description: The severity of the case. + enum: + - critical + - high + - low + - medium + type: string + Cases_case_status: + description: The status of the case. + enum: + - closed + - in-progress + - open + type: string + Cases_case_tags: + description: > + The words and phrases that help categorize cases. It can be an empty + array. + items: + maxLength: 256 + type: string + maxItems: 200 + type: array + Cases_case_title: + description: A title for the case. + maxLength: 160 + type: string + Cases_closure_types: + description: >- + Indicates whether a case is automatically closed when it is pushed to + external systems (`close-by-pushing`) or not automatically closed + (`close-by-user`). + enum: + - close-by-pushing + - close-by-user + example: close-by-user + type: string + Cases_connector_properties_cases_webhook: + description: Defines properties for connectors when type is `.cases-webhook`. + type: object + properties: + fields: + example: null + nullable: true + type: string + id: + description: >- + The identifier for the connector. To retrieve connector IDs, use the + find connectors API. + type: string + name: + description: The name of the connector. + type: string + type: + description: The type of connector. + enum: + - .cases-webhook + example: .cases-webhook + type: string + required: + - fields + - id + - name + - type + title: Create or upate case request properties for Cases Webhook connector + Cases_connector_properties_jira: + description: Defines properties for connectors when type is `.jira`. + type: object + properties: + fields: + description: >- + An object containing the connector fields. If you want to omit any + individual field, specify null as its value. + type: object + properties: + issueType: + description: The type of issue. + nullable: true + type: string + parent: + description: 'The key of the parent issue, when the issue type is sub-task.' + nullable: true + type: string + priority: + description: The priority of the issue. + nullable: true + type: string + required: + - issueType + - parent + - priority + id: + description: >- + The identifier for the connector. To retrieve connector IDs, use the + find connectors API. + type: string + name: + description: The name of the connector. + type: string + type: + description: The type of connector. + enum: + - .jira + example: .jira + type: string + required: + - fields + - id + - name + - type + title: Create or update case request properties for a Jira connector + Cases_connector_properties_none: + description: Defines properties for connectors when type is `.none`. + type: object + properties: + fields: + description: >- + An object containing the connector fields. To create a case without + a connector, specify null. To update a case to remove the connector, + specify null. + example: null + nullable: true + type: string + id: + description: >- + The identifier for the connector. To create a case without a + connector, use `none`. To update a case to remove the connector, + specify `none`. + example: none + type: string + name: + description: >- + The name of the connector. To create a case without a connector, use + `none`. To update a case to remove the connector, specify `none`. + example: none + type: string + type: + description: >- + The type of connector. To create a case without a connector, use + `.none`. To update a case to remove the connector, specify `.none`. + enum: + - .none + example: .none + type: string + required: + - fields + - id + - name + - type + title: Create or update case request properties for no connector + Cases_connector_properties_resilient: + description: Defines properties for connectors when type is `.resilient`. + type: object + properties: + fields: + description: >- + An object containing the connector fields. If you want to omit any + individual field, specify null as its value. + nullable: true + type: object + properties: + issueTypes: + description: The type of incident. + items: + type: string + type: array + severityCode: + description: The severity code of the incident. + type: string + required: + - issueTypes + - severityCode + id: + description: The identifier for the connector. + type: string + name: + description: The name of the connector. + type: string + type: + description: The type of connector. + enum: + - .resilient + example: .resilient + type: string + required: + - fields + - id + - name + - type + title: Create case request properties for a IBM Resilient connector + Cases_connector_properties_servicenow: + description: Defines properties for connectors when type is `.servicenow`. + type: object + properties: + fields: + description: >- + An object containing the connector fields. If you want to omit any + individual field, specify null as its value. + type: object + properties: + category: + description: The category of the incident. + nullable: true + type: string + impact: + description: The effect an incident had on business. + nullable: true + type: string + severity: + description: The severity of the incident. + nullable: true + type: string + subcategory: + description: The subcategory of the incident. + nullable: true + type: string + urgency: + description: The extent to which the incident resolution can be delayed. + nullable: true + type: string + required: + - category + - impact + - severity + - subcategory + - urgency + id: + description: >- + The identifier for the connector. To retrieve connector IDs, use the + find connectors API. + type: string + name: + description: The name of the connector. + type: string + type: + description: The type of connector. + enum: + - .servicenow + example: .servicenow + type: string + required: + - fields + - id + - name + - type + title: Create case request properties for a ServiceNow ITSM connector + Cases_connector_properties_servicenow_sir: + description: Defines properties for connectors when type is `.servicenow-sir`. + type: object + properties: + fields: + description: >- + An object containing the connector fields. If you want to omit any + individual field, specify null as its value. + type: object + properties: + category: + description: The category of the incident. + nullable: true + type: string + destIp: + description: >- + Indicates whether cases will send a comma-separated list of + destination IPs. + nullable: true + type: boolean + malwareHash: + description: >- + Indicates whether cases will send a comma-separated list of + malware hashes. + nullable: true + type: boolean + malwareUrl: + description: >- + Indicates whether cases will send a comma-separated list of + malware URLs. + nullable: true + type: boolean + priority: + description: The priority of the issue. + nullable: true + type: string + sourceIp: + description: >- + Indicates whether cases will send a comma-separated list of + source IPs. + nullable: true + type: boolean + subcategory: + description: The subcategory of the incident. + nullable: true + type: string + required: + - category + - destIp + - malwareHash + - malwareUrl + - priority + - sourceIp + - subcategory + id: + description: >- + The identifier for the connector. To retrieve connector IDs, use the + find connectors API. + type: string + name: + description: The name of the connector. + type: string + type: + description: The type of connector. + enum: + - .servicenow-sir + example: .servicenow-sir + type: string + required: + - fields + - id + - name + - type + title: Create case request properties for a ServiceNow SecOps connector + Cases_connector_properties_swimlane: + description: Defines properties for connectors when type is `.swimlane`. + type: object + properties: + fields: + description: >- + An object containing the connector fields. If you want to omit any + individual field, specify null as its value. + type: object + properties: + caseId: + description: The case identifier for Swimlane connectors. + nullable: true + type: string + required: + - caseId + id: + description: >- + The identifier for the connector. To retrieve connector IDs, use the + find connectors API. + type: string + name: + description: The name of the connector. + type: string + type: + description: The type of connector. + enum: + - .swimlane + example: .swimlane + type: string + required: + - fields + - id + - name + - type + title: Create case request properties for a Swimlane connector + Cases_connector_types: + description: The type of connector. + enum: + - .cases-webhook + - .jira + - .none + - .resilient + - .servicenow + - .servicenow-sir + - .swimlane + example: .none + type: string + Cases_create_case_request: + description: >- + The create case API request body varies depending on the type of + connector. + properties: + assignees: + $ref: '#/components/schemas/Cases_assignees' + category: + $ref: '#/components/schemas/Cases_case_category' connector: - id: 5e656730-e1ca-11ec-be9b-9b1838238ee6 - name: my-jira-connector - type: .jira - fields: null - closure_type: close-by-user - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - label: my-text-field - required: true - type: text - defaultValue: A new default value. - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - label: my-toggle - required: false - type: toggle - Cases_update_case_configuration_response: - summary: This is an example response when the case configuration was updated. - value: - closure_type: close-by-user + oneOf: + - $ref: '#/components/schemas/Cases_connector_properties_none' + - $ref: '#/components/schemas/Cases_connector_properties_cases_webhook' + - $ref: '#/components/schemas/Cases_connector_properties_jira' + - $ref: '#/components/schemas/Cases_connector_properties_resilient' + - $ref: '#/components/schemas/Cases_connector_properties_servicenow' + - $ref: '#/components/schemas/Cases_connector_properties_servicenow_sir' + - $ref: '#/components/schemas/Cases_connector_properties_swimlane' customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - label: my-text-field - required: true - type: text - defaultValue: A new default value. - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - label: my-toggle - required: false - type: toggle - owner: cases - created_at: '2024-07-01T17:07:17.767Z' - created_by: - username: elastic - email: null - full_name: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - updated_at: '2024-07-19T00:52:42.401Z' - updated_by: - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + description: > + Custom field values for a case. Any optional custom fields that are + not specified in the request are set to null. + items: + type: object + properties: + key: + description: > + The unique identifier for the custom field. The key value must + exist in the case configuration settings. + type: string + type: + description: > + The custom field type. It must match the type specified in the + case configuration settings. + enum: + - text + - toggle + type: string + value: + description: > + The custom field value. If the custom field is required, it + cannot be explicitly set to null. However, for cases that + existed when the required custom field was added, the default + value stored in Elasticsearch is `undefined`. The value + returned in the API and user interface in this case is `null`. + oneOf: + - maxLength: 160 + minLength: 1 + nullable: true + type: string + - type: boolean + required: + - key + - type + - value + maxItems: 10 + minItems: 0 + type: array + description: + $ref: '#/components/schemas/Cases_case_description' + owner: + $ref: '#/components/schemas/Cases_owners' + settings: + $ref: '#/components/schemas/Cases_settings' + severity: + $ref: '#/components/schemas/Cases_case_severity' + tags: + $ref: '#/components/schemas/Cases_case_tags' + title: + $ref: '#/components/schemas/Cases_case_title' + required: + - connector + - description + - owner + - settings + - tags + - title + title: Create case request + type: object + Cases_external_service: + nullable: true + type: object + properties: + connector_id: + type: string + connector_name: + type: string + external_id: + type: string + external_title: + type: string + external_url: + type: string + pushed_at: + format: date-time + type: string + pushed_by: + nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + Cases_owners: + description: > + The application that owns the cases: Stack Management, Observability, or + Elastic Security. + enum: + - cases + - observability + - securitySolution + example: cases + type: string + Cases_payload_alert_comment: + type: object + properties: + comment: + type: object + properties: + alertId: + oneOf: + - example: 1c0b056b-cc9f-4b61-b5c9-cb801abd5e1d + type: string + - items: + type: string + type: array + index: + oneOf: + - example: .alerts-observability.logs.alerts-default + type: string + - items: + type: string + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + rule: + type: object + properties: + id: + description: The rule identifier. + example: 94d80550-aaf4-11ec-985f-97e55adae8b9 + type: string + name: + description: The rule name. + example: security_rule + type: string + type: + enum: + - alert + type: string + Cases_payload_assignees: + type: object + properties: + assignees: + $ref: '#/components/schemas/Cases_assignees' + Cases_payload_connector: + type: object + properties: connector: - id: 5e656730-e1ca-11ec-be9b-9b1838238ee6 - name: my-jira-connector - type: .jira - fields: null - mappings: - - source: title - target: summary - action_type: overwrite - - source: description - target: description - action_type: overwrite - - source: tags - target: labels - action_type: overwrite - - source: comments - target: comments - action_type: append - version: WzI2LDNd - error: null - id: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 - templates: [] - Cases_get_reporters_response: - summary: A list of two users that opened cases - value: - - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - - username: jdoe - full_name: Jane Doe - email: jdoe@example.com - profile_uid: u_0wpfV1MqYDaXzLtRVY-gLMrddKDEmfz51Fszhj7hWC8_0 - Cases_get_tags_response: - summary: A list of tags that are used in cases - value: - - observability - - security - - tag 1 - - tag 2 - Cases_get_case_response: - summary: Retrieves information about a case including its comments. - value: - id: 31cdada0-02c1-11ed-85f2-4f7c222ca2fa - version: WzM2LDFd - comments: - - id: 2134c1d0-02c2-11ed-85f2-4f7c222ca2fa - version: WzM3LDFd - type: user - owner: cases - comment: A new comment - created_at: '2023-10-13T15:40:32.335Z' - created_by: - email: null - full_name: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - pushed_at: null - pushed_by: null - updated_at: null - updated_by: null - totalComment: 1 - totalAlerts: 0 - title: Case title 1 - tags: - - tag 1 + type: object + properties: + fields: + description: >- + An object containing the connector fields. To create a case + without a connector, specify null. If you want to omit any + individual field, specify null as its value. + example: null + nullable: true + type: object + properties: + caseId: + description: The case identifier for Swimlane connectors. + type: string + category: + description: >- + The category of the incident for ServiceNow ITSM and + ServiceNow SecOps connectors. + type: string + destIp: + description: >- + Indicates whether cases will send a comma-separated list of + destination IPs for ServiceNow SecOps connectors. + nullable: true + type: boolean + impact: + description: >- + The effect an incident had on business for ServiceNow ITSM + connectors. + type: string + issueType: + description: The type of issue for Jira connectors. + type: string + issueTypes: + description: The type of incident for IBM Resilient connectors. + items: + type: string + type: array + malwareHash: + description: >- + Indicates whether cases will send a comma-separated list of + malware hashes for ServiceNow SecOps connectors. + nullable: true + type: boolean + malwareUrl: + description: >- + Indicates whether cases will send a comma-separated list of + malware URLs for ServiceNow SecOps connectors. + nullable: true + type: boolean + parent: + description: >- + The key of the parent issue, when the issue type is sub-task + for Jira connectors. + type: string + priority: + description: >- + The priority of the issue for Jira and ServiceNow SecOps + connectors. + type: string + severity: + description: The severity of the incident for ServiceNow ITSM connectors. + type: string + severityCode: + description: >- + The severity code of the incident for IBM Resilient + connectors. + type: string + sourceIp: + description: >- + Indicates whether cases will send a comma-separated list of + source IPs for ServiceNow SecOps connectors. + nullable: true + type: boolean + subcategory: + description: >- + The subcategory of the incident for ServiceNow ITSM + connectors. + type: string + urgency: + description: >- + The extent to which the incident resolution can be delayed + for ServiceNow ITSM connectors. + type: string + id: + description: >- + The identifier for the connector. To create a case without a + connector, use `none`. + example: none + type: string + name: + description: >- + The name of the connector. To create a case without a connector, + use `none`. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + Cases_payload_create_case: + type: object + properties: + assignees: + $ref: '#/components/schemas/Cases_assignees' + connector: + type: object + properties: + fields: + description: >- + An object containing the connector fields. To create a case + without a connector, specify null. If you want to omit any + individual field, specify null as its value. + example: null + nullable: true + type: object + properties: + caseId: + description: The case identifier for Swimlane connectors. + type: string + category: + description: >- + The category of the incident for ServiceNow ITSM and + ServiceNow SecOps connectors. + type: string + destIp: + description: >- + Indicates whether cases will send a comma-separated list of + destination IPs for ServiceNow SecOps connectors. + nullable: true + type: boolean + impact: + description: >- + The effect an incident had on business for ServiceNow ITSM + connectors. + type: string + issueType: + description: The type of issue for Jira connectors. + type: string + issueTypes: + description: The type of incident for IBM Resilient connectors. + items: + type: string + type: array + malwareHash: + description: >- + Indicates whether cases will send a comma-separated list of + malware hashes for ServiceNow SecOps connectors. + nullable: true + type: boolean + malwareUrl: + description: >- + Indicates whether cases will send a comma-separated list of + malware URLs for ServiceNow SecOps connectors. + nullable: true + type: boolean + parent: + description: >- + The key of the parent issue, when the issue type is sub-task + for Jira connectors. + type: string + priority: + description: >- + The priority of the issue for Jira and ServiceNow SecOps + connectors. + type: string + severity: + description: The severity of the incident for ServiceNow ITSM connectors. + type: string + severityCode: + description: >- + The severity code of the incident for IBM Resilient + connectors. + type: string + sourceIp: + description: >- + Indicates whether cases will send a comma-separated list of + source IPs for ServiceNow SecOps connectors. + nullable: true + type: boolean + subcategory: + description: >- + The subcategory of the incident for ServiceNow ITSM + connectors. + type: string + urgency: + description: >- + The extent to which the incident resolution can be delayed + for ServiceNow ITSM connectors. + type: string + id: + description: >- + The identifier for the connector. To create a case without a + connector, use `none`. + example: none + type: string + name: + description: >- + The name of the connector. To create a case without a connector, + use `none`. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + description: + type: string + owner: + $ref: '#/components/schemas/Cases_owners' settings: - syncAlerts: true - owner: cases - category: null - customFields: - - type: text - key: d312efda-ec2b-42ec-9e2c-84981795c581 - value: My field value - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - type: toggle - value: null - description: A case description - duration: null - severity: low - closed_at: null - closed_by: null - created_at: '2023-10-13T15:33:50.604Z' - created_by: - username: elastic - email: null - full_name: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - status: open - updated_at: '2023-10-13T15:40:32.335Z' - updated_by: - full_name: null - email: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - assignees: - - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - connector: - id: none - name: none - type: .none - fields: null - external_service: null - Cases_get_case_observability_response: - summary: >- - Retrieves information about an Observability case including its alerts - and comments. - value: - description: An Observability case description. - owner: observability + $ref: '#/components/schemas/Cases_settings' + severity: + $ref: '#/components/schemas/Cases_case_severity' + status: + $ref: '#/components/schemas/Cases_case_status' + tags: + items: + example: + - tag-1 + type: string + type: array + title: + type: string + Cases_payload_delete: + description: >- + If the `action` is `delete` and the `type` is `delete_case`, the payload + is nullable. + nullable: true + type: object + Cases_payload_description: + type: object + properties: + description: + type: string + Cases_payload_pushed: + type: object + properties: + externalService: + $ref: '#/components/schemas/Cases_external_service' + Cases_payload_settings: + type: object + properties: settings: - syncAlerts: false + $ref: '#/components/schemas/Cases_settings' + Cases_payload_severity: + type: object + properties: + severity: + $ref: '#/components/schemas/Cases_case_severity' + Cases_payload_status: + type: object + properties: + status: + $ref: '#/components/schemas/Cases_case_status' + Cases_payload_tags: + type: object + properties: tags: - - observability - - tag 1 - title: Observability case title 1 - category: null - customFields: [] - assignees: - - uid: u_0wpfV1MqYDaXzLtRVY-gLMrddKDEmfz51Fszhj7hWC8_0 + example: + - tag-1 + items: + type: string + type: array + Cases_payload_title: + type: object + properties: + title: + type: string + Cases_payload_user_comment: + type: object + properties: + comment: + type: object + properties: + comment: + type: string + owner: + $ref: '#/components/schemas/Cases_owners' + type: + enum: + - user + type: string + Cases_rule: + description: > + The rule that is associated with the alerts. It is required only when + `type` is `alert`. This functionality is in technical preview and may be + changed or removed in a future release. Elastic will work to fix any + issues, but features in technical preview are not subject to the support + SLA of official GA features. + title: Alerting rule + type: object + properties: + id: + description: The rule identifier. + example: 94d80550-aaf4-11ec-985f-97e55adae8b9 + type: string + name: + description: The rule name. + example: security_rule + type: string + x-technical-preview: true + Cases_searchFieldsType: + description: The fields to perform the `simple_query_string` parsed query against. + enum: + - description + - title + type: string + Cases_set_case_configuration_request: + description: >- + External connection details, such as the closure type and default + connector for cases. + properties: + closure_type: + $ref: '#/components/schemas/Cases_closure_types' connector: - id: none - type: .none - fields: null - name: none - severity: low - status: in-progress - duration: null - closed_at: null - closed_by: null - created_at: '2023-11-06T19:29:04.086Z' - created_by: - username: elastic - full_name: null - email: null - updated_at: '2023-11-06T19:47:55.662Z' - updated_by: - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - external_service: null - id: c3ff7550-def1-4e90-b6bc-c9969a4a09b1 - version: WzI0NywyXQ== - totalComment: 1 - totalAlerts: 1 - comments: - - alertId: - - a6e12ac4-7bce-457b-84f6-d7ce8deb8446 - index: - - .internal.alerts-observability.logs.alerts-default-000001 - type: alert - rule: - id: 03e4eb87-62ca-4e5d-9570-3d7625e9669d - name: Observability rule - owner: observability - created_at: '2023-11-06T19:29:38.424Z' - created_by: - email: null - full_name: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - pushed_at: null - pushed_by: null - updated_at: null - updated_by: null - id: 59d438d0-79a9-4864-8d4b-e63adacebf6e - version: WzY3LDJd - - comment: The first comment. - type: user - owner: observability - created_at: '2023-11-06T19:29:57.812Z' - created_by: - email: null - full_name: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - pushed_at: null - pushed_by: null - updated_at: null - updated_by: null - id: d99342d3-3aa3-4b80-90ec-a702607604f5 - version: WzcyLDJd - Cases_get_case_alerts_response: - summary: Retrieves all alerts attached to a case - value: - - id: f6a7d0c3-d52d-432c-b2e6-447cd7fce04d - index: .alerts-observability.logs.alerts-default - attached_at: '2022-07-25T20:09:40.963Z' - Cases_add_comment_request: - summary: Adds a comment to a case. - value: - type: user - comment: A new comment. - owner: cases - Cases_add_comment_response: - summary: >- - The add comment to case API returns a JSON object that contains details - about the case and its comments. - value: - comments: - - id: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 - version: WzIwNDMxLDFd - type: user - owner: cases - comment: A new comment. - created_at: '2022-10-02T00:49:47.716Z' - created_by: - username: elastic - email: null - full_name: null - totalAlerts: 0 - id: 293f1bc0-74f6-11ea-b83a-553aecdb28b6 - version: WzIzMzgsMV0= - totalComment: 1 - title: Case title 1 - tags: - - tag 1 - description: A case description. - category: null - assignees: [] + description: An object that contains the connector configuration. + type: object + properties: + fields: + description: >- + The fields specified in the case configuration are not used and + are not propagated to individual cases, therefore it is + recommended to set it to `null`. + nullable: true + type: object + id: + description: >- + The identifier for the connector. If you do not want a default + connector, use `none`. To retrieve connector IDs, use the find + connectors API. + example: none + type: string + name: + description: >- + The name of the connector. If you do not want a default + connector, use `none`. To retrieve connector names, use the find + connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + required: + - fields + - id + - name + - type customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - type: text - value: Field value - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - type: toggle - value: true - settings: - syncAlerts: false - owner: cases - duration: null - severity: low - closed_at: null - closed_by: null - created_at: '2022-03-24T00:37:03.906Z' - created_by: - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - status: open - updated_at: '2022-06-03T00:49:47.716Z' - updated_by: - username: elastic - email: null - full_name: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 + description: Custom fields case configuration. + items: + type: object + properties: + defaultValue: + description: > + A default value for the custom field. If the `type` is `text`, + the default value must be a string. If the `type` is `toggle`, + the default value must be boolean. + oneOf: + - type: string + - type: boolean + key: + description: > + A unique key for the custom field. Must be lower case and + composed only of a-z, 0-9, '_', and '-' characters. It is used + in API calls to refer to a specific custom field. + maxLength: 36 + minLength: 1 + type: string + label: + description: The custom field label that is displayed in the case. + maxLength: 50 + minLength: 1 + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + required: + description: > + Indicates whether the field is required. If `false`, the + custom field can be set to null or omitted when a case is + created or updated. + type: boolean + required: + - key + - label + - required + - type + maxItems: 10 + minItems: 0 + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + templates: + $ref: '#/components/schemas/Cases_templates' + required: + - closure_type + - connector + - owner + title: Set case configuration request + type: object + Cases_settings: + description: An object that contains the case settings. + type: object + properties: + syncAlerts: + description: Turns alert syncing on or off. + example: true + type: boolean + required: + - syncAlerts + Cases_template_tags: + description: > + The words and phrases that help categorize templates. It can be an empty + array. + items: + maxLength: 256 + type: string + maxItems: 200 + type: array + Cases_templates: + items: + type: object + properties: + caseFields: + type: object + properties: + assignees: + $ref: '#/components/schemas/Cases_assignees' + category: + $ref: '#/components/schemas/Cases_case_category' + connector: + type: object + properties: + fields: + description: >- + The fields specified in the case configuration are not + used and are not propagated to individual cases, therefore + it is recommended to set it to `null`. + nullable: true + type: object + id: + description: >- + The identifier for the connector. If you do not want a + default connector, use `none`. To retrieve connector IDs, + use the find connectors API. + example: none + type: string + name: + description: >- + The name of the connector. If you do not want a default + connector, use `none`. To retrieve connector names, use + the find connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + customFields: + description: Custom field values in the template. + items: + type: object + properties: + key: + description: The unique key for the custom field. + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + value: + description: > + The default value for the custom field when a case uses + the template. If the `type` is `text`, the default value + must be a string. If the `type` is `toggle`, the default + value must be boolean. + oneOf: + - type: string + - type: boolean + type: array + x-technical-preview: true + description: + $ref: '#/components/schemas/Cases_case_description' + settings: + $ref: '#/components/schemas/Cases_settings' + severity: + $ref: '#/components/schemas/Cases_case_severity' + tags: + $ref: '#/components/schemas/Cases_case_tags' + title: + $ref: '#/components/schemas/Cases_case_title' + description: + description: A description for the template. + type: string + key: + description: > + A unique key for the template. Must be lower case and composed + only of a-z, 0-9, '_', and '-' characters. It is used in API calls + to refer to a specific template. + type: string + name: + description: The name of the template. + type: string + tags: + $ref: '#/components/schemas/Cases_template_tags' + type: array + x-technical-preview: true + Cases_update_alert_comment_request_properties: + description: Defines properties for case comment requests when type is alert. + type: object + properties: + alertId: + $ref: '#/components/schemas/Cases_alert_identifiers' + id: + description: > + The identifier for the comment. To retrieve comment IDs, use the get + comments API. + example: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 + type: string + index: + $ref: '#/components/schemas/Cases_alert_indices' + owner: + $ref: '#/components/schemas/Cases_owners' + rule: + $ref: '#/components/schemas/Cases_rule' + type: + description: The type of comment. + enum: + - alert + example: alert + type: string + version: + description: > + The current comment version. To retrieve version values, use the get + comments API. + example: Wzk1LDFd + type: string + required: + - alertId + - id + - index + - owner + - rule + - type + - version + title: Update case comment request properties for alerts + Cases_update_case_comment_request: + description: >- + The update case comment API request body varies depending on whether you + are updating an alert or a comment. + discriminator: + mapping: + alert: '#/components/schemas/Cases_update_alert_comment_request_properties' + user: '#/components/schemas/Cases_update_user_comment_request_properties' + propertyName: type + oneOf: + - $ref: '#/components/schemas/Cases_update_alert_comment_request_properties' + - $ref: '#/components/schemas/Cases_update_user_comment_request_properties' + title: Update case comment request + Cases_update_case_configuration_request: + description: > + You can update settings such as the closure type, custom fields, + templates, and the default connector for cases. + properties: + closure_type: + $ref: '#/components/schemas/Cases_closure_types' connector: - id: none - name: none - type: .none - fields: null - external_service: null - Cases_update_comment_request: - summary: Updates a comment of a case. - value: - id: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 - version: Wzk1LDFd - type: user - comment: An updated comment. - owner: cases - Cases_update_comment_response: - summary: >- - The add comment to case API returns a JSON object that contains details - about the case and its comments. - value: - comments: - - id: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 - version: WzIwNjM3LDFd - comment: An updated comment. - type: user - owner: cases - created_at: '2023-10-24T00:37:10.832Z' - created_by: - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - pushed_at: null - pushed_by: null - updated_at: '2023-10-24T01:27:06.210Z' - updated_by: - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - totalAlerts: 0 - id: 293f1bc0-74f6-11ea-b83a-553aecdb28b6 - version: WzIwNjM2LDFd - totalComment: 1 - title: Case title 1 - tags: - - tag 1 - description: A case description. - settings: - syncAlerts: false - owner: cases - category: null - assignees: [] + description: An object that contains the connector configuration. + type: object + properties: + fields: + description: >- + The fields specified in the case configuration are not used and + are not propagated to individual cases, therefore it is + recommended to set it to `null`. + nullable: true + type: object + id: + description: >- + The identifier for the connector. If you do not want a default + connector, use `none`. To retrieve connector IDs, use the find + connectors API. + example: none + type: string + name: + description: >- + The name of the connector. If you do not want a default + connector, use `none`. To retrieve connector names, use the find + connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + required: + - fields + - id + - name + - type customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - type: text - value: My new field value - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - type: toggle - value: false - duration: null - severity: low - closed_at: null - closed_by: null - created_at: '2023-10-24T00:37:03.906Z' + description: Custom fields case configuration. + items: + type: object + properties: + defaultValue: + description: > + A default value for the custom field. If the `type` is `text`, + the default value must be a string. If the `type` is `toggle`, + the default value must be boolean. + oneOf: + - type: string + - type: boolean + key: + description: > + A unique key for the custom field. Must be lower case and + composed only of a-z, 0-9, '_', and '-' characters. It is used + in API calls to refer to a specific custom field. + maxLength: 36 + minLength: 1 + type: string + label: + description: The custom field label that is displayed in the case. + maxLength: 50 + minLength: 1 + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + required: + description: > + Indicates whether the field is required. If `false`, the + custom field can be set to null or omitted when a case is + created or updated. + type: boolean + required: + - key + - label + - required + - type + type: array + templates: + $ref: '#/components/schemas/Cases_templates' + version: + description: > + The version of the connector. To retrieve the version value, use the + get configuration API. + example: WzIwMiwxXQ== + type: string + required: + - version + title: Update case configuration request + type: object + Cases_update_case_request: + description: >- + The update case API request body varies depending on the type of + connector. + properties: + cases: + description: An array containing one or more case objects. + items: + type: object + properties: + assignees: + $ref: '#/components/schemas/Cases_assignees' + category: + $ref: '#/components/schemas/Cases_case_category' + connector: + oneOf: + - $ref: '#/components/schemas/Cases_connector_properties_none' + - $ref: >- + #/components/schemas/Cases_connector_properties_cases_webhook + - $ref: '#/components/schemas/Cases_connector_properties_jira' + - $ref: '#/components/schemas/Cases_connector_properties_resilient' + - $ref: '#/components/schemas/Cases_connector_properties_servicenow' + - $ref: >- + #/components/schemas/Cases_connector_properties_servicenow_sir + - $ref: '#/components/schemas/Cases_connector_properties_swimlane' + customFields: + description: > + Custom field values for a case. Any optional custom fields + that are not specified in the request are set to null. + items: + type: object + properties: + key: + description: > + The unique identifier for the custom field. The key + value must exist in the case configuration settings. + type: string + type: + description: > + The custom field type. It must match the type specified + in the case configuration settings. + enum: + - text + - toggle + type: string + value: + description: > + The custom field value. If the custom field is required, + it cannot be explicitly set to null. However, for cases + that existed when the required custom field was added, + the default value stored in Elasticsearch is + `undefined`. The value returned in the API and user + interface in this case is `null`. + oneOf: + - maxLength: 160 + minLength: 1 + nullable: true + type: string + - type: boolean + required: + - key + - type + - value + maxItems: 10 + minItems: 0 + type: array + description: + $ref: '#/components/schemas/Cases_case_description' + id: + description: The identifier for the case. + maxLength: 30000 + type: string + settings: + $ref: '#/components/schemas/Cases_settings' + severity: + $ref: '#/components/schemas/Cases_case_severity' + status: + $ref: '#/components/schemas/Cases_case_status' + tags: + $ref: '#/components/schemas/Cases_case_tags' + title: + $ref: '#/components/schemas/Cases_case_title' + version: + description: >- + The current version of the case. To determine this value, use + the get case or find cases APIs. + type: string + required: + - id + - version + maxItems: 100 + minItems: 1 + type: array + required: + - cases + title: Update case request + type: object + Cases_update_user_comment_request_properties: + description: Defines properties for case comment requests when type is user. + properties: + comment: + description: The new comment. It is required only when `type` is `user`. + example: A new comment. + maxLength: 30000 + type: string + id: + description: > + The identifier for the comment. To retrieve comment IDs, use the get + comments API. + example: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 + type: string + owner: + $ref: '#/components/schemas/Cases_owners' + type: + description: The type of comment. + enum: + - user + example: user + type: string + version: + description: > + The current comment version. To retrieve version values, use the get + comments API. + example: Wzk1LDFd + type: string + required: + - comment + - id + - owner + - type + - version + title: Update case comment request properties for user comments + type: object + Cases_user_actions_find_response_properties: + type: object + properties: + action: + $ref: '#/components/schemas/Cases_actions' + comment_id: + example: 578608d0-03b1-11ed-920c-974bfa104448 + nullable: true + type: string + created_at: + example: '2022-05-13T09:16:17.416Z' + format: date-time + type: string created_by: - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - status: open - updated_at: '2023-10-24T01:27:06.210Z' - updated_by: - username: elastic - full_name: null - email: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - connector: - id: none - name: none - type: .none - fields: null - external_service: null - Cases_get_comment_response: - summary: A single user comment retrieved from a case - value: - id: 8048b460-fe2b-11ec-b15d-779a7c8bbcc3 - version: WzIzLDFd - type: user - owner: cases - comment: A new comment - created_at: '2023-10-07T19:32:13.104Z' + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + id: + example: 22fd3e30-03b1-11ed-920c-974bfa104448 + type: string + owner: + $ref: '#/components/schemas/Cases_owners' + payload: + oneOf: + - $ref: '#/components/schemas/Cases_payload_alert_comment' + - $ref: '#/components/schemas/Cases_payload_assignees' + - $ref: '#/components/schemas/Cases_payload_connector' + - $ref: '#/components/schemas/Cases_payload_create_case' + - $ref: '#/components/schemas/Cases_payload_delete' + - $ref: '#/components/schemas/Cases_payload_description' + - $ref: '#/components/schemas/Cases_payload_pushed' + - $ref: '#/components/schemas/Cases_payload_settings' + - $ref: '#/components/schemas/Cases_payload_severity' + - $ref: '#/components/schemas/Cases_payload_status' + - $ref: '#/components/schemas/Cases_payload_tags' + - $ref: '#/components/schemas/Cases_payload_title' + - $ref: '#/components/schemas/Cases_payload_user_comment' + type: + description: The type of action. + enum: + - assignees + - create_case + - comment + - connector + - description + - pushed + - tags + - title + - status + - settings + - severity + example: create_case + type: string + version: + example: WzM1ODg4LDFd + type: string + required: + - action + - comment_id + - created_at + - created_by + - id + - owner + - payload + - type + - version + Cases_user_actions_response_properties: + type: object + properties: + action: + $ref: '#/components/schemas/Cases_actions' + action_id: + example: 22fd3e30-03b1-11ed-920c-974bfa104448 + type: string + case_id: + example: 22df07d0-03b1-11ed-920c-974bfa104448 + type: string + comment_id: + example: 578608d0-03b1-11ed-920c-974bfa104448 + nullable: true + type: string + created_at: + example: '2022-05-13T09:16:17.416Z' + format: date-time + type: string created_by: - email: null - full_name: null - username: elastic - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - pushed_at: null - pushed_by: null - updated_at: null - updated_by: null - Cases_push_case_response: - summary: >- - The push case API returns a JSON object with details about the case and - the external service. - value: - id: b917f300-0ed9-11ed-bd18-65557fe66949 - version: WzE3NjgsM10= - comments: [] - totalComment: 0 - totalAlerts: 0 - description: A case description. - title: Case title 1 - tags: - - tag 1 - settings: - syncAlerts: true - owner: cases - duration: null - severity: low - closed_at: null - closed_by: null - created_at: '2022-07-29T00:59:39.444Z' + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + owner: + $ref: '#/components/schemas/Cases_owners' + payload: + oneOf: + - $ref: '#/components/schemas/Cases_payload_alert_comment' + - $ref: '#/components/schemas/Cases_payload_assignees' + - $ref: '#/components/schemas/Cases_payload_connector' + - $ref: '#/components/schemas/Cases_payload_create_case' + - $ref: '#/components/schemas/Cases_payload_delete' + - $ref: '#/components/schemas/Cases_payload_description' + - $ref: '#/components/schemas/Cases_payload_pushed' + - $ref: '#/components/schemas/Cases_payload_settings' + - $ref: '#/components/schemas/Cases_payload_severity' + - $ref: '#/components/schemas/Cases_payload_status' + - $ref: '#/components/schemas/Cases_payload_tags' + - $ref: '#/components/schemas/Cases_payload_title' + - $ref: '#/components/schemas/Cases_payload_user_comment' + type: + $ref: '#/components/schemas/Cases_action_types' + required: + - action + - action_id + - case_id + - comment_id + - created_at + - created_by + - owner + - payload + - type + Cases_user_comment_response_properties: + title: Case response properties for user comments + type: object + properties: + comment: + example: A new comment. + type: string + created_at: + example: '2022-05-13T09:16:17.416Z' + format: date-time + type: string created_by: - username: elastic - email: null - full_name: null - status: open - updated_at: '2022-07-29T01:20:58.436Z' + $ref: '#/components/schemas/Cases_case_response_created_by_properties' + id: + example: 8af6ac20-74f6-11ea-b83a-553aecdb28b6 + type: string + owner: + $ref: '#/components/schemas/Cases_owners' + pushed_at: + example: null + format: date-time + nullable: true + type: string + pushed_by: + $ref: '#/components/schemas/Cases_case_response_pushed_by_properties' + type: + enum: + - user + example: user + type: string + updated_at: + example: null + format: date-time + nullable: true + type: string updated_by: - username: elastic - full_name: null - email: null - connector: - id: 09f8c0b0-0eda-11ed-bd18-65557fe66949 - name: My connector - type: .jira - fields: - issueType: '10006' - parent: null - priority: Low - external_service: - pushed_at: '2022-07-29T01:20:58.436Z' - pushed_by: - username: elastic - full_name: null - email: null - connector_name: My connector - external_id: '71926' - external_title: ES-554 - external_url: https://cases.jira.com - connector_id: 09f8c0b0-0eda-11ed-bd18-65557fe66949 - Cases_find_case_activity_response: - summary: Retrieves all activity for a case - value: - page: 1 - perPage: 20 - total: 3 - userActions: - - id: b4cd0770-07c9-11ed-a5fd-47154cb8767e - action: create - comment_id: null - created_at: '2023-10-20T01:17:22.150Z' - created_by: - username: elastic - email: null - full_name: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - owner: cases - payload: - assignees: [] - connector: - name: none - type: .none - fields: null - id: none - description: A case description. - tags: - - tag 1 - title: Case title 1 - owner: cases - settings: - syncAlerts: false - severity: low - status: open - category: null - customFields: - - key: d312efda-ec2b-42ec-9e2c-84981795c581 - type: text - value: My field value - - key: fcc6840d-eb14-42df-8aaf-232201a705ec - type: toggle - value: null - version: WzM1ODg4LDFd - type: create_case - - id: 57af14a0-03b1-11ed-920c-974bfa104448 - action: create - comment_id: 578608d0-03b1-11ed-920c-974bfa104448 - created_at: '2023-10-14T20:12:53.354Z' - created_by: - username: elastic - email: null - full_name: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - owner: cases - payload: - comment: A new comment - owner: cases - type: user - version: WzM1ODg4LDFa - type: comment - - id: 573c6980-6123-11ed-aa41-81a0a61fe447 - action: add - comment_id: null - created_at: '2023-10-20T01:10:28.238Z' - created_by: - username: elastic - email: null - full_name: null - profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - owner: cases - payload: - assignees: - uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0 - version: WzM1ODg4LDFb - type: assignees - Cases_find_connector_response: - summary: Retrieve information about the connectors and their settings. - value: - - id: 61787f53-4eee-4741-8df6-8fe84fa616f7 - actionTypeId: .jira - name: my-Jira - isMissingSecrets: false - config: - apiUrl: https://elastic.atlassian.net/ - projectKey: ES - isPreconfigured: false - isDeprecated: false - referencedByCount: 0 - Connectors_create_email_connector_request: - summary: Create an email connector. - value: - name: email-connector-1 - connector_type_id: .email + $ref: '#/components/schemas/Cases_case_response_updated_by_properties' + version: + example: WzIwNDMxLDFd + type: string + required: + - type + Connectors_action_response_properties: + description: The properties vary depending on the action type. + properties: + actionTypeId: + type: string + config: + type: object + id: + type: string + isDeprecated: + description: Indicates whether the action type is deprecated. + type: boolean + isMissingSecrets: + description: Indicates whether secrets are missing for the action. + type: boolean + isPreconfigured: + description: Indicates whether it is a preconfigured action. + type: boolean + name: + type: string + title: Action response properties + type: object + Connectors_config_properties_bedrock: + description: Defines properties for connectors when type is `.bedrock`. + properties: + apiUrl: + description: The Amazon Bedrock request URL. + type: string + defaultModel: + default: 'anthropic.claude-3-5-sonnet-20240620-v1:0' + description: > + The generative artificial intelligence model for Amazon Bedrock to + use. Current support is for the Anthropic Claude models. + type: string + required: + - apiUrl + title: Connector request properties for an Amazon Bedrock connector + type: object + Connectors_config_properties_cases_webhook: + description: Defines properties for connectors when type is `.cases-webhook`. + type: object + properties: + createCommentJson: + description: > + A JSON payload sent to the create comment URL to create a case + comment. You can use variables to add Kibana Cases data to the + payload. The required variable is `case.comment`. Due to Mustache + template variables (the text enclosed in triple braces, for example, + `{{{case.title}}}`), the JSON is not validated when you create the + connector. The JSON is validated once the Mustache variables have + been placed when the REST method runs. Manually ensure that the JSON + is valid, disregarding the Mustache variables, so the later + validation will pass. + example: '{"body": {{{case.comment}}}}' + type: string + createCommentMethod: + default: put + description: > + The REST API HTTP request method to create a case comment in the + third-party system. Valid values are `patch`, `post`, and `put`. + enum: + - patch + - post + - put + type: string + createCommentUrl: + description: > + The REST API URL to create a case comment by ID in the third-party + system. You can use a variable to add the external system ID to the + URL. If you are using the `xpack.actions.allowedHosts setting`, add + the hostname to the allowed hosts. + example: 'https://example.com/issue/{{{external.system.id}}}/comment' + type: string + createIncidentJson: + description: > + A JSON payload sent to the create case URL to create a case. You can + use variables to add case data to the payload. Required variables + are `case.title` and `case.description`. Due to Mustache template + variables (which is the text enclosed in triple braces, for example, + `{{{case.title}}}`), the JSON is not validated when you create the + connector. The JSON is validated after the Mustache variables have + been placed when REST method runs. Manually ensure that the JSON is + valid to avoid future validation errors; disregard Mustache + variables during your review. + example: >- + {"fields": {"summary": {{{case.title}}},"description": + {{{case.description}}},"labels": {{{case.tags}}}}} + type: string + createIncidentMethod: + default: post + description: > + The REST API HTTP request method to create a case in the third-party + system. Valid values are `patch`, `post`, and `put`. + enum: + - patch + - post + - put + type: string + createIncidentResponseKey: + description: >- + The JSON key in the create external case response that contains the + case ID. + type: string + createIncidentUrl: + description: > + The REST API URL to create a case in the third-party system. If you + are using the `xpack.actions.allowedHosts` setting, add the hostname + to the allowed hosts. + type: string + getIncidentResponseExternalTitleKey: + description: >- + The JSON key in get external case response that contains the case + title. + type: string + getIncidentUrl: + description: > + The REST API URL to get the case by ID from the third-party system. + If you are using the `xpack.actions.allowedHosts` setting, add the + hostname to the allowed hosts. You can use a variable to add the + external system ID to the URL. Due to Mustache template variables + (the text enclosed in triple braces, for example, + `{{{case.title}}}`), the JSON is not validated when you create the + connector. The JSON is validated after the Mustache variables have + been placed when REST method runs. Manually ensure that the JSON is + valid, disregarding the Mustache variables, so the later validation + will pass. + example: 'https://example.com/issue/{{{external.system.id}}}' + type: string + hasAuth: + default: true + description: >- + If true, a username and password for login type authentication must + be provided. + type: boolean + headers: + description: > + A set of key-value pairs sent as headers with the request URLs for + the create case, update case, get case, and create comment methods. + type: string + updateIncidentJson: + description: > + The JSON payload sent to the update case URL to update the case. You + can use variables to add Kibana Cases data to the payload. Required + variables are `case.title` and `case.description`. Due to Mustache + template variables (which is the text enclosed in triple braces, for + example, `{{{case.title}}}`), the JSON is not validated when you + create the connector. The JSON is validated after the Mustache + variables have been placed when REST method runs. Manually ensure + that the JSON is valid to avoid future validation errors; disregard + Mustache variables during your review. + example: >- + {"fields": {"summary": {{{case.title}}},"description": + {{{case.description}}},"labels": {{{case.tags}}}}} + type: string + updateIncidentMethod: + default: put + description: > + The REST API HTTP request method to update the case in the + third-party system. Valid values are `patch`, `post`, and `put`. + enum: + - patch + - post + - put + type: string + updateIncidentUrl: + description: > + The REST API URL to update the case by ID in the third-party system. + You can use a variable to add the external system ID to the URL. If + you are using the `xpack.actions.allowedHosts` setting, add the + hostname to the allowed hosts. + example: 'https://example.com/issue/{{{external.system.ID}}}' + type: string + viewIncidentUrl: + description: > + The URL to view the case in the external system. You can use + variables to add the external system ID or external system title to + the URL. + example: >- + https://testing-jira.atlassian.net/browse/{{{external.system.title}}} + type: string + required: + - createIncidentJson + - createIncidentResponseKey + - createIncidentUrl + - getIncidentResponseExternalTitleKey + - getIncidentUrl + - updateIncidentJson + - updateIncidentUrl + - viewIncidentUrl + title: Connector request properties for Webhook - Case Management connector + Connectors_config_properties_d3security: + description: Defines properties for connectors when type is `.d3security`. + properties: + url: + description: > + The D3 Security API request URL. If you are using the + `xpack.actions.allowedHosts` setting, add the hostname to the + allowed hosts. + type: string + required: + - url + title: Connector request properties for a D3 Security connector + type: object + Connectors_config_properties_email: + description: Defines properties for connectors when type is `.email`. + type: object + properties: + clientId: + description: > + The client identifier, which is a part of OAuth 2.0 client + credentials authentication, in GUID format. If `service` is + `exchange_server`, this property is required. + nullable: true + type: string + from: + description: > + The from address for all emails sent by the connector. It must be + specified in `user@host-name` format. + type: string + hasAuth: + default: true + description: > + Specifies whether a user and password are required inside the + secrets configuration. + type: boolean + host: + description: > + The host name of the service provider. If the `service` is + `elastic_cloud` (for Elastic Cloud notifications) or one of + Nodemailer's well-known email service providers, this property is + ignored. If `service` is `other`, this property must be defined. + type: string + oauthTokenUrl: + nullable: true + type: string + port: + description: > + The port to connect to on the service provider. If the `service` is + `elastic_cloud` (for Elastic Cloud notifications) or one of + Nodemailer's well-known email service providers, this property is + ignored. If `service` is `other`, this property must be defined. + type: integer + secure: + description: > + Specifies whether the connection to the service provider will use + TLS. If the `service` is `elastic_cloud` (for Elastic Cloud + notifications) or one of Nodemailer's well-known email service + providers, this property is ignored. + type: boolean + service: + description: | + The name of the email service. + enum: + - elastic_cloud + - exchange_server + - gmail + - other + - outlook365 + - ses + type: string + tenantId: + description: > + The tenant identifier, which is part of OAuth 2.0 client credentials + authentication, in GUID format. If `service` is `exchange_server`, + this property is required. + nullable: true + type: string + required: + - from + title: Connector request properties for an email connector + Connectors_config_properties_gemini: + description: Defines properties for connectors when type is `.gemini`. + properties: + apiUrl: + description: The Google Gemini request URL. + type: string + defaultModel: + default: gemini-1.5-pro-001 + description: >- + The generative artificial intelligence model for Google Gemini to + use. + type: string + gcpProjectID: + description: The Google ProjectID that has Vertex AI endpoint enabled. + type: string + gcpRegion: + description: The GCP region where the Vertex AI endpoint enabled. + type: string + required: + - apiUrl + - gcpRegion + - gcpProjectID + title: Connector request properties for an Google Gemini connector + type: object + Connectors_config_properties_genai: + description: Defines properties for connectors when type is `.gen-ai`. + discriminator: + mapping: + Azure OpenAI: '#/components/schemas/Connectors_config_properties_genai_azure' + OpenAI: '#/components/schemas/Connectors_config_properties_genai_openai' + propertyName: apiProvider + oneOf: + - $ref: '#/components/schemas/Connectors_config_properties_genai_azure' + - $ref: '#/components/schemas/Connectors_config_properties_genai_openai' + title: Connector request properties for an OpenAI connector + Connectors_config_properties_genai_azure: + description: > + Defines properties for connectors when type is `.gen-ai` and the API + provider is `Azure OpenAI'. + properties: + apiProvider: + description: The OpenAI API provider. + enum: + - Azure OpenAI + type: string + apiUrl: + description: The OpenAI API endpoint. + type: string + required: + - apiProvider + - apiUrl + title: >- + Connector request properties for an OpenAI connector that uses Azure + OpenAI + type: object + Connectors_config_properties_genai_openai: + description: > + Defines properties for connectors when type is `.gen-ai` and the API + provider is `OpenAI'. + properties: + apiProvider: + description: The OpenAI API provider. + enum: + - OpenAI + type: string + apiUrl: + description: The OpenAI API endpoint. + type: string + defaultModel: + description: The default model to use for requests. + type: string + required: + - apiProvider + - apiUrl + title: Connector request properties for an OpenAI connector + type: object + Connectors_config_properties_index: + description: Defines properties for connectors when type is `.index`. + type: object + properties: + executionTimeField: + default: null + description: A field that indicates when the document was indexed. + nullable: true + type: string + index: + description: The Elasticsearch index to be written to. + type: string + refresh: + default: false + description: > + The refresh policy for the write request, which affects when changes + are made visible to search. Refer to the refresh setting for + Elasticsearch document APIs. + type: boolean + required: + - index + title: Connector request properties for an index connector + Connectors_config_properties_jira: + description: Defines properties for connectors when type is `.jira`. + type: object + properties: + apiUrl: + description: The Jira instance URL. + type: string + projectKey: + description: The Jira project key. + type: string + required: + - apiUrl + - projectKey + title: Connector request properties for a Jira connector + Connectors_config_properties_opsgenie: + description: Defines properties for connectors when type is `.opsgenie`. + type: object + properties: + apiUrl: + description: > + The Opsgenie URL. For example, `https://api.opsgenie.com` or + `https://api.eu.opsgenie.com`. If you are using the + `xpack.actions.allowedHosts` setting, add the hostname to the + allowed hosts. + type: string + required: + - apiUrl + title: Connector request properties for an Opsgenie connector + Connectors_config_properties_pagerduty: + description: Defines properties for connectors when type is `.pagerduty`. + properties: + apiUrl: + description: The PagerDuty event URL. + example: 'https://events.pagerduty.com/v2/enqueue' + nullable: true + type: string + title: Connector request properties for a PagerDuty connector + type: object + Connectors_config_properties_resilient: + description: Defines properties for connectors when type is `.resilient`. + type: object + properties: + apiUrl: + description: The IBM Resilient instance URL. + type: string + orgId: + description: The IBM Resilient organization ID. + type: string + required: + - apiUrl + - orgId + title: Connector request properties for a IBM Resilient connector + Connectors_config_properties_sentinelone: + description: Defines properties for connectors when type is `.sentinelone`. + type: object + properties: + url: + description: > + The SentinelOne tenant URL. If you are using the + `xpack.actions.allowedHosts` setting, add the hostname to the + allowed hosts. + type: string + required: + - url + title: Connector request properties for a SentinelOne connector + Connectors_config_properties_servicenow: + description: Defines properties for connectors when type is `.servicenow`. + type: object + properties: + apiUrl: + description: The ServiceNow instance URL. + type: string + clientId: + description: > + The client ID assigned to your OAuth application. This property is + required when `isOAuth` is `true`. + type: string + isOAuth: + default: false + description: > + The type of authentication to use. The default value is false, which + means basic authentication is used instead of open authorization + (OAuth). + type: boolean + jwtKeyId: + description: > + The key identifier assigned to the JWT verifier map of your OAuth + application. This property is required when `isOAuth` is `true`. + type: string + userIdentifierValue: + description: > + The identifier to use for OAuth authentication. This identifier + should be the user field you selected when you created an OAuth JWT + API endpoint for external clients in your ServiceNow instance. For + example, if the selected user field is `Email`, the user identifier + should be the user's email address. This property is required when + `isOAuth` is `true`. + type: string + usesTableApi: + default: true + description: > + Determines whether the connector uses the Table API or the Import + Set API. This property is supported only for ServiceNow ITSM and + ServiceNow SecOps connectors. NOTE: If this property is set to + `false`, the Elastic application should be installed in ServiceNow. + type: boolean + required: + - apiUrl + title: Connector request properties for a ServiceNow ITSM connector + Connectors_config_properties_servicenow_itom: + description: Defines properties for connectors when type is `.servicenow`. + type: object + properties: + apiUrl: + description: The ServiceNow instance URL. + type: string + clientId: + description: > + The client ID assigned to your OAuth application. This property is + required when `isOAuth` is `true`. + type: string + isOAuth: + default: false + description: > + The type of authentication to use. The default value is false, which + means basic authentication is used instead of open authorization + (OAuth). + type: boolean + jwtKeyId: + description: > + The key identifier assigned to the JWT verifier map of your OAuth + application. This property is required when `isOAuth` is `true`. + type: string + userIdentifierValue: + description: > + The identifier to use for OAuth authentication. This identifier + should be the user field you selected when you created an OAuth JWT + API endpoint for external clients in your ServiceNow instance. For + example, if the selected user field is `Email`, the user identifier + should be the user's email address. This property is required when + `isOAuth` is `true`. + type: string + required: + - apiUrl + title: Connector request properties for a ServiceNow ITSM connector + Connectors_config_properties_slack_api: + description: Defines properties for connectors when type is `.slack_api`. + properties: + allowedChannels: + description: A list of valid Slack channels. + items: + maxItems: 25 + type: object + properties: + id: + description: The Slack channel ID. + example: C123ABC456 + minLength: 1 + type: string + name: + description: The Slack channel name. + minLength: 1 + type: string + required: + - id + - name + type: array + title: Connector request properties for a Slack connector + type: object + Connectors_config_properties_swimlane: + description: Defines properties for connectors when type is `.swimlane`. + type: object + properties: + apiUrl: + description: The Swimlane instance URL. + type: string + appId: + description: The Swimlane application ID. + type: string + connectorType: + description: >- + The type of connector. Valid values are `all`, `alerts`, and + `cases`. + enum: + - all + - alerts + - cases + type: string + mappings: + description: The field mapping. + properties: + alertIdConfig: + description: Mapping for the alert ID. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Alert identifier mapping + type: object + caseIdConfig: + description: Mapping for the case ID. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Case identifier mapping + type: object + caseNameConfig: + description: Mapping for the case name. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Case name mapping + type: object + commentsConfig: + description: Mapping for the case comments. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Case comment mapping + type: object + descriptionConfig: + description: Mapping for the case description. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Case description mapping + type: object + ruleNameConfig: + description: Mapping for the name of the alert's rule. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Rule name mapping + type: object + severityConfig: + description: Mapping for the severity. + properties: + fieldType: + description: The type of field in Swimlane. + type: string + id: + description: The identifier for the field in Swimlane. + type: string + key: + description: The key for the field in Swimlane. + type: string + name: + description: The name of the field in Swimlane. + type: string + required: + - fieldType + - id + - key + - name + title: Severity mapping + type: object + title: Connector mappings properties for a Swimlane connector + type: object + required: + - apiUrl + - appId + - connectorType + title: Connector request properties for a Swimlane connector + Connectors_config_properties_tines: + description: Defines properties for connectors when type is `.tines`. + properties: + url: + description: > + The Tines tenant URL. If you are using the + `xpack.actions.allowedHosts` setting, make sure this hostname is + added to the allowed hosts. + type: string + required: + - url + title: Connector request properties for a Tines connector + type: object + Connectors_config_properties_torq: + description: Defines properties for connectors when type is `.torq`. + properties: + webhookIntegrationUrl: + description: The endpoint URL of the Elastic Security integration in Torq. + type: string + required: + - webhookIntegrationUrl + title: Connector request properties for a Torq connector + type: object + Connectors_config_properties_webhook: + description: Defines properties for connectors when type is `.webhook`. + properties: + authType: + description: | + The type of authentication to use: basic, SSL, or none. + enum: + - webhook-authentication-basic + - webhook-authentication-ssl + nullable: true + type: string + ca: + description: > + A base64 encoded version of the certificate authority file that the + connector can trust to sign and validate certificates. This option + is available for all authentication types. + type: string + certType: + description: > + If the `authType` is `webhook-authentication-ssl`, specifies whether + the certificate authentication data is in a CRT and key file format + or a PFX file format. + enum: + - ssl-crt-key + - ssl-pfx + type: string + hasAuth: + description: > + If `true`, a user name and password must be provided for login type + authentication. + type: boolean + headers: + description: A set of key-value pairs sent as headers with the request. + nullable: true + type: object + method: + default: post + description: | + The HTTP request method, either `post` or `put`. + enum: + - post + - put + type: string + url: + description: > + The request URL. If you are using the `xpack.actions.allowedHosts` + setting, add the hostname to the allowed hosts. + type: string + verificationMode: + default: full + description: > + Controls the verification of certificates. Use `full` to validate + that the certificate has an issue date within the `not_before` and + `not_after` dates, chains to a trusted certificate authority (CA), + and has a hostname or IP address that matches the names within the + certificate. Use `certificate` to validate the certificate and + verify that it is signed by a trusted authority; this option does + not check the certificate hostname. Use `none` to skip certificate + validation. + enum: + - certificate + - full + - none + type: string + title: Connector request properties for a Webhook connector + type: object + Connectors_config_properties_xmatters: + description: Defines properties for connectors when type is `.xmatters`. + properties: + configUrl: + description: > + The request URL for the Elastic Alerts trigger in xMatters. It is + applicable only when `usesBasic` is `true`. + nullable: true + type: string + usesBasic: + default: true + description: >- + Specifies whether the connector uses HTTP basic authentication + (`true`) or URL authentication (`false`). + type: boolean + title: Connector request properties for an xMatters connector + type: object + Connectors_connector_response_properties: + description: The properties vary depending on the connector type. + discriminator: + mapping: + .bedrock: >- + #/components/schemas/Connectors_connector_response_properties_bedrock + .cases-webhook: >- + #/components/schemas/Connectors_connector_response_properties_cases_webhook + .d3security: >- + #/components/schemas/Connectors_connector_response_properties_d3security + .email: '#/components/schemas/Connectors_connector_response_properties_email' + .gemini: '#/components/schemas/Connectors_connector_response_properties_gemini' + .gen-ai: '#/components/schemas/Connectors_connector_response_properties_genai' + .index: '#/components/schemas/Connectors_connector_response_properties_index' + .jira: '#/components/schemas/Connectors_connector_response_properties_jira' + .opsgenie: >- + #/components/schemas/Connectors_connector_response_properties_opsgenie + .pagerduty: >- + #/components/schemas/Connectors_connector_response_properties_pagerduty + .resilient: >- + #/components/schemas/Connectors_connector_response_properties_resilient + .sentinelone: >- + #/components/schemas/Connectors_connector_response_properties_sentinelone + .server-log: >- + #/components/schemas/Connectors_connector_response_properties_serverlog + .servicenow: >- + #/components/schemas/Connectors_connector_response_properties_servicenow + .servicenow-itom: >- + #/components/schemas/Connectors_connector_response_properties_servicenow_itom + .servicenow-sir: >- + #/components/schemas/Connectors_connector_response_properties_servicenow_sir + .slack: >- + #/components/schemas/Connectors_connector_response_properties_slack_webhook + .slack_api: >- + #/components/schemas/Connectors_connector_response_properties_slack_api + .swimlane: >- + #/components/schemas/Connectors_connector_response_properties_swimlane + .teams: '#/components/schemas/Connectors_connector_response_properties_teams' + .tines: '#/components/schemas/Connectors_connector_response_properties_tines' + .torq: '#/components/schemas/Connectors_connector_response_properties_torq' + .webhook: >- + #/components/schemas/Connectors_connector_response_properties_webhook + .xmatters: >- + #/components/schemas/Connectors_connector_response_properties_xmatters + propertyName: connector_type_id + oneOf: + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_bedrock + - $ref: '#/components/schemas/Connectors_connector_response_properties_gemini' + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_cases_webhook + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_d3security + - $ref: '#/components/schemas/Connectors_connector_response_properties_email' + - $ref: '#/components/schemas/Connectors_connector_response_properties_genai' + - $ref: '#/components/schemas/Connectors_connector_response_properties_index' + - $ref: '#/components/schemas/Connectors_connector_response_properties_jira' + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_opsgenie + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_pagerduty + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_resilient + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_sentinelone + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_serverlog + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_servicenow + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_servicenow_itom + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_servicenow_sir + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_slack_api + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_slack_webhook + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_swimlane + - $ref: '#/components/schemas/Connectors_connector_response_properties_teams' + - $ref: '#/components/schemas/Connectors_connector_response_properties_tines' + - $ref: '#/components/schemas/Connectors_connector_response_properties_torq' + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_webhook + - $ref: >- + #/components/schemas/Connectors_connector_response_properties_xmatters + title: Connector response properties + Connectors_connector_response_properties_bedrock: + title: Connector response properties for an Amazon Bedrock connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_bedrock' + connector_type_id: + description: The type of connector. + enum: + - .bedrock + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + required: + - config + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_cases_webhook: + title: Connector request properties for a Webhook - Case Management connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' + connector_type_id: + description: The type of connector. + enum: + - .cases-webhook + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_d3security: + title: Connector response properties for a D3 Security connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_d3security' + connector_type_id: + description: The type of connector. + enum: + - .d3security + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_email: + title: Connector response properties for an email connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_email' + connector_type_id: + description: The type of connector. + enum: + - .email + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_gemini: + title: Connector response properties for a Google Gemini connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_gemini' + connector_type_id: + description: The type of connector. + enum: + - .gemini + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_genai: + title: Connector response properties for an OpenAI connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_genai' + connector_type_id: + description: The type of connector. + enum: + - .gen-ai + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_index: + title: Connector response properties for an index connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_index' + connector_type_id: + description: The type of connector. + enum: + - .index + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_jira: + title: Connector response properties for a Jira connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_jira' + connector_type_id: + description: The type of connector. + enum: + - .jira + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_opsgenie: + title: Connector response properties for an Opsgenie connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_opsgenie' + connector_type_id: + description: The type of connector. + enum: + - .opsgenie + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_pagerduty: + title: Connector response properties for a PagerDuty connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_pagerduty' + connector_type_id: + description: The type of connector. + enum: + - .pagerduty + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_resilient: + title: Connector response properties for a IBM Resilient connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_resilient' + connector_type_id: + description: The type of connector. + enum: + - .resilient + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_sentinelone: + title: Connector response properties for a SentinelOne connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_sentinelone' + connector_type_id: + description: The type of connector. + enum: + - .sentinelone + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_serverlog: + title: Connector response properties for a server log connector + type: object + properties: + config: + nullable: true + type: object + connector_type_id: + description: The type of connector. + enum: + - .server-log + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_servicenow: + title: Connector response properties for a ServiceNow ITSM connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + connector_type_id: + description: The type of connector. + enum: + - .servicenow + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_servicenow_itom: + title: Connector response properties for a ServiceNow ITOM connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' + connector_type_id: + description: The type of connector. + enum: + - .servicenow-itom + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_servicenow_sir: + title: Connector response properties for a ServiceNow SecOps connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + connector_type_id: + description: The type of connector. + enum: + - .servicenow-sir + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_slack_api: + title: Connector response properties for a Slack connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_slack_api' + connector_type_id: + description: The type of connector. + enum: + - .slack_api + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_slack_webhook: + title: Connector response properties for a Slack connector + type: object + properties: + connector_type_id: + description: The type of connector. + enum: + - .slack + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_swimlane: + title: Connector response properties for a Swimlane connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_swimlane' + connector_type_id: + description: The type of connector. + enum: + - .swimlane + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_teams: + title: Connector response properties for a Microsoft Teams connector + type: object + properties: + config: + type: object + connector_type_id: + description: The type of connector. + enum: + - .teams + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_tines: + title: Connector response properties for a Tines connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_tines' + connector_type_id: + description: The type of connector. + enum: + - .tines + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_torq: + title: Connector response properties for a Torq connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_torq' + connector_type_id: + description: The type of connector. + enum: + - .torq + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_webhook: + title: Connector response properties for a Webhook connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_webhook' + connector_type_id: + description: The type of connector. + enum: + - .webhook + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_response_properties_xmatters: + title: Connector response properties for an xMatters connector + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_xmatters' + connector_type_id: + description: The type of connector. + enum: + - .xmatters + type: string + id: + description: The identifier for the connector. + type: string + is_deprecated: + $ref: '#/components/schemas/Connectors_is_deprecated' + is_missing_secrets: + $ref: '#/components/schemas/Connectors_is_missing_secrets' + is_preconfigured: + $ref: '#/components/schemas/Connectors_is_preconfigured' + is_system_action: + $ref: '#/components/schemas/Connectors_is_system_action' + name: + description: The display name for the connector. + type: string + referenced_by_count: + $ref: '#/components/schemas/Connectors_referenced_by_count' + required: + - connector_type_id + - id + - is_deprecated + - is_preconfigured + - name + Connectors_connector_types: + description: >- + The type of connector. For example, `.email`, `.index`, `.jira`, + `.opsgenie`, or `.server-log`. + enum: + - .bedrock + - .gemini + - .cases-webhook + - .d3security + - .email + - .gen-ai + - .index + - .jira + - .opsgenie + - .pagerduty + - .resilient + - .sentinelone + - .servicenow + - .servicenow-itom + - .servicenow-sir + - .server-log + - .slack + - .slack_api + - .swimlane + - .teams + - .tines + - .torq + - .webhook + - .xmatters + example: .server-log + title: Connector types + type: string + Connectors_create_connector_request: + description: The properties vary depending on the connector type. + discriminator: + mapping: + .bedrock: '#/components/schemas/Connectors_create_connector_request_bedrock' + .cases-webhook: >- + #/components/schemas/Connectors_create_connector_request_cases_webhook + .d3security: '#/components/schemas/Connectors_create_connector_request_d3security' + .email: '#/components/schemas/Connectors_create_connector_request_email' + .gemini: '#/components/schemas/Connectors_create_connector_request_gemini' + .gen-ai: '#/components/schemas/Connectors_create_connector_request_genai' + .index: '#/components/schemas/Connectors_create_connector_request_index' + .jira: '#/components/schemas/Connectors_create_connector_request_jira' + .opsgenie: '#/components/schemas/Connectors_create_connector_request_opsgenie' + .pagerduty: '#/components/schemas/Connectors_create_connector_request_pagerduty' + .resilient: '#/components/schemas/Connectors_create_connector_request_resilient' + .sentinelone: '#/components/schemas/Connectors_create_connector_request_sentinelone' + .server-log: '#/components/schemas/Connectors_create_connector_request_serverlog' + .servicenow: '#/components/schemas/Connectors_create_connector_request_servicenow' + .servicenow-itom: >- + #/components/schemas/Connectors_create_connector_request_servicenow_itom + .servicenow-sir: >- + #/components/schemas/Connectors_create_connector_request_servicenow_sir + .slack: >- + #/components/schemas/Connectors_create_connector_request_slack_webhook + .slack_api: '#/components/schemas/Connectors_create_connector_request_slack_api' + .swimlane: '#/components/schemas/Connectors_create_connector_request_swimlane' + .teams: '#/components/schemas/Connectors_create_connector_request_teams' + .tines: '#/components/schemas/Connectors_create_connector_request_tines' + .torq: '#/components/schemas/Connectors_create_connector_request_torq' + .webhook: '#/components/schemas/Connectors_create_connector_request_webhook' + .xmatters: '#/components/schemas/Connectors_create_connector_request_xmatters' + propertyName: connector_type_id + oneOf: + - $ref: '#/components/schemas/Connectors_create_connector_request_bedrock' + - $ref: '#/components/schemas/Connectors_create_connector_request_gemini' + - $ref: >- + #/components/schemas/Connectors_create_connector_request_cases_webhook + - $ref: '#/components/schemas/Connectors_create_connector_request_d3security' + - $ref: '#/components/schemas/Connectors_create_connector_request_email' + - $ref: '#/components/schemas/Connectors_create_connector_request_genai' + - $ref: '#/components/schemas/Connectors_create_connector_request_index' + - $ref: '#/components/schemas/Connectors_create_connector_request_jira' + - $ref: '#/components/schemas/Connectors_create_connector_request_opsgenie' + - $ref: '#/components/schemas/Connectors_create_connector_request_pagerduty' + - $ref: '#/components/schemas/Connectors_create_connector_request_resilient' + - $ref: '#/components/schemas/Connectors_create_connector_request_sentinelone' + - $ref: '#/components/schemas/Connectors_create_connector_request_serverlog' + - $ref: '#/components/schemas/Connectors_create_connector_request_servicenow' + - $ref: >- + #/components/schemas/Connectors_create_connector_request_servicenow_itom + - $ref: >- + #/components/schemas/Connectors_create_connector_request_servicenow_sir + - $ref: '#/components/schemas/Connectors_create_connector_request_slack_api' + - $ref: >- + #/components/schemas/Connectors_create_connector_request_slack_webhook + - $ref: '#/components/schemas/Connectors_create_connector_request_swimlane' + - $ref: '#/components/schemas/Connectors_create_connector_request_teams' + - $ref: '#/components/schemas/Connectors_create_connector_request_tines' + - $ref: '#/components/schemas/Connectors_create_connector_request_torq' + - $ref: '#/components/schemas/Connectors_create_connector_request_webhook' + - $ref: '#/components/schemas/Connectors_create_connector_request_xmatters' + title: Create connector request body properties + Connectors_create_connector_request_bedrock: + description: >- + The Amazon Bedrock connector uses axios to send a POST request to Amazon + Bedrock. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_bedrock' + connector_type_id: + description: The type of connector. + enum: + - .bedrock + example: .bedrock + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_bedrock' + required: + - config + - connector_type_id + - name + - secrets + title: Create Amazon Bedrock connector request + type: object + Connectors_create_connector_request_cases_webhook: + description: > + The Webhook - Case Management connector uses axios to send POST, PUT, + and GET requests to a case management RESTful API web service. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' + connector_type_id: + description: The type of connector. + enum: + - .cases-webhook + example: .cases-webhook + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_cases_webhook' + required: + - config + - connector_type_id + - name + title: Create Webhook - Case Managment connector request + type: object + Connectors_create_connector_request_d3security: + description: > + The connector uses axios to send a POST request to a D3 Security + endpoint. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_d3security' + connector_type_id: + description: The type of connector. + enum: + - .d3security + example: .d3security + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_d3security' + required: + - config + - connector_type_id + - name + - secrets + title: Create D3 Security connector request + type: object + Connectors_create_connector_request_email: + description: > + The email connector uses the SMTP protocol to send mail messages, using + an integration of Nodemailer. An exception is Microsoft Exchange, which + uses HTTP protocol for sending emails, Send mail. Email message text is + sent as both plain text and html text. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_email' + connector_type_id: + description: The type of connector. + enum: + - .email + example: .email + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_email' + required: + - config + - connector_type_id + - name + - secrets + title: Create email connector request + type: object + Connectors_create_connector_request_gemini: + description: >- + The Google Gemini connector uses axios to send a POST request to Google + Gemini. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_gemini' + connector_type_id: + description: The type of connector. + enum: + - .gemini + example: .gemini + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_gemini' + required: + - config + - connector_type_id + - name + - secrets + title: Create Google Gemini connector request + type: object + Connectors_create_connector_request_genai: + description: > + The OpenAI connector uses axios to send a POST request to either OpenAI + or Azure OpenAPI. + properties: config: - from: tester@example.com - hasAuth: true - host: https://example.com - port: 1025 - secure: false - service: other + $ref: '#/components/schemas/Connectors_config_properties_genai' + connector_type_id: + description: The type of connector. + enum: + - .gen-ai + example: .gen-ai + type: string + name: + description: The display name for the connector. + example: my-connector + type: string secrets: - user: username - password: password - Connectors_create_index_connector_request: - summary: Create an index connector. - value: - name: my-connector - connector_type_id: .index + $ref: '#/components/schemas/Connectors_secrets_properties_genai' + required: + - config + - connector_type_id + - name + - secrets + title: Create OpenAI connector request + type: object + Connectors_create_connector_request_index: + description: The index connector indexes a document into Elasticsearch. + properties: config: - index: test-index - Connectors_create_webhook_connector_request: - summary: Create a webhook connector with SSL authentication. - value: - name: my-webhook-connector - connector_type_id: .webhook + $ref: '#/components/schemas/Connectors_config_properties_index' + connector_type_id: + description: The type of connector. + enum: + - .index + example: .index + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + required: + - config + - connector_type_id + - name + title: Create index connector request + type: object + Connectors_create_connector_request_jira: + description: The Jira connector uses the REST API v2 to create Jira issues. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_jira' + connector_type_id: + description: The type of connector. + enum: + - .jira + example: .jira + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_jira' + required: + - config + - connector_type_id + - name + - secrets + title: Create Jira connector request + type: object + Connectors_create_connector_request_opsgenie: + description: The Opsgenie connector uses the Opsgenie alert API. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_opsgenie' + connector_type_id: + description: The type of connector. + enum: + - .opsgenie + example: .opsgenie + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_opsgenie' + required: + - config + - connector_type_id + - name + - secrets + title: Create Opsgenie connector request + type: object + Connectors_create_connector_request_pagerduty: + description: > + The PagerDuty connector uses the v2 Events API to trigger, acknowledge, + and resolve PagerDuty alerts. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_pagerduty' + connector_type_id: + description: The type of connector. + enum: + - .pagerduty + example: .pagerduty + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_pagerduty' + required: + - config + - connector_type_id + - name + - secrets + title: Create PagerDuty connector request + type: object + Connectors_create_connector_request_resilient: + description: >- + The IBM Resilient connector uses the RESILIENT REST v2 to create IBM + Resilient incidents. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_resilient' + connector_type_id: + description: The type of connector. + enum: + - .resilient + example: .resilient + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_resilient' + required: + - config + - connector_type_id + - name + - secrets + title: Create IBM Resilient connector request + type: object + Connectors_create_connector_request_sentinelone: + description: > + The SentinelOne connector communicates with SentinelOne Management + Console via REST API. This functionality is in technical preview and may + be changed or removed in a future release. Elastic will work to fix any + issues, but features in technical preview are not subject to the support + SLA of official GA features. + title: Create SentinelOne connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_sentinelone' + connector_type_id: + description: The type of connector. + enum: + - .sentinelone + example: .sentinelone + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_sentinelone' + required: + - config + - connector_type_id + - name + - secrets + x-technical-preview: true + Connectors_create_connector_request_serverlog: + description: This connector writes an entry to the Kibana server log. + properties: + connector_type_id: + description: The type of connector. + enum: + - .server-log + example: .server-log + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + required: + - connector_type_id + - name + title: Create server log connector request + type: object + Connectors_create_connector_request_servicenow: + description: > + The ServiceNow ITSM connector uses the import set API to create + ServiceNow incidents. You can use the connector for rule actions and + cases. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + connector_type_id: + description: The type of connector. + enum: + - .servicenow + example: .servicenow + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' + required: + - config + - connector_type_id + - name + - secrets + title: Create ServiceNow ITSM connector request + type: object + Connectors_create_connector_request_servicenow_itom: + description: > + The ServiceNow ITOM connector uses the event API to create ServiceNow + events. You can use the connector for rule actions. + properties: config: - method: post - url: https://example.com - authType: webhook-authentication-ssl - certType: ssl-crt-key + $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' + connector_type_id: + description: The type of connector. + enum: + - .servicenow-itom + example: .servicenow-itom + type: string + name: + description: The display name for the connector. + example: my-connector + type: string secrets: - crt: QmFnIEF0dH... - key: LS0tLS1CRUdJ... - password: my-passphrase - Connectors_create_xmatters_connector_request: - summary: Create an xMatters connector with URL authentication. - value: - name: my-xmatters-connector - connector_type_id: .xmatters + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' + required: + - config + - connector_type_id + - name + - secrets + title: Create ServiceNow ITOM connector request + type: object + Connectors_create_connector_request_servicenow_sir: + description: > + The ServiceNow SecOps connector uses the import set API to create + ServiceNow security incidents. You can use the connector for rule + actions and cases. + properties: config: - usesBasic: false + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + connector_type_id: + description: The type of connector. + enum: + - .servicenow-sir + example: .servicenow-sir + type: string + name: + description: The display name for the connector. + example: my-connector + type: string secrets: - secretsUrl: https://example.com?apiKey=xxxxx - Connectors_create_email_connector_response: - summary: A new email connector. - value: - id: 90a82c60-478f-11ee-a343-f98a117c727f - connector_type_id: .email - name: email-connector-1 + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' + required: + - config + - connector_type_id + - name + - secrets + title: Create ServiceNow SecOps connector request + type: object + Connectors_create_connector_request_slack_api: + description: The Slack connector uses an API method to send Slack messages. + properties: config: - from: tester@example.com - service: other - host: https://example.com - port: 1025 - secure: false - hasAuth: true - tenantId: null - clientId: null - oauthTokenUrl: null - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_create_index_connector_response: - summary: A new index connector. - value: - id: c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad - connector_type_id: .index - name: my-connector + $ref: '#/components/schemas/Connectors_config_properties_slack_api' + connector_type_id: + description: The type of connector. + enum: + - .slack_api + example: .slack_api + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_slack_api' + required: + - connector_type_id + - name + - secrets + title: Create Slack connector request + type: object + Connectors_create_connector_request_slack_webhook: + description: The Slack connector uses Slack Incoming Webhooks. + properties: + connector_type_id: + description: The type of connector. + enum: + - .slack + example: .slack + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_slack_webhook' + required: + - connector_type_id + - name + - secrets + title: Create Slack connector request + type: object + Connectors_create_connector_request_swimlane: + description: >- + The Swimlane connector uses the Swimlane REST API to create Swimlane + records. + properties: config: - index: test-index - refresh: false - executionTimeField: null - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_create_webhook_connector_response: - summary: A new webhook connector. - value: - id: 900eb010-3b9d-11ee-a642-8ffbb94e38bd - name: my-webhook-connector + $ref: '#/components/schemas/Connectors_config_properties_swimlane' + connector_type_id: + description: The type of connector. + enum: + - .swimlane + example: .swimlane + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_swimlane' + required: + - config + - connector_type_id + - name + - secrets + title: Create Swimlane connector request + type: object + Connectors_create_connector_request_teams: + description: The Microsoft Teams connector uses Incoming Webhooks. + properties: + connector_type_id: + description: The type of connector. + enum: + - .teams + example: .teams + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_teams' + required: + - connector_type_id + - name + - secrets + title: Create Microsoft Teams connector request + type: object + Connectors_create_connector_request_tines: + description: > + The Tines connector uses Tines Webhook actions to send events via POST + request. + properties: config: - method: post - url: https://example.com - authType: webhook-authentication-ssl - certType: ssl-crt-key - verificationMode: full - headers: null - hasAuth: true - connector_type_id: .webhook - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_create_xmatters_connector_response: - summary: A new xMatters connector. - value: - id: 4d2d8da0-4d1f-11ee-9367-577408be4681 - name: my-xmatters-connector + $ref: '#/components/schemas/Connectors_config_properties_tines' + connector_type_id: + description: The type of connector. + enum: + - .tines + example: .tines + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_tines' + required: + - config + - connector_type_id + - name + - secrets + title: Create Tines connector request + type: object + Connectors_create_connector_request_torq: + description: > + The Torq connector uses a Torq webhook to trigger workflows with Kibana + actions. + properties: config: - usesBasic: false - configUrl: null - connector_type_id: .xmatters - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_get_connector_response: - summary: Get connector details. - value: - id: df770e30-8b8b-11ed-a780-3b746c987a81 - name: my_server_log_connector - config: {} - connector_type_id: .server-log - is_preconfigured: false - is_deprecated: false - is_missing_secrets: false - is_system_action: false - Connectors_update_index_connector_request: - summary: Update an index connector. - value: - name: updated-connector + $ref: '#/components/schemas/Connectors_config_properties_torq' + connector_type_id: + description: The type of connector. + enum: + - .torq + example: .torq + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_torq' + required: + - config + - connector_type_id + - name + - secrets + title: Create Torq connector request + type: object + Connectors_create_connector_request_webhook: + description: > + The Webhook connector uses axios to send a POST or PUT request to a web + service. + properties: config: - index: updated-index - Connectors_run_cases_webhook_connector_request: - summary: Run a Webhook - Case Management connector to create a case. - value: - params: - subAction: pushToService - subActionParams: - comments: - - commentId: 1 - comment: A comment about the incident. - incident: - title: Case title - description: Description of the incident. - tags: - - tag1 - - tag2 - severity: low - status: open - id: caseID - Connectors_run_email_connector_request: - summary: Send an email message from an email connector. - value: - params: - bcc: - - user1@example.com - cc: - - user2@example.com - - user3@example.com - message: Test email message. - subject: Test message subject - to: - - user4@example.com - Connectors_run_index_connector_request: - summary: Run an index connector. - value: - params: - documents: - - id: my_doc_id - name: my_doc_name - message: hello, world - Connectors_run_jira_connector_request: - summary: Run a Jira connector to retrieve the list of issue types. - value: - params: - subAction: issueTypes - Connectors_run_pagerduty_connector_request: - summary: Run a PagerDuty connector to trigger an alert. - value: - params: - eventAction: trigger - summary: A brief event summary - links: - - href: http://example.com/pagerduty - text: An example link - customDetails: - my_data_1: test data - Connectors_run_server_log_connector_request: - summary: Run a server log connector. - value: - params: - level: warn - message: Test warning message. - Connectors_run_servicenow_itom_connector_request: - summary: Run a ServiceNow ITOM connector to retrieve the list of choices. - value: - params: - subAction: getChoices - subActionParams: - fields: - - severity - - urgency - Connectors_run_slack_api_connector_request: - summary: >- - Run a Slack connector that uses the web API method to post a message on - a channel. - value: - params: - subAction: postMessage - subActionParams: - channelIds: - - C123ABC456 - text: A test message. - Connectors_run_swimlane_connector_request: - summary: Run a Swimlane connector to create an incident. - value: - params: - subAction: pushToService - subActionParams: - comments: - - commentId: 1 - comment: A comment about the incident. - incident: - caseId: '1000' - caseName: Case name - description: Description of the incident. - Connectors_run_cases_webhook_connector_response: - summary: >- - Response from a pushToService action for a Webhook - Case Management - connector. - value: - connector_id: 1824b5b8-c005-4dcc-adac-57f92db46459 - data: - id: 100665 - title: TEST-29034 - url: https://example.com/browse/TEST-29034 - pushedDate: '2023-12-05T19:43:36.360Z' - comments: - - commentId: 1 - pushedDate: '2023-12-05T19:43:36.360Z' - status: ok - Connectors_run_email_connector_response: - summary: Response for sending a message from an email connector. - value: - connector_id: 7fc7b9a0-ecc9-11ec-8736-e7d63118c907 - data: - accepted: - - user1@example.com - - user2@example.com - - user3@example.com - - user4@example.com - envelope: - from: tester@example.com - to: - - user1@example.com - - user2@example.com - - user3@example.com - - user4@example.com - envelopeTime: 8 - messageTime: 3 - messageSize: 729 - response: 250 Message queued as QzEXKcGJ - messageId: <08a92d29-642a-0706-750c-de5996bd5cf3@example.com> - rejected: [] - status: ok - Connectors_run_index_connector_response: - summary: Response from running an index connector. - value: - connector_id: fd38c600-96a5-11ed-bb79-353b74189cba - data: - errors: false + $ref: '#/components/schemas/Connectors_config_properties_webhook' + connector_type_id: + description: The type of connector. + enum: + - .webhook + example: .webhook + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_webhook' + required: + - config + - connector_type_id + - name + - secrets + title: Create Webhook connector request + type: object + Connectors_create_connector_request_xmatters: + description: > + The xMatters connector uses the xMatters Workflow for Elastic to send + actionable alerts to on-call xMatters resources. + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_xmatters' + connector_type_id: + description: The type of connector. + enum: + - .xmatters + example: .xmatters + type: string + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_xmatters' + required: + - config + - connector_type_id + - name + - secrets + title: Create xMatters connector request + type: object + Connectors_features: + description: | + The feature that uses the connector. + enum: + - alerting + - cases + - generativeAIForSecurity + - generativeAIForObservability + - generativeAIForSearchPlayground + - siem + - uptime + type: string + Connectors_is_deprecated: + description: Indicates whether the connector type is deprecated. + example: false + type: boolean + Connectors_is_missing_secrets: + description: >- + Indicates whether secrets are missing for the connector. Secrets + configuration properties vary depending on the connector type. + example: false + type: boolean + Connectors_is_preconfigured: + description: > + Indicates whether it is a preconfigured connector. If true, the `config` + and `is_missing_secrets` properties are omitted from the response. + example: false + type: boolean + Connectors_is_system_action: + description: Indicates whether the connector is used for system actions. + example: false + type: boolean + Connectors_referenced_by_count: + description: > + Indicates the number of saved objects that reference the connector. If + `is_preconfigured` is true, this value is not calculated. This property + is returned only by the get all connectors API. + example: 2 + type: integer + Connectors_run_connector_params_acknowledge_resolve_pagerduty: + description: Test an action that acknowledges or resolves a PagerDuty alert. + properties: + dedupKey: + description: The deduplication key for the PagerDuty alert. + maxLength: 255 + type: string + eventAction: + description: The type of event. + enum: + - acknowledge + - resolve + type: string + required: + - dedupKey + - eventAction + title: PagerDuty connector parameters + type: object + Connectors_run_connector_params_documents: + description: Test an action that indexes a document into Elasticsearch. + properties: + documents: + description: The documents in JSON format for index connectors. items: - - create: - _id: 4JtvwYUBrcyxt2NnfW3y - _index: my-index - _primary_term: 1 - _seq_no: 0 - _shards: - failed: 0 - successful: 1 - total: 2 - _version: 1 - result: created - status: 201 - took: 135 - status: ok - Connectors_run_jira_connector_response: - summary: Response from retrieving the list of issue types for a Jira connector. - value: - connector_id: b3aad810-edbe-11ec-82d1-11348ecbf4a6 - data: - - id: 10024 - name: Improvement - - id: 10006 - name: Task - - id: 10007 - name: Sub-task - - id: 10025 - name: New Feature - - id: 10023 - name: Bug - - id: 10000 - name: Epic - status: ok - Connectors_run_pagerduty_connector_response: - summary: Response from running a PagerDuty connector. - value: - connector_id: 45de9f70-954f-4608-b12a-db7cf808e49d - data: - dedup_key: 5115e138b26b484a81eaea779faa6016 - message: Event processed - status: success - status: ok - Connectors_run_server_log_connector_response: - summary: Response from running a server log connector. - value: - connector_id: 7fc7b9a0-ecc9-11ec-8736-e7d63118c907 - status: ok - Connectors_run_servicenow_itom_connector_response: - summary: >- - Response from retrieving the list of choices for a ServiceNow ITOM - connector. - value: - connector_id: 9d9be270-2fd2-11ed-b0e0-87533c532698 - data: - - dependent_value: '' - element: severity - label: Critical - value: 1 - - dependent_value: '' - element: severity - label: Major - value: 2 - - dependent_value: '' - element: severity - label: Minor - value: 3 - - dependent_value: '' - element: severity - label: Warning - value: 4 - - dependent_value: '' - element: severity - label: OK - value: 5 - - dependent_value: '' - element: severity - label: Clear - value: 0 - - dependent_value: '' - element: urgency - label: 1 - High - value: 1 - - dependent_value: '' - element: urgency - label: 2 - Medium - value: 2 - - dependent_value: '' - element: urgency - label: 3 - Low - value: 3 - status: ok - Connectors_run_slack_api_connector_response: - summary: Response from posting a message with a Slack connector. - value: - status: ok - data: - ok: true - channel: C123ABC456 - ts: '1234567890.123456' - message: - bot_id: B12BCDEFGHI - type: message - text: A test message - user: U12A345BC6D - ts: '1234567890.123456' - app_id: A01BC2D34EF - blocks: - - type: rich_text - block_id: /NXe - elements: - - type: rich_text_section - elements: - - type: text - text: A test message. - team: T01ABCDE2F - bot_profile: - id: B12BCDEFGHI - app_id: A01BC2D34EF - name: test - icons: - image_36: https://a.slack-edge.com/80588/img/plugins/app/bot_36.png - deleted: false - updated: 1672169705 - team_id: T01ABCDE2F - connector_id: .slack_api - Connectors_run_swimlane_connector_response: - summary: Response from creating a Swimlane incident. - value: - connector_id: a4746470-2f94-11ed-b0e0-87533c532698 - data: - id: aKPmBHWzmdRQtx6Mx - title: TEST-457 - url: >- - https://elastic.swimlane.url.us/record/aNcL2xniGHGpa2AHb/aKPmBHWzmdRQtx6Mx - pushedDate: '2022-09-08T16:52:27.866Z' - comments: - - commentId: 1 - pushedDate: '2022-09-08T16:52:27.865Z' - status: ok - Connectors_get_connectors_response: - summary: A list of connectors - value: - - id: preconfigured-email-connector - name: my-preconfigured-email-notification - connector_type_id: .email - is_preconfigured: true - is_deprecated: false - referenced_by_count: 0 - is_system_action: false - - id: e07d0c80-8b8b-11ed-a780-3b746c987a81 - name: my-index-connector - config: - index: test-index - refresh: false - executionTimeField: null - connector_type_id: .index - is_preconfigured: false - is_deprecated: false - referenced_by_count: 2 - is_missing_secrets: false - is_system_action: false - Connectors_get_connector_types_generativeai_response: - summary: A list of connector types for the `generativeAI` feature. - value: - - id: .gen-ai - name: OpenAI - enabled: true - enabled_in_config: true - enabled_in_license: true - minimum_license_required: enterprise - supported_feature_ids: - - generativeAIForSecurity - - generativeAIForObservability - - generativeAIForSearchPlayground - is_system_action_type: false - - id: .bedrock - name: AWS Bedrock - enabled: true - enabled_in_config: true - enabled_in_license: true - minimum_license_required: enterprise - supported_feature_ids: - - generativeAIForSecurity - - generativeAIForObservability - - generativeAIForSearchPlayground - is_system_action_type: false - - id: .gemini - name: Google Gemini - enabled: true - enabled_in_config: true - enabled_in_license: true - minimum_license_required: enterprise - supported_feature_ids: - - generativeAIForSecurity - is_system_action_type: false - Data_views_get_data_views_response: - summary: The get all data views API returns a list of data views. - value: - data_view: - - id: ff959d40-b880-11e8-a6d9-e546fe2bba5f - namespaces: - - default - title: kibana_sample_data_ecommerce - typeMeta: {} - name: Kibana Sample Data eCommerce - - id: d3d7af60-4c81-11e8-b3d7-01146121b73d - namespaces: - - default - title: kibana_sample_data_flights - name: Kibana Sample Data Flights - - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - namespaces: - - default - title: kibana_sample_data_logs - name: Kibana Sample Data Logs - Data_views_create_data_view_request: - summary: Create a data view with runtime fields. - value: - data_view: - title: logstash-* - name: My Logstash data view - runtimeFieldMap: - runtime_shape_name: - type: keyword - script: - source: emit(doc['shape_name'].value) - Data_views_get_data_view_response: - summary: >- - The get data view API returns a JSON object that contains information - about the data view. - value: + additionalProperties: true + type: object + type: array + required: + - documents + title: Index connector parameters + type: object + Connectors_run_connector_params_message_email: + anyOf: + - required: + - bcc + - message + - subject + - required: + - cc + - message + - subject + - required: + - to + - message + - subject + description: > + Test an action that sends an email message. There must be at least one + recipient in `to`, `cc`, or `bcc`. + properties: + bcc: + description: > + A list of "blind carbon copy" email addresses. Addresses can be + specified in `user@host-name` format or in name `` + format + items: + type: string + type: array + cc: + description: > + A list of "carbon copy" email addresses. Addresses can be specified + in `user@host-name` format or in name `` format + items: + type: string + type: array + message: + description: The email message text. Markdown format is supported. + type: string + subject: + description: The subject line of the email. + type: string + to: + description: > + A list of email addresses. Addresses can be specified in + `user@host-name` format or in name `` format. + items: + type: string + type: array + title: Email connector parameters + type: object + Connectors_run_connector_params_message_serverlog: + description: Test an action that writes an entry to the Kibana server log. + properties: + level: + default: info + description: The log level of the message for server log connectors. + enum: + - debug + - error + - fatal + - info + - trace + - warn + type: string + message: + description: The message for server log connectors. + type: string + required: + - message + title: Server log connector parameters + type: object + Connectors_run_connector_params_message_slack: + description: > + Test an action that sends a message to Slack. It is applicable only when + the connector type is `.slack`. + properties: + message: + description: >- + The Slack message text, which cannot contain Markdown, images, or + other advanced formatting. + type: string + required: + - message + title: Slack connector parameters + type: object + Connectors_run_connector_params_trigger_pagerduty: + description: Test an action that triggers a PagerDuty alert. + properties: + class: + description: The class or type of the event. + example: cpu load + type: string + component: + description: >- + The component of the source machine that is responsible for the + event. + example: eth0 + type: string + customDetails: + description: Additional details to add to the event. + type: object + dedupKey: + description: > + All actions sharing this key will be associated with the same + PagerDuty alert. This value is used to correlate trigger and + resolution. + maxLength: 255 + type: string + eventAction: + description: The type of event. + enum: + - trigger + type: string + group: + description: The logical grouping of components of a service. + example: app-stack + type: string + links: + description: A list of links to add to the event. + items: + type: object + properties: + href: + description: The URL for the link. + type: string + text: + description: A plain text description of the purpose of the link. + type: string + type: array + severity: + default: info + description: The severity of the event on the affected system. + enum: + - critical + - error + - info + - warning + type: string + source: + description: > + The affected system, such as a hostname or fully qualified domain + name. Defaults to the Kibana saved object id of the action. + type: string + summary: + description: A summery of the event. + maxLength: 1024 + type: string + timestamp: + description: >- + An ISO-8601 timestamp that indicates when the event was detected or + generated. + format: date-time + type: string + required: + - eventAction + title: PagerDuty connector parameters + type: object + Connectors_run_connector_request: + description: The properties vary depending on the connector type. + properties: + params: + oneOf: + - $ref: >- + #/components/schemas/Connectors_run_connector_params_acknowledge_resolve_pagerduty + - $ref: '#/components/schemas/Connectors_run_connector_params_documents' + - $ref: >- + #/components/schemas/Connectors_run_connector_params_message_email + - $ref: >- + #/components/schemas/Connectors_run_connector_params_message_serverlog + - $ref: >- + #/components/schemas/Connectors_run_connector_params_message_slack + - $ref: >- + #/components/schemas/Connectors_run_connector_params_trigger_pagerduty + - description: Test an action that involves a subaction. + discriminator: + mapping: + addEvent: >- + #/components/schemas/Connectors_run_connector_subaction_addevent + closeAlert: >- + #/components/schemas/Connectors_run_connector_subaction_closealert + closeIncident: >- + #/components/schemas/Connectors_run_connector_subaction_closeincident + createAlert: >- + #/components/schemas/Connectors_run_connector_subaction_createalert + fieldsByIssueType: >- + #/components/schemas/Connectors_run_connector_subaction_fieldsbyissuetype + getChoices: >- + #/components/schemas/Connectors_run_connector_subaction_getchoices + getFields: >- + #/components/schemas/Connectors_run_connector_subaction_getfields + getIncident: >- + #/components/schemas/Connectors_run_connector_subaction_getincident + issue: >- + #/components/schemas/Connectors_run_connector_subaction_issue + issues: >- + #/components/schemas/Connectors_run_connector_subaction_issues + issueTypes: >- + #/components/schemas/Connectors_run_connector_subaction_issuetypes + pushToService: >- + #/components/schemas/Connectors_run_connector_subaction_pushtoservice + propertyName: subAction + oneOf: + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_addevent + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_closealert + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_closeincident + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_createalert + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_fieldsbyissuetype + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_getchoices + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_getfields + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_getincident + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_issue + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_issues + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_issuetypes + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_postmessage + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_pushtoservice + - $ref: >- + #/components/schemas/Connectors_run_connector_subaction_validchannelid + title: Subaction parameters + required: + - params + title: Run connector request body properties + type: object + Connectors_run_connector_subaction_addevent: + description: The `addEvent` subaction for ServiceNow ITOM connectors. + title: The addEvent subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - addEvent + type: string + subActionParams: + description: The set of configuration properties for the action. + type: object + properties: + additional_info: + description: Additional information about the event. + type: string + description: + description: The details about the event. + type: string + event_class: + description: A specific instance of the source. + type: string + message_key: + description: >- + All actions sharing this key are associated with the same + ServiceNow alert. The default value is `:`. + type: string + metric_name: + description: The name of the metric. + type: string + node: + description: The host that the event was triggered for. + type: string + resource: + description: The name of the resource. + type: string + severity: + description: The severity of the event. + type: string + source: + description: The name of the event source type. + type: string + time_of_event: + description: The time of the event. + type: string + type: + description: The type of event. + type: string + required: + - subAction + Connectors_run_connector_subaction_closealert: + description: The `closeAlert` subaction for Opsgenie connectors. + title: The closeAlert subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - closeAlert + type: string + subActionParams: + type: object + properties: + alias: + description: >- + The unique identifier used for alert deduplication in Opsgenie. + The alias must match the value used when creating the alert. + type: string + note: + description: Additional information for the alert. + type: string + source: + description: The display name for the source of the alert. + type: string + user: + description: The display name for the owner. + type: string + required: + - alias + required: + - subAction + - subActionParams + Connectors_run_connector_subaction_closeincident: + description: The `closeIncident` subaction for ServiceNow ITSM connectors. + title: The closeIncident subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - closeIncident + type: string + subActionParams: + type: object + properties: + incident: + anyOf: + - required: + - correlation_id + - required: + - externalId + type: object + properties: + correlation_id: + default: '{{rule.id}}:{{alert.id}}' + description: > + An identifier that is assigned to the incident when it is + created by the connector. NOTE: If you use the default value + and the rule generates multiple alerts that use the same + alert IDs, the latest open incident for this correlation ID + is closed unless you specify the external ID. + maxLength: 100 + nullable: true + type: string + externalId: + description: >- + The unique identifier (`incidentId`) for the incident in + ServiceNow. + nullable: true + type: string + required: + - incident + required: + - subAction + - subActionParams + Connectors_run_connector_subaction_createalert: + description: The `createAlert` subaction for Opsgenie connectors. + title: The createAlert subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - createAlert + type: string + subActionParams: + type: object + properties: + actions: + description: The custom actions available to the alert. + items: + type: string + type: array + alias: + description: The unique identifier used for alert deduplication in Opsgenie. + type: string + description: + description: >- + A description that provides detailed information about the + alert. + type: string + details: + additionalProperties: true + description: The custom properties of the alert. + example: + key1: value1 + key2: value2 + type: object + entity: + description: >- + The domain of the alert. For example, the application or server + name. + type: string + message: + description: The alert message. + type: string + note: + description: Additional information for the alert. + type: string + priority: + description: The priority level for the alert. + enum: + - P1 + - P2 + - P3 + - P4 + - P5 + type: string + responders: + description: > + The entities to receive notifications about the alert. If `type` + is `user`, either `id` or `username` is required. If `type` is + `team`, either `id` or `name` is required. + items: + type: object + properties: + id: + description: The identifier for the entity. + type: string + name: + description: The name of the entity. + type: string + type: + description: 'The type of responders, in this case `escalation`.' + enum: + - escalation + - schedule + - team + - user + type: string + username: + description: A valid email address for the user. + type: string + type: array + source: + description: The display name for the source of the alert. + type: string + tags: + description: The tags for the alert. + items: + type: string + type: array + user: + description: The display name for the owner. + type: string + visibleTo: + description: >- + The teams and users that the alert will be visible to without + sending a notification. Only one of `id`, `name`, or `username` + is required. + items: + type: object + properties: + id: + description: The identifier for the entity. + type: string + name: + description: The name of the entity. + type: string + type: + description: Valid values are `team` and `user`. + enum: + - team + - user + type: string + username: + description: >- + The user name. This property is required only when the + `type` is `user`. + type: string + required: + - type + type: array + required: + - message + required: + - subAction + - subActionParams + Connectors_run_connector_subaction_fieldsbyissuetype: + description: The `fieldsByIssueType` subaction for Jira connectors. + title: The fieldsByIssueType subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - fieldsByIssueType + type: string + subActionParams: + type: object + properties: + id: + description: The Jira issue type identifier. + example: 10024 + type: string + required: + - id + required: + - subAction + - subActionParams + Connectors_run_connector_subaction_getchoices: + description: >- + The `getChoices` subaction for ServiceNow ITOM, ServiceNow ITSM, and + ServiceNow SecOps connectors. + title: The getChoices subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - getChoices + type: string + subActionParams: + description: The set of configuration properties for the action. + type: object + properties: + fields: + description: An array of fields. + items: + type: string + type: array + required: + - fields + required: + - subAction + - subActionParams + Connectors_run_connector_subaction_getfields: + description: >- + The `getFields` subaction for Jira, ServiceNow ITSM, and ServiceNow + SecOps connectors. + title: The getFields subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - getFields + type: string + required: + - subAction + Connectors_run_connector_subaction_getincident: + description: >- + The `getIncident` subaction for Jira, ServiceNow ITSM, and ServiceNow + SecOps connectors. + properties: + subAction: + description: The action to test. + enum: + - getIncident + type: string + subActionParams: + type: object + properties: + externalId: + description: >- + The Jira, ServiceNow ITSM, or ServiceNow SecOps issue + identifier. + example: 71778 + type: string + required: + - externalId + required: + - subAction + - subActionParams + title: The getIncident subaction + type: object + Connectors_run_connector_subaction_issue: + description: The `issue` subaction for Jira connectors. + title: The issue subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - issue + type: string + subActionParams: + type: object + properties: + id: + description: The Jira issue identifier. + example: 71778 + type: string + required: + - id + required: + - subAction + Connectors_run_connector_subaction_issues: + description: The `issues` subaction for Jira connectors. + title: The issues subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - issues + type: string + subActionParams: + type: object + properties: + title: + description: The title of the Jira issue. + type: string + required: + - title + required: + - subAction + - subActionParams + Connectors_run_connector_subaction_issuetypes: + description: The `issueTypes` subaction for Jira connectors. + title: The issueTypes subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - issueTypes + type: string + required: + - subAction + Connectors_run_connector_subaction_postmessage: + description: > + Test an action that sends a message to Slack. It is applicable only when + the connector type is `.slack_api`. + properties: + subAction: + description: The action to test. + enum: + - postMessage + type: string + subActionParams: + description: The set of configuration properties for the action. + type: object + properties: + channelIds: + description: > + The Slack channel identifier, which must be one of the + `allowedChannels` in the connector configuration. + items: + type: string + maxItems: 1 + type: array + channels: + deprecated: true + description: | + The name of a channel that your Slack app has access to. + items: + type: string + maxItems: 1 + type: array + text: + description: > + The Slack message text. If it is a Slack webhook connector, the + text cannot contain Markdown, images, or other advanced + formatting. If it is a Slack web API connector, it can contain + either plain text or block kit messages. + minLength: 1 + type: string + required: + - subAction + - subActionParams + title: The postMessage subaction + type: object + Connectors_run_connector_subaction_pushtoservice: + description: >- + The `pushToService` subaction for Jira, ServiceNow ITSM, ServiceNow + SecOps, Swimlane, and Webhook - Case Management connectors. + title: The pushToService subaction + type: object + properties: + subAction: + description: The action to test. + enum: + - pushToService + type: string + subActionParams: + description: The set of configuration properties for the action. + type: object + properties: + comments: + description: >- + Additional information that is sent to Jira, ServiceNow ITSM, + ServiceNow SecOps, or Swimlane. + items: + type: object + properties: + comment: + description: >- + A comment related to the incident. For example, describe + how to troubleshoot the issue. + type: string + commentId: + description: A unique identifier for the comment. + type: integer + type: array + incident: + description: >- + Information necessary to create or update a Jira, ServiceNow + ITSM, ServiveNow SecOps, or Swimlane incident. + type: object + properties: + alertId: + description: The alert identifier for Swimlane connectors. + type: string + caseId: + description: >- + The case identifier for the incident for Swimlane + connectors. + type: string + caseName: + description: The case name for the incident for Swimlane connectors. + type: string + category: + description: >- + The category of the incident for ServiceNow ITSM and + ServiceNow SecOps connectors. + type: string + correlation_display: + description: >- + A descriptive label of the alert for correlation purposes + for ServiceNow ITSM and ServiceNow SecOps connectors. + type: string + correlation_id: + description: > + The correlation identifier for the security incident for + ServiceNow ITSM and ServiveNow SecOps connectors. Connectors + using the same correlation ID are associated with the same + ServiceNow incident. This value determines whether a new + ServiceNow incident is created or an existing one is + updated. Modifying this value is optional; if not modified, + the rule ID and alert ID are combined as `{{ruleID}}:{{alert + ID}}` to form the correlation ID value in ServiceNow. The + maximum character length for this value is 100 characters. + NOTE: Using the default configuration of `{{ruleID}}:{{alert + ID}}` ensures that ServiceNow creates a separate incident + record for every generated alert that uses a unique alert + ID. If the rule generates multiple alerts that use the same + alert IDs, ServiceNow creates and continually updates a + single incident record for the alert. + type: string + description: + description: >- + The description of the incident for Jira, ServiceNow ITSM, + ServiceNow SecOps, Swimlane, and Webhook - Case Management + connectors. + type: string + dest_ip: + description: > + A list of destination IP addresses related to the security + incident for ServiceNow SecOps connectors. The IPs are added + as observables to the security incident. + oneOf: + - type: string + - items: + type: string + type: array + externalId: + description: > + The Jira, ServiceNow ITSM, or ServiceNow SecOps issue + identifier. If present, the incident is updated. Otherwise, + a new incident is created. + type: string + id: + description: >- + The external case identifier for Webhook - Case Management + connectors. + type: string + impact: + description: The impact of the incident for ServiceNow ITSM connectors. + type: string + issueType: + description: >- + The type of incident for Jira connectors. For example, + 10006. To obtain the list of valid values, set `subAction` + to `issueTypes`. + type: integer + labels: + description: > + The labels for the incident for Jira connectors. NOTE: + Labels cannot contain spaces. + items: + type: string + type: array + malware_hash: + description: >- + A list of malware hashes related to the security incident + for ServiceNow SecOps connectors. The hashes are added as + observables to the security incident. + oneOf: + - type: string + - items: + type: string + type: array + malware_url: + description: >- + A list of malware URLs related to the security incident for + ServiceNow SecOps connectors. The URLs are added as + observables to the security incident. + oneOf: + - type: string + - items: + type: string + type: array + type: string + otherFields: + additionalProperties: true + description: > + Custom field identifiers and their values for Jira + connectors. + maxProperties: 20 + type: object + parent: + description: >- + The ID or key of the parent issue for Jira connectors. + Applies only to `Sub-task` types of issues. + type: string + priority: + description: >- + The priority of the incident in Jira and ServiceNow SecOps + connectors. + type: string + ruleName: + description: The rule name for Swimlane connectors. + type: string + severity: + description: >- + The severity of the incident for ServiceNow ITSM and + Swimlane connectors. + type: string + short_description: + description: > + A short description of the incident for ServiceNow ITSM and + ServiceNow SecOps connectors. It is used for searching the + contents of the knowledge base. + type: string + source_ip: + description: >- + A list of source IP addresses related to the security + incident for ServiceNow SecOps connectors. The IPs are added + as observables to the security incident. + oneOf: + - type: string + - items: + type: string + type: array + status: + description: >- + The status of the incident for Webhook - Case Management + connectors. + type: string + subcategory: + description: >- + The subcategory of the incident for ServiceNow ITSM and + ServiceNow SecOps connectors. + type: string + summary: + description: A summary of the incident for Jira connectors. + type: string + tags: + description: A list of tags for Webhook - Case Management connectors. + items: + type: string + type: array + title: + description: > + A title for the incident for Jira and Webhook - Case + Management connectors. It is used for searching the contents + of the knowledge base. + type: string + urgency: + description: The urgency of the incident for ServiceNow ITSM connectors. + type: string + required: + - subAction + - subActionParams + Connectors_run_connector_subaction_validchannelid: + description: > + Retrieves information about a valid Slack channel identifier. It is + applicable only when the connector type is `.slack_api`. + properties: + subAction: + description: The action to test. + enum: + - validChannelId + type: string + subActionParams: + type: object + properties: + channelId: + description: The Slack channel identifier. + example: C123ABC456 + type: string + required: + - channelId + required: + - subAction + - subActionParams + title: The validChannelId subaction + type: object + Connectors_secrets_properties_bedrock: + description: Defines secrets for connectors when type is `.bedrock`. + properties: + accessKey: + description: The AWS access key for authentication. + type: string + secret: + description: The AWS secret for authentication. + type: string + required: + - accessKey + - secret + title: Connector secrets properties for an Amazon Bedrock connector + type: object + Connectors_secrets_properties_cases_webhook: + title: Connector secrets properties for Webhook - Case Management connector + type: object + properties: + password: + description: >- + The password for HTTP basic authentication. If `hasAuth` is set to + `true`, this property is required. + type: string + user: + description: >- + The username for HTTP basic authentication. If `hasAuth` is set to + `true`, this property is required. + type: string + Connectors_secrets_properties_d3security: + description: Defines secrets for connectors when type is `.d3security`. + type: object + properties: + token: + description: The D3 Security token. + type: string + required: + - token + title: Connector secrets properties for a D3 Security connector + Connectors_secrets_properties_email: + description: Defines secrets for connectors when type is `.email`. + properties: + clientSecret: + description: > + The Microsoft Exchange Client secret for OAuth 2.0 client + credentials authentication. It must be URL-encoded. If `service` is + `exchange_server`, this property is required. + type: string + password: + description: > + The password for HTTP basic authentication. If `hasAuth` is set to + `true`, this property is required. + type: string + user: + description: > + The username for HTTP basic authentication. If `hasAuth` is set to + `true`, this property is required. + type: string + title: Connector secrets properties for an email connector + type: object + Connectors_secrets_properties_gemini: + description: Defines secrets for connectors when type is `.gemini`. + properties: + credentialsJSON: + description: >- + The service account credentials JSON file. The service account + should have Vertex AI user IAM role assigned to it. + type: string + required: + - credentialsJSON + title: Connector secrets properties for a Google Gemini connector + type: object + Connectors_secrets_properties_genai: + description: Defines secrets for connectors when type is `.gen-ai`. + properties: + apiKey: + description: The OpenAI API key. + type: string + title: Connector secrets properties for an OpenAI connector + type: object + Connectors_secrets_properties_jira: + description: Defines secrets for connectors when type is `.jira`. + type: object + properties: + apiToken: + description: The Jira API authentication token for HTTP basic authentication. + type: string + email: + description: The account email for HTTP Basic authentication. + type: string + required: + - apiToken + - email + title: Connector secrets properties for a Jira connector + Connectors_secrets_properties_opsgenie: + description: Defines secrets for connectors when type is `.opsgenie`. + type: object + properties: + apiKey: + description: The Opsgenie API authentication key for HTTP Basic authentication. + type: string + required: + - apiKey + title: Connector secrets properties for an Opsgenie connector + Connectors_secrets_properties_pagerduty: + description: Defines secrets for connectors when type is `.pagerduty`. + properties: + routingKey: + description: > + A 32 character PagerDuty Integration Key for an integration on a + service. + type: string + required: + - routingKey + title: Connector secrets properties for a PagerDuty connector + type: object + Connectors_secrets_properties_resilient: + description: Defines secrets for connectors when type is `.resilient`. + type: object + properties: + apiKeyId: + description: The authentication key ID for HTTP Basic authentication. + type: string + apiKeySecret: + description: The authentication key secret for HTTP Basic authentication. + type: string + required: + - apiKeyId + - apiKeySecret + title: Connector secrets properties for IBM Resilient connector + Connectors_secrets_properties_sentinelone: + description: Defines secrets for connectors when type is `.sentinelone`. + properties: + token: + description: The A SentinelOne API token. + type: string + required: + - token + title: Connector secrets properties for a SentinelOne connector + type: object + Connectors_secrets_properties_servicenow: + description: >- + Defines secrets for connectors when type is `.servicenow`, + `.servicenow-sir`, or `.servicenow-itom`. + properties: + clientSecret: + description: >- + The client secret assigned to your OAuth application. This property + is required when `isOAuth` is `true`. + type: string + password: + description: >- + The password for HTTP basic authentication. This property is + required when `isOAuth` is `false`. + type: string + privateKey: + description: >- + The RSA private key that you created for use in ServiceNow. This + property is required when `isOAuth` is `true`. + type: string + privateKeyPassword: + description: >- + The password for the RSA private key. This property is required when + `isOAuth` is `true` and you set a password on your private key. + type: string + username: + description: >- + The username for HTTP basic authentication. This property is + required when `isOAuth` is `false`. + type: string + title: >- + Connector secrets properties for ServiceNow ITOM, ServiceNow ITSM, and + ServiceNow SecOps connectors + type: object + Connectors_secrets_properties_slack_api: + description: Defines secrets for connectors when type is `.slack`. + type: object + properties: + token: + description: Slack bot user OAuth token. + type: string + required: + - token + title: Connector secrets properties for a Web API Slack connector + Connectors_secrets_properties_slack_webhook: + description: Defines secrets for connectors when type is `.slack`. + type: object + properties: + webhookUrl: + description: Slack webhook url. + type: string + required: + - webhookUrl + title: Connector secrets properties for a Webhook Slack connector + Connectors_secrets_properties_swimlane: + description: Defines secrets for connectors when type is `.swimlane`. + properties: + apiToken: + description: Swimlane API authentication token. + type: string + title: Connector secrets properties for a Swimlane connector + type: object + Connectors_secrets_properties_teams: + description: Defines secrets for connectors when type is `.teams`. + properties: + webhookUrl: + description: > + The URL of the incoming webhook. If you are using the + `xpack.actions.allowedHosts` setting, add the hostname to the + allowed hosts. + type: string + required: + - webhookUrl + title: Connector secrets properties for a Microsoft Teams connector + type: object + Connectors_secrets_properties_tines: + description: Defines secrets for connectors when type is `.tines`. + properties: + email: + description: The email used to sign in to Tines. + type: string + token: + description: The Tines API token. + type: string + required: + - email + - token + title: Connector secrets properties for a Tines connector + type: object + Connectors_secrets_properties_torq: + description: Defines secrets for connectors when type is `.torq`. + properties: + token: + description: The secret of the webhook authentication header. + type: string + required: + - token + title: Connector secrets properties for a Torq connector + type: object + Connectors_secrets_properties_webhook: + description: Defines secrets for connectors when type is `.webhook`. + properties: + crt: + description: >- + If `authType` is `webhook-authentication-ssl` and `certType` is + `ssl-crt-key`, it is a base64 encoded version of the CRT or CERT + file. + type: string + key: + description: >- + If `authType` is `webhook-authentication-ssl` and `certType` is + `ssl-crt-key`, it is a base64 encoded version of the KEY file. + type: string + password: + description: > + The password for HTTP basic authentication or the passphrase for the + SSL certificate files. If `hasAuth` is set to `true` and `authType` + is `webhook-authentication-basic`, this property is required. + type: string + pfx: + description: >- + If `authType` is `webhook-authentication-ssl` and `certType` is + `ssl-pfx`, it is a base64 encoded version of the PFX or P12 file. + type: string + user: + description: > + The username for HTTP basic authentication. If `hasAuth` is set to + `true` and `authType` is `webhook-authentication-basic`, this + property is required. + type: string + title: Connector secrets properties for a Webhook connector + type: object + Connectors_secrets_properties_xmatters: + description: Defines secrets for connectors when type is `.xmatters`. + properties: + password: + description: > + A user name for HTTP basic authentication. It is applicable only + when `usesBasic` is `true`. + type: string + secretsUrl: + description: > + The request URL for the Elastic Alerts trigger in xMatters with the + API key included in the URL. It is applicable only when `usesBasic` + is `false`. + type: string + user: + description: > + A password for HTTP basic authentication. It is applicable only when + `usesBasic` is `true`. + type: string + title: Connector secrets properties for an xMatters connector + type: object + Connectors_update_connector_request: + description: The properties vary depending on the connector type. + oneOf: + - $ref: '#/components/schemas/Connectors_update_connector_request_bedrock' + - $ref: '#/components/schemas/Connectors_update_connector_request_gemini' + - $ref: >- + #/components/schemas/Connectors_update_connector_request_cases_webhook + - $ref: '#/components/schemas/Connectors_update_connector_request_d3security' + - $ref: '#/components/schemas/Connectors_update_connector_request_email' + - $ref: '#/components/schemas/Connectors_create_connector_request_genai' + - $ref: '#/components/schemas/Connectors_update_connector_request_index' + - $ref: '#/components/schemas/Connectors_update_connector_request_jira' + - $ref: '#/components/schemas/Connectors_update_connector_request_opsgenie' + - $ref: '#/components/schemas/Connectors_update_connector_request_pagerduty' + - $ref: '#/components/schemas/Connectors_update_connector_request_resilient' + - $ref: '#/components/schemas/Connectors_update_connector_request_sentinelone' + - $ref: '#/components/schemas/Connectors_update_connector_request_serverlog' + - $ref: '#/components/schemas/Connectors_update_connector_request_servicenow' + - $ref: >- + #/components/schemas/Connectors_update_connector_request_servicenow_itom + - $ref: '#/components/schemas/Connectors_update_connector_request_slack_api' + - $ref: >- + #/components/schemas/Connectors_update_connector_request_slack_webhook + - $ref: '#/components/schemas/Connectors_update_connector_request_swimlane' + - $ref: '#/components/schemas/Connectors_update_connector_request_teams' + - $ref: '#/components/schemas/Connectors_update_connector_request_tines' + - $ref: '#/components/schemas/Connectors_update_connector_request_torq' + - $ref: '#/components/schemas/Connectors_update_connector_request_webhook' + - $ref: '#/components/schemas/Connectors_update_connector_request_xmatters' + title: Update connector request body properties + Connectors_update_connector_request_bedrock: + title: Update Amazon Bedrock connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_bedrock' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_bedrock' + required: + - config + - name + Connectors_update_connector_request_cases_webhook: + title: Update Webhook - Case Managment connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_cases_webhook' + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_cases_webhook' + required: + - config + - name + Connectors_update_connector_request_d3security: + title: Update D3 Security connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_d3security' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_d3security' + required: + - config + - name + - secrets + Connectors_update_connector_request_email: + title: Update email connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_email' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_email' + required: + - config + - name + Connectors_update_connector_request_gemini: + title: Update Google Gemini connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_gemini' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_gemini' + required: + - config + - name + Connectors_update_connector_request_index: + title: Update index connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_index' + name: + description: The display name for the connector. + type: string + required: + - config + - name + Connectors_update_connector_request_jira: + title: Update Jira connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_jira' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_jira' + required: + - config + - name + - secrets + Connectors_update_connector_request_opsgenie: + title: Update Opsgenie connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_opsgenie' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_opsgenie' + required: + - config + - name + - secrets + Connectors_update_connector_request_pagerduty: + title: Update PagerDuty connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_pagerduty' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_pagerduty' + required: + - config + - name + - secrets + Connectors_update_connector_request_resilient: + title: Update IBM Resilient connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_resilient' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_resilient' + required: + - config + - name + - secrets + Connectors_update_connector_request_sentinelone: + title: Update SentinelOne connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_sentinelone' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_sentinelone' + required: + - config + - name + - secrets + Connectors_update_connector_request_serverlog: + title: Update server log connector request + type: object + properties: + name: + description: The display name for the connector. + type: string + required: + - name + Connectors_update_connector_request_servicenow: + title: Update ServiceNow ITSM connector or ServiceNow SecOps request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' + required: + - config + - name + - secrets + Connectors_update_connector_request_servicenow_itom: + title: Create ServiceNow ITOM connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_servicenow_itom' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_servicenow' + required: + - config + - name + - secrets + Connectors_update_connector_request_slack_api: + title: Update Slack connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_slack_api' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_slack_api' + required: + - name + - secrets + Connectors_update_connector_request_slack_webhook: + title: Update Slack connector request + type: object + properties: + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_slack_webhook' + required: + - name + - secrets + Connectors_update_connector_request_swimlane: + title: Update Swimlane connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_swimlane' + name: + description: The display name for the connector. + example: my-connector + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_swimlane' + required: + - config + - name + - secrets + Connectors_update_connector_request_teams: + title: Update Microsoft Teams connector request + type: object + properties: + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_teams' + required: + - name + - secrets + Connectors_update_connector_request_tines: + title: Update Tines connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_tines' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_tines' + required: + - config + - name + - secrets + Connectors_update_connector_request_torq: + title: Update Torq connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_torq' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_torq' + required: + - config + - name + - secrets + Connectors_update_connector_request_webhook: + title: Update Webhook connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_webhook' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_webhook' + required: + - config + - name + - secrets + Connectors_update_connector_request_xmatters: + title: Update xMatters connector request + type: object + properties: + config: + $ref: '#/components/schemas/Connectors_config_properties_xmatters' + name: + description: The display name for the connector. + type: string + secrets: + $ref: '#/components/schemas/Connectors_secrets_properties_xmatters' + required: + - config + - name + - secrets + Data_views_400_response: + title: Bad request + type: object + properties: + error: + example: Bad Request + type: string + message: + type: string + statusCode: + example: 400 + type: number + required: + - statusCode + - error + - message + Data_views_404_response: + type: object + properties: + error: + enum: + - Not Found + example: Not Found + type: string + message: + example: >- + Saved object [index-pattern/caaad6d0-920c-11ed-b36a-874bd1548a00] + not found + type: string + statusCode: + enum: + - 404 + example: 404 + type: integer + Data_views_allownoindex: + description: Allows the data view saved object to exist before the data is available. + type: boolean + Data_views_create_data_view_request_object: + title: Create data view request + type: object + properties: data_view: - id: ff959d40-b880-11e8-a6d9-e546fe2bba5f - version: WzUsMV0= - title: kibana_sample_data_ecommerce - timeFieldName: order_date - sourceFilters: [] - fields: - _id: - count: 0 - name: _id - type: string - esTypes: - - _id - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - _index: - count: 0 - name: _index - type: string - esTypes: - - _index - scripted: false - searchable: true - aggregatable: true - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - _score: - count: 0 - name: _score - type: number - scripted: false - searchable: false - aggregatable: false - readFromDocValues: false - format: - id: number - shortDotsEnable: false - isMapped: true - _source: - count: 0 - name: _source - type: _source - esTypes: - - _source - scripted: false - searchable: false - aggregatable: false - readFromDocValues: false - format: - id: _source - shortDotsEnable: false - isMapped: true - category: - count: 0 - name: category - type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - category.keyword: - count: 0 - name: category.keyword - type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: category - format: - id: string - shortDotsEnable: false - isMapped: true - currency: - count: 0 - name: currency - type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - customer_birth_date: - count: 0 - name: customer_birth_date - type: date - esTypes: - - date - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: date - shortDotsEnable: false - isMapped: true - customer_first_name: - count: 0 - name: customer_first_name - type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - customer_first_name.keyword: - count: 0 - name: customer_first_name.keyword - type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: customer_first_name - format: - id: string - shortDotsEnable: false - isMapped: true - customer_full_name: - count: 0 - name: customer_full_name - type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - customer_full_name.keyword: - count: 0 - name: customer_full_name.keyword - type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: customer_full_name - format: - id: string - shortDotsEnable: false - isMapped: true - customer_gender: - count: 0 - name: customer_gender - type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - customer_id: - count: 0 - name: customer_id + description: The data view object. + type: object + properties: + allowNoIndex: + $ref: '#/components/schemas/Data_views_allownoindex' + fieldAttrs: + additionalProperties: + $ref: '#/components/schemas/Data_views_fieldattrs' + type: object + fieldFormats: + $ref: '#/components/schemas/Data_views_fieldformats' + fields: + type: object + id: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - customer_last_name: - count: 0 - name: customer_last_name + name: + description: The data view name. type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - customer_last_name.keyword: - count: 0 - name: customer_last_name.keyword + namespaces: + $ref: '#/components/schemas/Data_views_namespaces' + runtimeFieldMap: + additionalProperties: + $ref: '#/components/schemas/Data_views_runtimefieldmap' + type: object + sourceFilters: + $ref: '#/components/schemas/Data_views_sourcefilters' + timeFieldName: + $ref: '#/components/schemas/Data_views_timefieldname' + title: + $ref: '#/components/schemas/Data_views_title' + type: + $ref: '#/components/schemas/Data_views_type' + typeMeta: + $ref: '#/components/schemas/Data_views_typemeta' + version: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: customer_last_name - format: - id: string - shortDotsEnable: false - isMapped: true - customer_phone: - count: 0 - name: customer_phone + required: + - title + override: + default: false + description: >- + Override an existing data view if a data view with the provided + title already exists. + type: boolean + required: + - data_view + Data_views_data_view_response_object: + title: Data view response properties + type: object + properties: + data_view: + type: object + properties: + allowNoIndex: + $ref: '#/components/schemas/Data_views_allownoindex' + fieldAttrs: + additionalProperties: + $ref: '#/components/schemas/Data_views_fieldattrs' + type: object + fieldFormats: + $ref: '#/components/schemas/Data_views_fieldformats' + fields: + type: object + id: + example: ff959d40-b880-11e8-a6d9-e546fe2bba5f type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - day_of_week: - count: 0 - name: day_of_week + name: + description: The data view name. type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - day_of_week_i: - count: 0 - name: day_of_week_i - type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - email: - count: 0 - name: email + namespaces: + $ref: '#/components/schemas/Data_views_namespaces' + runtimeFieldMap: + additionalProperties: + $ref: '#/components/schemas/Data_views_runtimefieldmap' + type: object + sourceFilters: + $ref: '#/components/schemas/Data_views_sourcefilters' + timeFieldName: + $ref: '#/components/schemas/Data_views_timefieldname' + title: + $ref: '#/components/schemas/Data_views_title' + typeMeta: + $ref: '#/components/schemas/Data_views_typemeta_response' + version: + example: WzQ2LDJd type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - event.dataset: - count: 0 - name: event.dataset + Data_views_fieldattrs: + description: A map of field attributes by field name. + type: object + properties: + count: + description: Popularity count for the field. + type: integer + customDescription: + description: Custom description for the field. + maxLength: 300 + type: string + customLabel: + description: Custom label for the field. + type: string + Data_views_fieldformats: + description: A map of field formats by field name. + type: object + Data_views_namespaces: + description: >- + An array of space identifiers for sharing the data view between multiple + spaces. + items: + default: default + type: string + type: array + Data_views_runtimefieldmap: + description: A map of runtime field definitions by field name. + type: object + properties: + script: + type: object + properties: + source: + description: Script for the runtime field. type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - geoip.city_name: - count: 0 - name: geoip.city_name + type: + description: Mapping type of the runtime field. + type: string + required: + - script + - type + Data_views_sourcefilters: + description: The array of field names you want to filter out in Discover. + items: + type: object + properties: + value: + type: string + required: + - value + type: array + Data_views_swap_data_view_request_object: + title: Data view reference swap request + type: object + properties: + delete: + description: Deletes referenced saved object if all references are removed. + type: boolean + forId: + description: Limit the affected saved objects to one or more by identifier. + oneOf: + - type: string + - items: + type: string + type: array + forType: + description: Limit the affected saved objects by type. + type: string + fromId: + description: The saved object reference to change. + type: string + fromType: + description: > + Specify the type of the saved object reference to alter. The default + value is `index-pattern` for data views. + type: string + toId: + description: New saved object reference value to replace the old value. + type: string + required: + - fromId + - toId + Data_views_timefieldname: + description: 'The timestamp field name, which you use for time-based data views.' + type: string + Data_views_title: + description: >- + Comma-separated list of data streams, indices, and aliases that you want + to search. Supports wildcards (`*`). + type: string + Data_views_type: + description: 'When set to `rollup`, identifies the rollup data views.' + type: string + Data_views_typemeta: + description: >- + When you use rollup indices, contains the field list for the rollup data + view API endpoints. + type: object + properties: + aggs: + description: A map of rollup restrictions by aggregation type and field name. + type: object + params: + description: Properties for retrieving rollup fields. + type: object + required: + - aggs + - params + Data_views_typemeta_response: + description: >- + When you use rollup indices, contains the field list for the rollup data + view API endpoints. + nullable: true + type: object + properties: + aggs: + description: A map of rollup restrictions by aggregation type and field name. + type: object + params: + description: Properties for retrieving rollup fields. + type: object + Data_views_update_data_view_request_object: + title: Update data view request + type: object + properties: + data_view: + description: > + The data view properties you want to update. Only the specified + properties are updated in the data view. Unspecified fields stay as + they are persisted. + type: object + properties: + allowNoIndex: + $ref: '#/components/schemas/Data_views_allownoindex' + fieldFormats: + $ref: '#/components/schemas/Data_views_fieldformats' + fields: + type: object + name: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - geoip.continent_name: - count: 0 - name: geoip.continent_name + runtimeFieldMap: + additionalProperties: + $ref: '#/components/schemas/Data_views_runtimefieldmap' + type: object + sourceFilters: + $ref: '#/components/schemas/Data_views_sourcefilters' + timeFieldName: + $ref: '#/components/schemas/Data_views_timefieldname' + title: + $ref: '#/components/schemas/Data_views_title' + type: + $ref: '#/components/schemas/Data_views_type' + typeMeta: + $ref: '#/components/schemas/Data_views_typemeta' + refresh_fields: + default: false + description: Reloads the data view fields after the data view is updated. + type: boolean + required: + - data_view + Fleet_agent: + title: Agent + type: object + properties: + access_api_key: + type: string + access_api_key_id: + type: string + active: + type: boolean + components: + items: + $ref: '#/components/schemas/Fleet_agent_component' + type: array + default_api_key: + type: string + default_api_key_id: + type: string + enrolled_at: + type: string + id: + type: string + last_checkin: + type: string + local_metadata: + $ref: '#/components/schemas/Fleet_agent_metadata' + metrics: + type: object + properties: + cpu_avg: + description: >- + Average agent CPU usage during the last 5 minutes, number + between 0-1 + type: number + memory_size_byte_avg: + description: Average agent memory consumption during the last 5 minutes + type: number + policy_id: + type: string + policy_revision: + type: number + status: + $ref: '#/components/schemas/Fleet_agent_status' + type: + $ref: '#/components/schemas/Fleet_agent_type' + unenrolled_at: + type: string + unenrollment_started_at: + type: string + user_provided_metadata: + $ref: '#/components/schemas/Fleet_agent_metadata' + required: + - type + - active + - enrolled_at + - id + - status + Fleet_agent_action: + oneOf: + - properties: + ack_data: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - geoip.country_iso_code: - count: 0 - name: geoip.country_iso_code + data: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - geoip.location: - count: 0 - name: geoip.location - type: geo_point - esTypes: - - geo_point - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: geo_point - params: - transform: wkt - shortDotsEnable: false - isMapped: true - geoip.region_name: - count: 0 - name: geoip.region_name + type: + enum: + - UNENROLL + - UPGRADE + - POLICY_REASSIGN type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - manufacturer: - count: 0 - name: manufacturer + - properties: + data: + type: object + properties: + log_level: + enum: + - debug + - info + - warning + - error + nullable: true + type: string + type: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - manufacturer.keyword: - count: 0 - name: manufacturer.keyword + title: Agent action + Fleet_agent_component: + title: Agent component + type: object + properties: + id: + type: string + message: + type: string + status: + $ref: '#/components/schemas/Fleet_agent_component_status' + type: + type: string + units: + items: + $ref: '#/components/schemas/Fleet_agent_component_unit' + type: array + Fleet_agent_component_status: + enum: + - starting + - configuring + - healthy + - degraded + - failed + - stopping + - stopped + title: Agent component status + type: string + Fleet_agent_component_unit: + title: Agent component unit + type: object + properties: + id: + type: string + message: + type: string + payload: + type: object + status: + $ref: '#/components/schemas/Fleet_agent_component_status' + type: + $ref: '#/components/schemas/Fleet_agent_component_unit_type' + Fleet_agent_component_unit_type: + enum: + - input + - output + title: Agent component unit type + type: string + Fleet_agent_diagnostics: + title: Agent diagnostics + type: object + properties: + actionId: + type: string + createTime: + type: string + filePath: + type: string + id: + type: string + name: + type: string + status: + enum: + - READY + - AWAITING_UPLOAD + - DELETED + - IN_PROGRESS + required: + - id + - name + - createTime + - filePath + - actionId + - status + Fleet_agent_get_by_actions: + items: + items: + type: string + type: array + title: Agents get by action ids + type: array + Fleet_agent_metadata: + title: Agent metadata + type: object + Fleet_agent_policy: + title: Agent Policy + type: object + properties: + advanced_settings: + description: >- + Advanced settings stored in the agent policy, e.g. + agent_limits_go_max_procs + nullable: true + type: object + agent_features: + items: + type: object + properties: + enabled: + type: boolean + name: + type: string + required: + - name + - enabled + type: array + agents: + type: number + data_output_id: + nullable: true + type: string + description: + type: string + download_source_id: + nullable: true + type: string + fleet_server_host_id: + nullable: true + type: string + global_data_tags: + items: + additionalProperties: + oneOf: + - type: string + - type: number + description: >- + User defined data tags that are added to all of the inputs. The + values can be strings or numbers. + type: object + type: array + id: + type: string + inactivity_timeout: + type: integer + is_protected: + description: >- + Indicates whether the agent policy has tamper protection enabled. + Default false. + type: boolean + keep_monitoring_alive: + description: >- + When set to true, monitoring will be enabled but logs/metrics + collection will be disabled + nullable: true + type: boolean + monitoring_enabled: + items: + enum: + - metrics + - logs + type: string + type: array + monitoring_output_id: + nullable: true + type: string + name: + type: string + namespace: + type: string + overrides: + description: >- + Override settings that are defined in the agent policy. Input + settings cannot be overridden. The override option should be used + only in unusual circumstances and not as a routine procedure. + nullable: true + type: object + package_policies: + description: >- + This field is present only when retrieving a single agent policy, or + when retrieving a list of agent policies with the ?full=true + parameter + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + revision: + type: number + supports_agentless: + description: >- + Indicates whether the agent policy supports agentless integrations. + Only allowed in a serverless environment. + type: boolean + unenroll_timeout: + type: integer + unprivileged_agents: + type: number + updated_by: + type: string + updated_on: + format: date-time + type: string + required: + - id + - status + - name + - namespace + Fleet_agent_policy_create_request: + title: Create agent policy request + type: object + properties: + agent_features: + items: + type: object + properties: + enabled: + type: boolean + name: + type: string + required: + - name + - enabled + type: array + data_output_id: + nullable: true + type: string + description: + type: string + download_source_id: + nullable: true + type: string + fleet_server_host_id: + nullable: true + type: string + force: + description: Force agent policy creation even if packages are not verified. + type: boolean + global_data_tags: + items: + additionalProperties: + oneOf: + - type: string + - type: number + description: >- + User defined data tags that are added to all of the inputs. The + values can be strings or numbers. + type: object + type: array + id: + type: string + inactivity_timeout: + type: integer + is_protected: + type: boolean + monitoring_enabled: + items: + enum: + - metrics + - logs + type: string + type: array + monitoring_output_id: + nullable: true + type: string + name: + type: string + namespace: + type: string + unenroll_timeout: + type: integer + required: + - name + - namespace + Fleet_agent_policy_full: + oneOf: + - type: object + properties: + item: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: manufacturer - format: - id: string - shortDotsEnable: false - isMapped: true - order_date: - count: 0 - name: order_date - type: date - esTypes: - - date - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: date - shortDotsEnable: false - isMapped: true - order_id: - count: 0 - name: order_id + - type: object + properties: + item: + $ref: '#/components/schemas/Fleet_full_agent_policy' + title: Agent policy full response + type: object + Fleet_agent_policy_update_request: + title: Update agent policy request + type: object + properties: + agent_features: + items: + type: object + properties: + enabled: + type: boolean + name: + type: string + required: + - name + - enabled + type: array + data_output_id: + nullable: true + type: string + description: + type: string + download_source_id: + nullable: true + type: string + fleet_server_host_id: + nullable: true + type: string + force: + description: Force agent policy creation even if packages are not verified. + type: boolean + inactivity_timeout: + type: integer + is_protected: + type: boolean + monitoring_enabled: + items: + enum: + - metrics + - logs + type: string + type: array + monitoring_output_id: + nullable: true + type: string + name: + type: string + namespace: + type: string + unenroll_timeout: + type: integer + required: + - name + - namespace + Fleet_agent_status: + enum: + - offline + - error + - online + - inactive + - warning + title: Elastic Agent status + type: string + Fleet_agent_type: + enum: + - PERMANENT + - EPHEMERAL + - TEMPORARY + title: Agent type + type: string + Fleet_bulk_install_packages_response: + title: Bulk install packages response + type: object + properties: + items: + items: + type: object + properties: + name: + type: string + version: + type: string + type: array + response: + deprecated: true + items: + type: object + properties: + name: + type: string + version: + type: string + type: array + required: + - items + Fleet_bulk_upgrade_agents: + title: Bulk upgrade agents + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - products._id: - count: 0 - name: products._id + - description: list of agent IDs + items: + type: string + type: array + force: + description: 'Force upgrade, skipping validation (should be used with caution)' + type: boolean + rollout_duration_seconds: + description: rolling upgrade window duration in seconds + type: number + skipRateLimitCheck: + description: Skip rate limit check for upgrade + type: boolean + source_uri: + description: alternative upgrade binary download url + type: string + start_time: + description: start time of upgrade in ISO 8601 format + type: string + version: + description: version to upgrade to + type: string + required: + - agents + - version + Fleet_data_stream: + title: Data stream + type: object + properties: + dashboard: + items: + type: object + properties: + id: + type: string + title: + type: string + type: array + dataset: + type: string + index: + type: string + last_activity_ms: + type: number + namespace: + type: string + package: + type: string + package_version: + type: string + size_in_bytes: + type: number + size_in_bytes_formatted: + type: string + type: + type: string + Fleet_download_sources: + title: Download Source + type: object + properties: + host: + type: string + id: + type: string + is_default: + type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this download source. See the proxies + API for more information. + nullable: true + type: string + required: + - is_default + - name + - host + Fleet_elasticsearch_asset_type: + enum: + - component_template + - ingest_pipeline + - index_template + - ilm_policy + - transform + - data_stream_ilm_policy + title: Elasticsearch asset type + type: string + Fleet_enrollment_api_key: + title: Enrollment API key + type: object + properties: + active: + type: boolean + api_key: + type: string + api_key_id: + type: string + created_at: + type: string + id: + type: string + name: + type: string + policy_id: + type: string + required: + - id + - api_key_id + - api_key + - active + - created_at + Fleet_fleet_server_host: + title: Fleet Server Host + type: object + properties: + host_urls: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_internal: + type: boolean + is_preconfigured: + type: boolean + name: + type: string + proxy_id: + type: string + required: + - fleet_server_hosts + - id + - is_default + - is_preconfigured + - host_urls + Fleet_fleet_settings_enrollment_response: + title: Fleet settings response + type: object + properties: + download_source: + $ref: '#/components/schemas/Fleet_download_sources' + fleet_server: + type: object + properties: + has_active: + type: boolean + host: + $ref: '#/components/schemas/Fleet_fleet_server_host' + host_proxy: + $ref: '#/components/schemas/Fleet_proxies' + policies: + items: + type: object + properties: + download_source_id: + type: string + fleet_server_host_id: + type: string + has_fleet_server: + type: boolean + id: + type: string + is_default_fleet_server: + type: boolean + is_managed: + type: boolean + name: + type: string + required: + - id + - name + - is_managed + type: array + required: + - agent_policies + - has_active + required: + - fleet_server + Fleet_fleet_settings_response: + title: Fleet settings response + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_settings' + required: + - item + Fleet_fleet_setup_response: + title: Fleet Setup response + type: object + properties: + isInitialized: + type: boolean + nonFatalErrors: + items: + type: object + properties: + message: + type: string + name: + type: string + required: + - name + - message + type: array + required: + - isInitialized + - nonFatalErrors + Fleet_fleet_status_response: + title: Fleet status response + type: object + properties: + isReady: + type: boolean + missing_optional_features: + items: + enum: + - encrypted_saved_object_encryption_key_required + type: string + type: array + missing_requirements: + items: + enum: + - tls_required + - api_keys + - fleet_admin_user + - fleet_server + type: string + type: array + package_verification_key_id: + type: string + required: + - isReady + - missing_requirements + - missing_optional_features + Fleet_full_agent_policy: + title: Full agent policy + type: object + properties: + agent: + nullable: true + type: string + fleet: + oneOf: + - type: object + properties: + hosts: + items: + type: string + type: array + proxy_headers: {} + proxy_url: + type: string + ssl: + type: object + properties: + certificate: + type: string + certificate_authorities: + items: + type: string + type: array + key: + type: string + renegotiation: + type: string + verification_mode: + type: string + - type: object + properties: + kibana: + type: object + properties: + hosts: + items: + type: string + type: array + path: + type: string + protocol: + type: string + id: + type: string + inputs: + type: string + output_permissions: + additionalProperties: + type: object + properties: + data: + $ref: >- + #/components/schemas/Fleet_full_agent_policy_output_permissions + output: + type: integer + type: object + outputs: + additionalProperties: + $ref: '#/components/schemas/Fleet_full_agent_policy_output' + type: object + revision: + type: number + secret_references: + items: + type: object + properties: + id: + type: string + type: array + required: + - id + - outputs + - inputs + Fleet_full_agent_policy_input: + allOf: + - additionalProperties: true + type: object + properties: + data_stream: + type: object + properties: + namespace: + type: string + required: + - namespace + id: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - products._id.keyword: - count: 0 - name: products._id.keyword + meta: + additionalProperties: true + type: object + properties: + package: + type: object + properties: + name: + type: string + version: + type: string + required: + - name + - version + name: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: products._id - format: - id: string - shortDotsEnable: false - isMapped: true - products.base_price: - count: 0 - name: products.base_price - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.base_unit_price: - count: 0 - name: products.base_unit_price + revision: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.category: - count: 0 - name: products.category + streams: + $ref: '#/components/schemas/Fleet_full_agent_policy_input_stream' + type: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - products.category.keyword: - count: 0 - name: products.category.keyword + use_output: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: products.category - format: - id: string - shortDotsEnable: false - isMapped: true - products.created_on: - count: 0 - name: products.created_on - type: date - esTypes: - - date - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: date - shortDotsEnable: false - isMapped: true - products.discount_amount: - count: 0 - name: products.discount_amount + required: + - id + - name + - revision + - type + - data_stream + - use_output + title: Full agent policy input + Fleet_full_agent_policy_input_stream: + allOf: + - additionalProperties: true + type: object + properties: + data_stream: + type: object + properties: + dataset: + type: string + type: + type: string + required: + - dataset + - type + id: + type: string + required: + - id + - data_stream + title: Full agent policy input stream + Fleet_full_agent_policy_output: + title: Full agent policy + type: object + properties: + additionalProperties: + type: object + properties: + text: {} + ca_sha256: + nullable: true + type: string + hosts: + items: + type: string + type: array + proxy_headers: {} + proxy_url: + type: string + type: {} + required: + - type + - hosts + - ca_sha256 + Fleet_full_agent_policy_output_permissions: + additionalProperties: + type: object + properties: + data: + type: object + properties: + cluster: + items: + type: string + type: array + indices: + items: + type: object + properties: + names: + items: + type: string + type: array + privileges: + items: + type: string + type: array + type: array + packagePolicyName: + type: string + title: Full agent policy output permissions + Fleet_get_agent_tags_response: + title: Get Agent Tags response + type: object + properties: + items: + items: + type: string + type: array + Fleet_get_agents_response: + title: Get Agent response + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent' + type: array + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_agent' + type: array + page: + type: number + perPage: + type: number + statusSummary: + type: object + properties: + degraded': type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.discount_percentage: - count: 0 - name: products.discount_percentage + enrolling: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.manufacturer: - count: 1 - name: products.manufacturer - type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - products.manufacturer.keyword: - count: 0 - name: products.manufacturer.keyword - type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: products.manufacturer - format: - id: string - shortDotsEnable: false - isMapped: true - products.min_price: - count: 0 - name: products.min_price + error: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.price: - count: 1 - name: products.price + inactive: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.product_id: - count: 0 - name: products.product_id + offline: type: number - esTypes: - - long - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.product_name: - count: 1 - name: products.product_name + online: + type: number + unenrolled: + type: number + unenrolling: + type: number + updating: + type: number + total: + type: number + required: + - items + - total + - page + - perPage + Fleet_get_bulk_assets_response: + deprecated: true + properties: + items: + items: + type: object + properties: + appLink: + type: string + attributes: + type: object + properties: + description: + type: string + title: + type: string + id: + type: string + type: + $ref: '#/components/schemas/Fleet_saved_object_type' + updatedAt: + type: string + type: array + required: + - items + title: Bulk get assets response + type: object + Fleet_get_categories_response: + title: Get categories response + type: object + properties: + items: + items: + type: object + properties: + count: + type: number + id: + type: string + title: + type: string + required: + - id + - title + - count + type: array + response: + items: + deprecated: true + type: object + properties: + count: + type: number + id: + type: string + title: + type: string + required: + - id + - title + - count + type: array + required: + - items + Fleet_get_packages_response: + title: Get Packages response + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_search_result' + type: array + response: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_search_result' + type: array + required: + - items + Fleet_installation_info: + title: Installation info object + type: object + properties: + created_at: + type: string + experimental_data_stream_features: + type: array + properties: + data_stream: + type: string + features: + type: object + properties: + doc_value_only_numeric: + nullable: true + type: boolean + doc_value_only_other: + nullable: true + type: boolean + synthetic_source: + nullable: true + type: boolean + tsdb: + nullable: true + type: boolean + install_format_schema_version: + type: string + install_kibana_space_id: + type: string + install_source: + enum: + - registry + - upload + - bundled + type: string + install_status: + enum: + - installed + - installing + - install_failed + type: string + installed_es: + type: object + properties: + deferred: + type: boolean + id: + type: string + type: + $ref: '#/components/schemas/Fleet_elasticsearch_asset_type' + installed_kibana: + type: object + properties: + id: + type: string + type: + $ref: '#/components/schemas/Fleet_kibana_saved_object_type' + latest_executed_state: + description: Latest successfully executed state in package install state machine + type: object + properties: + error: + type: string + name: + enum: + - create_restart_installation + - install_kibana_assets + - install_ilm_policies + - install_ml_model + - install_index_template_pipelines + - remove_legacy_templates + - update_current_write_indices + - install_transforms + - delete_previous_pipelines + - save_archive_entries_from_assets_map + - update_so + type: string + started_at: + type: string + latest_install_failed_attempts: + description: Latest failed install errors + items: + type: object + properties: + created_at: + type: string + error: + type: object + properties: + message: + type: string + name: + type: string + stack: + type: string + target_version: + type: string + type: array + name: + type: string + namespaces: + items: + type: string + type: array + type: + type: string + updated_at: + type: string + verification_key_id: + nullable: true + type: string + verification_status: + enum: + - verified + - unverified + - unknown + type: string + version: + type: string + required: + - installed_kibana + - installed_es + - name + - version + - install_status + - install_version + - install_started_at + - install_source + - verification_status + - latest_install_failed_attempts + Fleet_kibana_saved_object_type: + enum: + - dashboard + - visualization + - search + - index-pattern + - map + - lens + - ml-module + - security-rule + - csp_rule_template + title: Kibana saved object asset type + type: string + Fleet_new_package_policy: + description: '' + properties: + description: + type: string + enabled: + type: boolean + inputs: + items: + type: object + properties: + config: + type: object + enabled: + type: boolean + processors: + items: + type: string + type: array + streams: + items: {} + type: array + type: + type: string + vars: + type: object + required: + - type + - enabled + type: array + name: + type: string + namespace: + type: string + output_id: + type: string + overrides: + type: object + package: + type: object + properties: + name: type: string - esTypes: - - text - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - products.product_name.keyword: - count: 0 - name: products.product_name.keyword + requires_root: + type: boolean + title: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - subType: - multi: - parent: products.product_name - format: - id: string - shortDotsEnable: false - isMapped: true - products.quantity: - count: 0 - name: products.quantity - type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.sku: - count: 0 - name: products.sku + version: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - products.tax_amount: - count: 0 - name: products.tax_amount - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - products.taxful_price: - count: 0 - name: products.taxful_price - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.taxless_price: - count: 0 - name: products.taxless_price + required: + - name + - version + policy_id: + deprecated: true + type: string + policy_ids: + items: + type: string + type: array + required: + - inputs + - name + title: New package policy + type: object + Fleet_output_create_request: + discriminator: + mapping: + elasticsearch: '#/components/schemas/Fleet_output_create_request_elasticsearch' + kafka: '#/components/schemas/Fleet_output_create_request_kafka' + logstash: '#/components/schemas/Fleet_output_create_request_logstash' + remote_elasticsearch: >- + #/components/schemas/Fleet_output_create_request_remote_elasticsearch + propertyName: type + oneOf: + - $ref: '#/components/schemas/Fleet_output_create_request_elasticsearch' + - $ref: '#/components/schemas/Fleet_output_create_request_kafka' + - $ref: '#/components/schemas/Fleet_output_create_request_logstash' + - $ref: >- + #/components/schemas/Fleet_output_create_request_remote_elasticsearch + title: Output + Fleet_output_create_request_elasticsearch: + title: elasticsearch + type: object + properties: + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + config: + type: object + config_yaml: + type: string + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + preset: + enum: + - balanced + - custom + - throughput + - scale + - latency + type: string + proxy_id: + type: string + shipper: + type: object + properties: + compression_level: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - products.unit_discount_amount: - count: 0 - name: products.unit_discount_amount + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - sku: - count: 0 - name: sku + disk_queue_path: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - taxful_total_price: - count: 0 - name: taxful_total_price - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.[00] - shortDotsEnable: false - isMapped: true - taxless_total_price: - count: 0 - name: taxless_total_price - type: number - esTypes: - - half_float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.00 - shortDotsEnable: false - isMapped: true - total_quantity: - count: 1 - name: total_quantity + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: + type: string + certificate_authorities: + items: + type: string + type: array + key: + type: string + type: + enum: + - elasticsearch + type: string + required: + - name + Fleet_output_create_request_kafka: + title: kafka + type: object + properties: + auth_type: + type: string + broker_timeout: + type: number + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + client_id: + type: string + compression: + type: string + compression_level: + type: number + config: + type: object + config_yaml: + type: string + connection_type: + enum: + - plaintext + - encryption + type: string + headers: + items: + type: object + properties: + key: + type: string + value: + type: string + type: array + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + key: + type: string + name: + type: string + partition: + type: string + password: + type: string + proxy_id: + type: string + random: + type: object + properties: + group_events: type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - total_unique_products: - count: 0 - name: total_unique_products + required_acks: + type: number + round_robin: + type: object + properties: + group_events: type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - type: - count: 0 - name: type + sasl: + type: object + properties: + mechanism: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - user: - count: 0 - name: user + secrets: + type: object + properties: + password: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - typeMeta: {} - fieldFormats: - taxful_total_price: - id: number - params: - pattern: $0,0.[00] - products.price: - id: number - params: - pattern: $0,0.00 - taxless_total_price: - id: number - params: - pattern: $0,0.00 - products.taxless_price: - id: number - params: - pattern: $0,0.00 - products.taxful_price: - id: number - params: - pattern: $0,0.00 - products.min_price: - id: number - params: - pattern: $0,0.00 - products.base_unit_price: - id: number - params: - pattern: $0,0.00 - products.base_price: - id: number - params: - pattern: $0,0.00 - runtimeFieldMap: {} - fieldAttrs: - products.manufacturer: - count: 1 - products.price: - count: 1 - products.product_name: - count: 1 - total_quantity: - count: 1 - allowNoIndex: false - name: Kibana Sample Data eCommerce - namespaces: - - default - Data_views_update_data_view_request: - summary: Update some properties for a data view. - value: - data_view: - title: kibana_sample_data_ecommerce - timeFieldName: order_date - allowNoIndex: false - name: Kibana Sample Data eCommerce - refresh_fields: true - Data_views_update_field_metadata_request: - summary: Update metadata for multiple fields. - value: - fields: - field1: - count: 123 - customLabel: Field 1 label - field2: - customLabel: Field 2 label - customDescription: Field 2 description - Data_views_create_runtime_field_request: - summary: Create a runtime field. - value: - name: runtimeFoo - runtimeField: - type: long - script: - source: emit(doc["foo"].value) - Data_views_get_runtime_field_response: - summary: >- - The get runtime field API returns a JSON object that contains - information about the runtime field (`hour_of_day`) and the data view - (`d3d7af60-4c81-11e8-b3d7-01146121b73d`). - value: - fields: - - count: 0 - name: hour_of_day - type: number - esTypes: - - long - scripted: false - searchable: true - aggregatable: true - readFromDocValues: false - shortDotsEnable: false - runtimeField: - type: long - script: - source: emit(doc['timestamp'].value.getHour()); - data_view: - id: d3d7af60-4c81-11e8-b3d7-01146121b73d - version: WzM2LDJd - title: kibana_sample_data_flights - timeFieldName: timestamp - sourceFilters: [] - fields: - hour_of_day: - count: 0 - name: hour_of_day + ssl: + type: object + properties: + key: + type: string + shipper: + type: object + properties: + compression_level: type: number - esTypes: - - long - scripted: false - searchable: true - aggregatable: true - readFromDocValues: false - format: - id: number - params: - pattern: '00' - shortDotsEnable: false - runtimeField: - type: long - script: - source: emit(doc['timestamp'].value.getHour()); - AvgTicketPrice: - count: 0 - name: AvgTicketPrice + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: + type: number + disk_queue_path: + type: string + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: + type: string + certificate_authorities: + items: + type: string + type: array + key: + type: string + verification_mode: + enum: + - none + - full + - certificate + - strict + type: string + timeout: + type: number + topic: + type: string + topics: + deprecated: true + description: Use topic instead. + items: + type: object + properties: + topic: + type: string + when: + deprecated: true + description: >- + Deprecated, kafka output do not support conditionnal topics + anymore. + type: object + properties: + condition: + type: string + type: + type: string + type: array + type: + enum: + - kafka + type: string + username: + type: string + version: + type: string + required: + - name + - type + - topics + - auth_type + - hosts + Fleet_output_create_request_logstash: + title: logstash + type: object + properties: + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + config: + type: object + config_yaml: + type: string + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + type: string + secrets: + type: object + properties: + ssl: + type: object + properties: + key: + type: string + shipper: + type: object + properties: + compression_level: type: number - esTypes: - - float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - params: - pattern: $0,0.[00] - shortDotsEnable: false - isMapped: true - Cancelled: - count: 0 - name: Cancelled + disk_queue_compression_enabled: type: boolean - esTypes: - - boolean - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: boolean - shortDotsEnable: false - isMapped: true - Carrier: - count: 0 - name: Carrier + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: + type: number + disk_queue_path: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - Dest: - count: 0 - name: Dest + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestAirportID: - count: 0 - name: DestAirportID + certificate_authorities: + items: + type: string + type: array + key: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestCityName: - count: 0 - name: DestCityName + type: + enum: + - logstash + type: string + required: + - name + - hosts + - type + Fleet_output_create_request_remote_elasticsearch: + title: remote_elasticsearch + type: object + properties: + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + secrets: + type: object + properties: + service_token: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestCountry: - count: 0 - name: DestCountry + service_token: + type: string + type: + enum: + - remote_elasticsearch + type: string + required: + - name + Fleet_output_update_request: + discriminator: + mapping: + elasticsearch: '#/components/schemas/Fleet_output_update_request_elasticsearch' + kafka: '#/components/schemas/Fleet_output_update_request_kafka' + logstash: '#/components/schemas/Fleet_output_update_request_logstash' + propertyName: type + oneOf: + - $ref: '#/components/schemas/Fleet_output_update_request_elasticsearch' + - $ref: '#/components/schemas/Fleet_output_update_request_kafka' + - $ref: '#/components/schemas/Fleet_output_update_request_logstash' + title: Output + Fleet_output_update_request_elasticsearch: + title: elasticsearch + type: object + properties: + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + config: + type: object + config_yaml: + type: string + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + preset: + enum: + - balanced + - custom + - throughput + - scale + - latency + type: string + proxy_id: + type: string + shipper: + type: object + properties: + compression_level: + type: number + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: + type: number + disk_queue_path: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestLocation: - count: 0 - name: DestLocation - type: geo_point - esTypes: - - geo_point - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: geo_point - params: - transform: wkt - shortDotsEnable: false - isMapped: true - DestRegion: - count: 0 - name: DestRegion + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DestWeather: - count: 0 - name: DestWeather + certificate_authorities: + items: + type: string + type: array + key: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - DistanceKilometers: - count: 0 - name: DistanceKilometers + type: + enum: + - elasticsearch + type: string + required: + - name + - hosts + - type + Fleet_output_update_request_kafka: + title: kafka + type: object + properties: + auth_type: + type: string + broker_timeout: + type: number + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + client_id: + type: string + compression: + type: string + compression_level: + type: number + config: + type: object + config_yaml: + type: string + connection_type: + enum: + - plaintext + - encryption + type: string + headers: + items: + type: object + properties: + key: + type: string + value: + type: string + type: array + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + key: + type: string + name: + type: string + partition: + type: string + password: + type: string + proxy_id: + type: string + random: + type: object + properties: + group_events: type: number - esTypes: - - float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - DistanceMiles: - count: 0 - name: DistanceMiles + required_acks: + type: number + round_robin: + type: object + properties: + group_events: type: number - esTypes: - - float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - FlightDelay: - count: 0 - name: FlightDelay + sasl: + type: object + properties: + mechanism: + type: string + shipper: + type: object + properties: + compression_level: + type: number + disk_queue_compression_enabled: type: boolean - esTypes: - - boolean - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: boolean - shortDotsEnable: false - isMapped: true - FlightDelayMin: - count: 0 - name: FlightDelayMin + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - FlightDelayType: - count: 0 - name: FlightDelayType + disk_queue_path: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - FlightNum: - count: 0 - name: FlightNum + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - FlightTimeHour: - count: 0 - name: FlightTimeHour + certificate_authorities: + items: + type: string + type: array + key: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - FlightTimeMin: - count: 0 - name: FlightTimeMin + verification_mode: + enum: + - none + - full + - certificate + - strict + type: string + timeout: + type: number + topic: + type: string + topics: + deprecated: true + description: Use topic instead. + items: + type: object + properties: + topic: + type: string + when: + deprecated: true + description: >- + Deprecated, kafka output do not support conditionnal topics + anymore. + type: object + properties: + condition: + type: string + type: + type: string + type: array + type: + enum: + - kafka + type: string + username: + type: string + version: + type: string + required: + - name + Fleet_output_update_request_logstash: + title: logstash + type: object + properties: + ca_sha256: + type: string + ca_trusted_fingerprint: + type: string + config: + type: object + config_yaml: + type: string + hosts: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_default_monitoring: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + type: string + shipper: + type: object + properties: + compression_level: type: number - esTypes: - - float - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - Origin: - count: 0 - name: Origin + disk_queue_compression_enabled: + type: boolean + disk_queue_enabled: + type: boolean + disk_queue_encryption_enabled: + type: boolean + disk_queue_max_size: + type: number + disk_queue_path: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginAirportID: - count: 0 - name: OriginAirportID + loadbalance: + type: boolean + ssl: + type: object + properties: + certificate: + type: string + certificate_authorities: + items: + type: string + type: array + key: + type: string + type: + enum: + - logstash + type: string + required: + - name + Fleet_package_info: + title: Package information + type: object + properties: + assets: + items: + type: string + type: array + categories: + items: + type: string + type: array + conditions: + type: object + properties: + elasticsearch: + type: object + properties: + subscription: + enum: + - basic + - gold + - platinum + - enterprise + type: string + kibana: + type: object + properties: + versions: + type: string + data_streams: + items: + type: object + properties: + ingeset_pipeline: + type: string + name: + type: string + package: + type: string + release: + type: string + title: + type: string + type: + type: string + vars: + items: + type: object + properties: + default: + type: string + name: + type: string + required: + - name + - default + type: array + required: + - title + - name + - release + - ingeset_pipeline + - type + - package + type: array + description: + type: string + download: + type: string + elasticsearch: + type: object + properties: + privileges: + type: object + properties: + cluster: + items: + type: string + type: array + format_version: + type: string + icons: + items: + type: string + type: array + internal: + type: boolean + name: + type: string + path: + type: string + readme: + type: string + release: + deprecated: true + description: >- + release label is deprecated, derive from the version instead + (packages follow semver) + enum: + - experimental + - beta + - ga + type: string + screenshots: + items: + type: object + properties: + path: + type: string + size: + type: string + src: + type: string + title: + type: string + type: + type: string + required: + - src + - path + type: array + source: + type: object + properties: + license: + enum: + - Apache-2.0 + - Elastic-2.0 type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginCityName: - count: 0 - name: OriginCityName + title: + type: string + type: + type: string + version: + type: string + required: + - name + - title + - version + - description + - type + - categories + - conditions + - assets + - format_version + - download + - path + Fleet_package_policy: + allOf: + - type: object + properties: + id: type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginCountry: - count: 0 - name: OriginCountry + inputs: + oneOf: + - items: {} + type: array + - type: object + revision: + type: number + required: + - id + - revision + - $ref: '#/components/schemas/Fleet_new_package_policy' + title: Package policy + Fleet_package_policy_request: + title: Package Policy Request + type: object + properties: + description: + description: Package policy description + example: my description + type: string + force: + description: >- + Force package policy creation even if package is not verified, or if + the agent policy is managed. + type: boolean + id: + description: Package policy unique identifier + type: string + inputs: + additionalProperties: + type: object + properties: + enabled: + description: 'enable or disable that input, (default to true)' + type: boolean + streams: + additionalProperties: + type: object + properties: + enabled: + description: 'enable or disable that stream, (default to true)' + type: boolean + vars: + description: >- + Stream level variable (see integration documentation for + more information) + type: object + description: >- + Input streams (see integration documentation to know what + streams are available) + type: object + vars: + description: >- + Input level variable (see integration documentation for more + information) + type: object + description: >- + Package policy inputs (see integration documentation to know what + inputs are available) + example: + nginx-logfile: + enabled: true + streams: + nginx.access: + enabled: true + vars: + ignore_older: 72h + paths: + - /var/log/nginx/access.log* + preserve_original_event: false + tags: + - nginx-access + type: object + name: + description: Package policy name (should be unique) + example: nginx-123 + type: string + namespace: + description: >- + The package policy namespace. Leave blank to inherit the agent + policy's namespace. + example: customnamespace + type: string + overrides: + description: >- + Override settings that are defined in the package policy. The + override option should be used only in unusual circumstances and not + as a routine procedure. + nullable: true + type: object + properties: + inputs: + type: object + package: + type: object + properties: + name: + description: Package name + example: nginx type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginLocation: - count: 0 - name: OriginLocation - type: geo_point - esTypes: - - geo_point - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: geo_point - params: - transform: wkt - shortDotsEnable: false - isMapped: true - OriginRegion: - count: 0 - name: OriginRegion + version: + description: Package version + example: 1.6.0 type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - OriginWeather: - count: 0 - name: OriginWeather + required: + - name + - version + policy_id: + deprecated: true + description: Agent policy ID where that package policy will be added + example: agent-policy-id + type: string + policy_ids: + description: Agent policy IDs where that package policy will be added + example: + - agent-policy-id + items: + type: string + type: array + vars: + description: >- + Package root level variable (see integration documentation for more + information) + type: object + required: + - name + - package + Fleet_package_usage_stats: + title: Package usage stats + type: object + properties: + agent_policy_count: + type: integer + required: + - agent_policy_count + Fleet_proxies: + title: Fleet Proxy + type: object + properties: + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + id: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string + required: + - name + - url + Fleet_saved_object_type: + oneOf: + - enum: + - dashboard + - visualization + - search + - index_pattern + - map + - lens + - security_rule + - csp_rule_template + - ml_module + - tag + - osquery_pack_asset + - osquery_saved_query + type: string + - enum: + - index + - component_template + - ingest_pipeline + - index_template + - ilm_policy + - transform + - data_stream_ilm_policy + - ml_model + type: string + title: Saved Object type + Fleet_search_result: + title: Search result + type: object + properties: + description: + type: string + download: + type: string + icons: + type: string + installationInfo: + $ref: '#/components/schemas/Fleet_installation_info' + name: + type: string + path: + type: string + savedObject: + deprecated: true + type: object + status: + type: string + title: + type: string + type: + type: string + version: + type: string + required: + - description + - download + - icons + - name + - path + - title + - type + - version + - status + Fleet_settings: + title: Settings + type: object + properties: + fleet_server_hosts: + deprecated: true + items: + type: string + type: array + has_seen_add_data_notice: + type: boolean + id: + type: string + prerelease_integrations_enabled: + type: boolean + required: + - fleet_server_hosts + - id + Fleet_upgrade_agent: + title: Upgrade agent + type: object + properties: + force: + description: 'Force upgrade, skipping validation (should be used with caution)' + type: boolean + skipRateLimitCheck: + description: Skip rate limit check for upgrade + type: boolean + source_uri: + type: string + version: + type: string + required: + - version + Fleet_upgrade_agent_diff: + items: + items: + $ref: '#/components/schemas/Fleet_full_agent_policy_input' + type: array + title: Package policy Upgrade dryrun + type: array + Fleet_upgrade_diff: + items: + allOf: + - $ref: '#/components/schemas/Fleet_package_policy' + - allOf: + - $ref: '#/components/schemas/Fleet_new_package_policy' + - type: object + properties: + errors: + items: + type: object + properties: + key: + type: string + message: + type: string + type: array + missingVars: + items: + type: string + type: array + type: object + title: Package policy Upgrade dryrun + type: array + Kibana_HTTP_APIs_core_status_redactedResponse: + additionalProperties: false + description: A minimal representation of Kibana's operational status. + type: object + properties: + status: + additionalProperties: false + type: object + properties: + overall: + additionalProperties: false + type: object + properties: + level: + description: Service status levels as human and machine readable values. + enum: + - available + - degraded + - unavailable + - critical + type: string + required: + - level + required: + - overall + required: + - status + Kibana_HTTP_APIs_core_status_response: + additionalProperties: false + description: >- + Kibana's operational status as well as a detailed breakdown of plugin + statuses indication of various loads (like event loop utilization and + network traffic) at time of request. + type: object + properties: + metrics: + additionalProperties: false + description: Metric groups collected by Kibana. + type: object + properties: + collection_interval_in_millis: + description: The interval at which metrics should be collected. + type: number + elasticsearch_client: + additionalProperties: false + description: Current network metrics of Kibana's Elasticsearch client. + type: object + properties: + totalActiveSockets: + description: Count of network sockets currently in use. + type: number + totalIdleSockets: + description: Count of network sockets currently idle. + type: number + totalQueuedRequests: + description: Count of requests not yet assigned to sockets. + type: number + required: + - totalActiveSockets + - totalIdleSockets + - totalQueuedRequests + last_updated: + description: The time metrics were collected. type: string - esTypes: - - keyword - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: string - shortDotsEnable: false - isMapped: true - _id: - count: 0 - name: _id + required: + - elasticsearch_client + - last_updated + - collection_interval_in_millis + name: + description: Kibana instance name. + type: string + status: + additionalProperties: false + type: object + properties: + core: + additionalProperties: false + description: Statuses of core Kibana services. + type: object + properties: + elasticsearch: + additionalProperties: false + type: object + properties: + detail: + description: Human readable detail of the service status. + type: string + documentationUrl: + description: A URL to further documentation regarding this service. + type: string + level: + description: >- + Service status levels as human and machine readable + values. + enum: + - available + - degraded + - unavailable + - critical + type: string + meta: + additionalProperties: {} + description: >- + An unstructured set of extra metadata about this + service. + type: object + summary: + description: A human readable summary of the service status. + type: string + required: + - level + - summary + - meta + savedObjects: + additionalProperties: false + type: object + properties: + detail: + description: Human readable detail of the service status. + type: string + documentationUrl: + description: A URL to further documentation regarding this service. + type: string + level: + description: >- + Service status levels as human and machine readable + values. + enum: + - available + - degraded + - unavailable + - critical + type: string + meta: + additionalProperties: {} + description: >- + An unstructured set of extra metadata about this + service. + type: object + summary: + description: A human readable summary of the service status. + type: string + required: + - level + - summary + - meta + required: + - elasticsearch + - savedObjects + overall: + additionalProperties: false + type: object + properties: + detail: + description: Human readable detail of the service status. + type: string + documentationUrl: + description: A URL to further documentation regarding this service. + type: string + level: + description: Service status levels as human and machine readable values. + enum: + - available + - degraded + - unavailable + - critical + type: string + meta: + additionalProperties: {} + description: An unstructured set of extra metadata about this service. + type: object + summary: + description: A human readable summary of the service status. + type: string + required: + - level + - summary + - meta + plugins: + additionalProperties: + additionalProperties: false + type: object + properties: + detail: + description: Human readable detail of the service status. + type: string + documentationUrl: + description: A URL to further documentation regarding this service. + type: string + level: + description: >- + Service status levels as human and machine readable + values. + enum: + - available + - degraded + - unavailable + - critical + type: string + meta: + additionalProperties: {} + description: An unstructured set of extra metadata about this service. + type: object + summary: + description: A human readable summary of the service status. + type: string + required: + - level + - summary + - meta + description: A dynamic mapping of plugin ID to plugin status. + type: object + required: + - overall + - core + - plugins + uuid: + description: >- + Unique, generated Kibana instance UUID. This UUID should persist + even if the Kibana process restarts. + type: string + version: + additionalProperties: false + type: object + properties: + build_date: + description: The date and time of this build. type: string - esTypes: - - _id - scripted: false - searchable: true - aggregatable: false - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - _index: - count: 0 - name: _index + build_flavor: + description: >- + The build flavour determines configuration and behavior of + Kibana. On premise users will almost always run the + "traditional" flavour, while other flavours are reserved for + Elastic-specific use cases. + enum: + - serverless + - traditional type: string - esTypes: - - _index - scripted: false - searchable: true - aggregatable: true - readFromDocValues: false - format: - id: string - shortDotsEnable: false - isMapped: true - _score: - count: 0 - name: _score - type: number - scripted: false - searchable: false - aggregatable: false - readFromDocValues: false - format: - id: number - shortDotsEnable: false - isMapped: true - _source: - count: 0 - name: _source - type: _source - esTypes: - - _source - scripted: false - searchable: false - aggregatable: false - readFromDocValues: false - format: - id: _source - shortDotsEnable: false - isMapped: true - dayOfWeek: - count: 0 - name: dayOfWeek - type: number - esTypes: - - integer - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: number - shortDotsEnable: false - isMapped: true - timestamp: - count: 0 - name: timestamp - type: date - esTypes: - - date - scripted: false - searchable: true - aggregatable: true - readFromDocValues: true - format: - id: date - shortDotsEnable: false - isMapped: true - fieldFormats: - hour_of_day: - id: number - params: - pattern: '00' - AvgTicketPrice: - id: number - params: - pattern: $0,0.[00] - runtimeFieldMap: - hour_of_day: - type: long - script: - source: emit(doc['timestamp'].value.getHour()); - fieldAttrs: {} - allowNoIndex: false - name: Kibana Sample Data Flights - Data_views_update_runtime_field_request: - summary: Update an existing runtime field on a data view. - value: - runtimeField: - script: - source: emit(doc["bar"].value) - Data_views_get_default_data_view_response: - summary: The get default data view API returns the default data view identifier. - value: - data_view_id: ff959d40-b880-11e8-a6d9-e546fe2bba5f - Data_views_set_default_data_view_request: - summary: Set the default data view identifier. - value: - data_view_id: ff959d40-b880-11e8-a6d9-e546fe2bba5f - force: true - Data_views_swap_data_view_request: - summary: >- - Swap references from data view ID "abcd-efg" to "xyz-123" and remove the - data view that is no longer referenced. - value: - fromId: abcd-efg - toId: xyz-123 - delete: true - Data_views_preview_swap_data_view_request: - summary: Preview swapping references from data view ID "abcd-efg" to "xyz-123". - value: - fromId: abcd-efg - toId: xyz-123 - Machine_learning_APIs_mlSyncExample: - summary: Two anomaly detection jobs required synchronization in this example. - value: - savedObjectsCreated: - anomaly-detector: - myjob1: - success: true - myjob2: - success: true - savedObjectsDeleted: {} - datafeedsAdded: {} - datafeedsRemoved: {} - Saved_objects_key_rotation_response: - summary: Encryption key rotation using default parameters. - value: - total: 1000 - successful: 300 - failed: 0 - Saved_objects_export_objects_request: - summary: Export a specific saved object. - value: - objects: - - type: map - id: de71f4f0-1902-11e9-919b-ffe5949a18d2 - includeReferencesDeep: false - excludeExportDetails: true - Saved_objects_export_objects_response: - summary: >- - The export objects API response contains a JSON record for each exported - object. - value: - attributes: - description: '' - layerListJSON: >- - [{"id":"0hmz5","alpha":1,"sourceDescriptor":{"type":"EMS_TMS","isAutoSelect":true,"lightModeDefault":"road_map_desaturated"},"visible":true,"style":{},"type":"EMS_VECTOR_TILE","minZoom":0,"maxZoom":24},{"id":"edh66","label":"Total - Requests by - Destination","minZoom":0,"maxZoom":24,"alpha":0.5,"sourceDescriptor":{"type":"EMS_FILE","id":"world_countries","tooltipProperties":["name","iso2"]},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"DYNAMIC","options":{"field":{"name":"__kbnjoin__count__673ff994-fc75-4c67-909b-69fcb0e1060e","origin":"join"},"color":"Greys","fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"lineColor":{"type":"STATIC","options":{"color":"#FFFFFF"}},"lineWidth":{"type":"STATIC","options":{"size":1}},"iconSize":{"type":"STATIC","options":{"size":10}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR","joins":[{"leftField":"iso2","right":{"type":"ES_TERM_SOURCE","id":"673ff994-fc75-4c67-909b-69fcb0e1060e","indexPatternTitle":"kibana_sample_data_logs","term":"geo.dest","indexPatternRefName":"layer_1_join_0_index_pattern","metrics":[{"type":"count","label":"web - logs - count"}],"applyGlobalQuery":true}}]},{"id":"gaxya","label":"Actual - Requests","minZoom":9,"maxZoom":24,"alpha":1,"sourceDescriptor":{"id":"b7486535-171b-4d3b-bb2e-33c1a0a2854c","type":"ES_SEARCH","geoField":"geo.coordinates","limit":2048,"filterByMapBounds":true,"tooltipProperties":["clientip","timestamp","host","request","response","machine.os","agent","bytes"],"indexPatternRefName":"layer_2_source_index_pattern","applyGlobalQuery":true,"scalingType":"LIMIT"},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"STATIC","options":{"color":"#2200ff"}},"lineColor":{"type":"STATIC","options":{"color":"#FFFFFF"}},"lineWidth":{"type":"STATIC","options":{"size":2}},"iconSize":{"type":"DYNAMIC","options":{"field":{"name":"bytes","origin":"source"},"minSize":1,"maxSize":23,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR"},{"id":"tfi3f","label":"Total - Requests and - Bytes","minZoom":0,"maxZoom":9,"alpha":1,"sourceDescriptor":{"type":"ES_GEO_GRID","resolution":"COARSE","id":"8aaa65b5-a4e9-448b-9560-c98cb1c5ac5b","geoField":"geo.coordinates","requestType":"point","metrics":[{"type":"count","label":"web - logs - count"},{"type":"sum","field":"bytes"}],"indexPatternRefName":"layer_3_source_index_pattern","applyGlobalQuery":true},"visible":true,"style":{"type":"VECTOR","properties":{"fillColor":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"color":"Blues","fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"lineColor":{"type":"STATIC","options":{"color":"#cccccc"}},"lineWidth":{"type":"STATIC","options":{"size":1}},"iconSize":{"type":"DYNAMIC","options":{"field":{"name":"sum_of_bytes","origin":"source"},"minSize":7,"maxSize":25,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"labelText":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"labelSize":{"type":"DYNAMIC","options":{"field":{"name":"doc_count","origin":"source"},"minSize":12,"maxSize":24,"fieldMetaOptions":{"isEnabled":false,"sigma":3}}},"symbolizeAs":{"options":{"value":"circle"}},"icon":{"type":"STATIC","options":{"value":"marker"}}}},"type":"GEOJSON_VECTOR"}] - mapStateJSON: >- - {"zoom":3.64,"center":{"lon":-88.92107,"lat":42.16337},"timeFilters":{"from":"now-7d","to":"now"},"refreshConfig":{"isPaused":true,"interval":0},"query":{"language":"kuery","query":""},"settings":{"autoFitToDataBounds":false}} - title: '[Logs] Total Requests and Bytes' - uiStateJSON: '{"isDarkMode":false}' - coreMigrationVersion: 8.8.0 - created_at: '2023-08-23T20:03:32.204Z' - id: de71f4f0-1902-11e9-919b-ffe5949a18d2 - managed: false - references: - - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - name: layer_1_join_0_index_pattern - type: index-pattern - - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - name: layer_2_source_index_pattern - type: index-pattern - - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - name: layer_3_source_index_pattern - type: index-pattern - type: map - typeMigrationVersion: 8.4.0 - updated_at: '2023-08-23T20:03:32.204Z' - version: WzEzLDFd - Saved_objects_import_objects_request: - value: - file: file.ndjson - Saved_objects_import_objects_response: - summary: >- - The import objects API response indicates a successful import and the - objects are created. Since these objects are created as new copies, each - entry in the successResults array includes a destinationId attribute. - value: - successCount: 1 - success: true - successResults: - - type: index-pattern - id: 90943e30-9a47-11e8-b64d-95841ca0b247 - meta: - title: Kibana Sample Data Logs - icon: indexPatternApp - managed: false - destinationId: 82d2760c-468f-49cf-83aa-b9a35b6a8943 - Saved_objects_resolve_missing_reference_request: - value: - file: file.ndjson - retries: - - type: index-pattern - id: my-pattern - overwrite: true - - type: visualization - id: my-vis - overwrite: true - destinationId: another-vis - - type: canvas - id: my-canvas - overwrite: true - destinationId: yet-another-canvas - - type: dashboard - id: my-dashboard - Saved_objects_resolve_missing_reference_response: - summary: Resolve missing reference errors. - value: - success: true - successCount: 3 - successResults: - - id: my-vis - type: visualization - meta: - icon: visualizeApp - title: Look at my visualization - - id: my-search - type: search - meta: - icon: searchApp - title: Look at my search - - id: my-dashboard - type: dashboard - meta: - icon: dashboardApp - title: Look at my dashboard - responses: - Connectors_401: - description: Authorization information is missing or invalid. - content: - application/json: - schema: - type: object - title: Unauthorized response - properties: - error: - type: string - example: Unauthorized - enum: - - Unauthorized - message: - type: string - statusCode: - type: integer - example: 401 - enum: - - 401 - Connectors_404: - description: Object is not found. - content: - application/json: - schema: + build_hash: + description: >- + A unique hash value representing the git commit of this Kibana + build. + type: string + build_number: + description: >- + A monotonically increasing number, each subsequent build will + have a higher number. + type: number + build_snapshot: + description: Whether this build is a snapshot build. + type: boolean + number: + description: A semantic version number. + type: string + required: + - number + - build_hash + - build_number + - build_snapshot + - build_flavor + - build_date + required: + - name + - uuid + - version + - status + - metrics + Machine_learning_APIs_mlSync200Response: + properties: + datafeedsAdded: + additionalProperties: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseDatafeeds' + description: >- + If a saved object for an anomaly detection job is missing a datafeed + identifier, it is added when you run the sync machine learning saved + objects API. + type: object + datafeedsRemoved: + additionalProperties: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseDatafeeds' + description: >- + If a saved object for an anomaly detection job references a datafeed + that no longer exists, it is deleted when you run the sync machine + learning saved objects API. + type: object + savedObjectsCreated: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseSavedObjectsCreated + savedObjectsDeleted: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseSavedObjectsDeleted + title: Successful sync API response + type: object + Machine_learning_APIs_mlSync4xxResponse: + properties: + error: + example: Unauthorized + type: string + message: + type: string + statusCode: + example: 401 + type: integer + title: Unsuccessful sync API response + type: object + Machine_learning_APIs_mlSyncResponseAnomalyDetectors: + description: >- + The sync machine learning saved objects API response contains this + object when there are anomaly detection jobs affected by the + synchronization. There is an object for each relevant job, which + contains the synchronization status. + properties: + success: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' + title: Sync API response for anomaly detection jobs + type: object + Machine_learning_APIs_mlSyncResponseDatafeeds: + description: >- + The sync machine learning saved objects API response contains this + object when there are datafeeds affected by the synchronization. There + is an object for each relevant datafeed, which contains the + synchronization status. + properties: + success: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' + title: Sync API response for datafeeds + type: object + Machine_learning_APIs_mlSyncResponseDataFrameAnalytics: + description: >- + The sync machine learning saved objects API response contains this + object when there are data frame analytics jobs affected by the + synchronization. There is an object for each relevant job, which + contains the synchronization status. + properties: + success: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' + title: Sync API response for data frame analytics jobs + type: object + Machine_learning_APIs_mlSyncResponseSavedObjectsCreated: + description: >- + If saved objects are missing for machine learning jobs or trained + models, they are created when you run the sync machine learning saved + objects API. + properties: + anomaly-detector: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseAnomalyDetectors + description: >- + If saved objects are missing for anomaly detection jobs, they are + created. + type: object + data-frame-analytics: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseDataFrameAnalytics + description: >- + If saved objects are missing for data frame analytics jobs, they are + created. + type: object + trained-model: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseTrainedModels + description: 'If saved objects are missing for trained models, they are created.' + type: object + title: Sync API response for created saved objects + type: object + Machine_learning_APIs_mlSyncResponseSavedObjectsDeleted: + description: >- + If saved objects exist for machine learning jobs or trained models that + no longer exist, they are deleted when you run the sync machine learning + saved objects API. + properties: + anomaly-detector: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseAnomalyDetectors + description: >- + If there are saved objects exist for nonexistent anomaly detection + jobs, they are deleted. + type: object + data-frame-analytics: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseDataFrameAnalytics + description: >- + If there are saved objects exist for nonexistent data frame + analytics jobs, they are deleted. + type: object + trained-model: + additionalProperties: + $ref: >- + #/components/schemas/Machine_learning_APIs_mlSyncResponseTrainedModels + description: >- + If there are saved objects exist for nonexistent trained models, + they are deleted. + type: object + title: Sync API response for deleted saved objects + type: object + Machine_learning_APIs_mlSyncResponseSuccess: + description: The success or failure of the synchronization. + type: boolean + Machine_learning_APIs_mlSyncResponseTrainedModels: + description: >- + The sync machine learning saved objects API response contains this + object when there are trained models affected by the synchronization. + There is an object for each relevant trained model, which contains the + synchronization status. + properties: + success: + $ref: '#/components/schemas/Machine_learning_APIs_mlSyncResponseSuccess' + title: Sync API response for trained models + type: object + Saved_objects_400_response: + title: Bad request + type: object + properties: + error: + enum: + - Bad Request + type: string + message: + type: string + statusCode: + enum: + - 400 + type: integer + required: + - error + - message + - statusCode + Saved_objects_attributes: + description: > + The data that you want to create. WARNING: When you create saved + objects, attributes are not validated, which allows you to pass + arbitrary and ill-formed data into the API that can break Kibana. Make + sure any data that you send to the API is properly formed. + type: object + Saved_objects_initial_namespaces: + description: > + Identifiers for the spaces in which this object is created. If this is + provided, the object is created only in the explicitly defined spaces. + If this is not provided, the object is created in the current space + (default behavior). For shareable object types (registered with + `namespaceType: 'multiple'`), this option can be used to specify one or + more spaces, including the "All spaces" identifier ('*'). For isolated + object types (registered with `namespaceType: 'single'` or + `namespaceType: 'multiple-isolated'`), this option can only be used to + specify a single space, and the "All spaces" identifier ('*') is not + allowed. For global object types (`registered with `namespaceType: + agnostic`), this option cannot be used. + type: array + Saved_objects_references: + description: > + Objects with `name`, `id`, and `type` properties that describe the other + saved objects that this object references. Use `name` in attributes to + refer to the other saved object, but never the `id`, which can update + automatically during migrations or import and export. + type: array + SLOs_400_response: + title: Bad request + type: object + properties: + error: + example: Bad Request + type: string + message: + example: 'Invalid value ''foo'' supplied to: [...]' + type: string + statusCode: + example: 400 + type: number + required: + - statusCode + - error + - message + SLOs_401_response: + title: Unauthorized + type: object + properties: + error: + example: Unauthorized + type: string + message: + example: "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]" + type: string + statusCode: + example: 401 + type: number + required: + - statusCode + - error + - message + SLOs_403_response: + title: Unauthorized + type: object + properties: + error: + example: Unauthorized + type: string + message: + example: "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]" + type: string + statusCode: + example: 403 + type: number + required: + - statusCode + - error + - message + SLOs_404_response: + title: Not found + type: object + properties: + error: + example: Not Found + type: string + message: + example: 'SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found' + type: string + statusCode: + example: 404 + type: number + required: + - statusCode + - error + - message + SLOs_409_response: + title: Conflict + type: object + properties: + error: + example: Conflict + type: string + message: + example: 'SLO [d077e940-1515-11ee-9c50-9d096392f520] already exists' + type: string + statusCode: + example: 409 + type: number + required: + - statusCode + - error + - message + SLOs_budgeting_method: + description: The budgeting method to use when computing the rollup data. + enum: + - occurrences + - timeslices + example: occurrences + title: Budgeting method + type: string + SLOs_create_slo_request: + description: > + The create SLO API request body varies depending on the type of + indicator, time window and budgeting method. + properties: + budgetingMethod: + $ref: '#/components/schemas/SLOs_budgeting_method' + description: + description: A description for the SLO. + type: string + groupBy: + description: optional group by field to use to generate an SLO per distinct value + example: some.field + type: string + id: + description: >- + A optional and unique identifier for the SLO. Must be between 8 and + 36 chars + example: my-super-slo-id + type: string + indicator: + oneOf: + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' + - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' + - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + name: + description: A name for the SLO. + type: string + objective: + $ref: '#/components/schemas/SLOs_objective' + settings: + $ref: '#/components/schemas/SLOs_settings' + tags: + description: List of tags + items: + type: string + type: array + timeWindow: + $ref: '#/components/schemas/SLOs_time_window' + required: + - name + - description + - indicator + - timeWindow + - budgetingMethod + - objective + title: Create SLO request + type: object + SLOs_create_slo_response: + title: Create SLO response + type: object + properties: + id: + example: 8853df00-ae2e-11ed-90af-09bb6422b258 + type: string + required: + - id + SLOs_delete_slo_instances_request: + description: > + The delete SLO instances request takes a list of SLO id and instance id, + then delete the rollup and summary data. This API can be used to remove + the staled data of an instance SLO that no longer get updated. + properties: + list: + description: An array of slo id and instance id + items: type: object - title: Not found response properties: - error: + instanceId: + description: The SLO instance identifier + example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string - example: Not Found - enum: - - Not Found - message: + sloId: + description: The SLO unique identifier + example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string - example: >- - Saved object [action/baf33fc0-920c-11ed-b36a-874bd1548a00] not - found - statusCode: - type: integer - example: 404 - enum: - - 404 - Connectors_200_actions: - description: Indicates a successful call. - content: - application/json: - schema: - $ref: '#/components/schemas/Connectors_action_response_properties' + required: + - sloId + - instanceId + type: array + required: + - list + title: Delete SLO instances request + type: object + SLOs_error_budget: + title: Error budget + type: object + properties: + consumed: + description: 'The error budget consummed, as a percentage of the initial value.' + example: 0.8 + type: number + initial: + description: 'The initial error budget, as 1 - objective' + example: 0.02 + type: number + isEstimated: + description: >- + Only for SLO defined with occurrences budgeting method and calendar + aligned time window. + example: true + type: boolean + remaining: + description: 'The error budget remaining, as a percentage of the initial value.' + example: 0.2 + type: number + required: + - initial + - consumed + - remaining + - isEstimated + SLOs_filter: + description: Defines properties for a filter + properties: + meta: + $ref: '#/components/schemas/SLOs_filter_meta' + query: + type: object + title: Filter + type: object + SLOs_filter_meta: + description: Defines properties for a filter + properties: + alias: + nullable: true + type: string + controlledBy: + type: string + disabled: + type: boolean + field: + type: string + group: + type: string + index: + type: string + isMultiIndex: + type: boolean + key: + type: string + negate: + type: boolean + params: + type: object + type: + type: string + value: + type: string + title: FilterMeta + type: object + SLOs_find_slo_response: + description: | + A paginated response of SLOs matching the query. + properties: + page: + example: 1 + type: number + perPage: + example: 25 + type: number + results: + items: + $ref: '#/components/schemas/SLOs_slo_with_summary_response' + type: array + total: + example: 34 + type: number + title: Find SLO response + type: object + SLOs_indicator_properties_apm_availability: + description: Defines properties for the APM availability indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + environment: + description: The APM service environment or "*" + example: production + type: string + filter: + description: KQL query used for filtering the data + example: 'service.foo : "bar"' + type: string + index: + description: The index used by APM metrics + example: 'metrics-apm*,apm*' + type: string + service: + description: The APM service name + example: o11y-app + type: string + transactionName: + description: The APM transaction name or "*" + example: GET /my/api + type: string + transactionType: + description: The APM transaction type or "*" + example: request + type: string + required: + - service + - environment + - transactionType + - transactionName + - index + type: + description: The type of indicator. + example: sli.apm.transactionDuration + type: string + required: + - type + - params + title: APM availability + SLOs_indicator_properties_apm_latency: + description: Defines properties for the APM latency indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + environment: + description: The APM service environment or "*" + example: production + type: string + filter: + description: KQL query used for filtering the data + example: 'service.foo : "bar"' + type: string + index: + description: The index used by APM metrics + example: 'metrics-apm*,apm*' + type: string + service: + description: The APM service name + example: o11y-app + type: string + threshold: + description: The latency threshold in milliseconds + example: 250 + type: number + transactionName: + description: The APM transaction name or "*" + example: GET /my/api + type: string + transactionType: + description: The APM transaction type or "*" + example: request + type: string + required: + - service + - environment + - transactionType + - transactionName + - index + - threshold + type: + description: The type of indicator. + example: sli.apm.transactionDuration + type: string + required: + - type + - params + title: APM latency + SLOs_indicator_properties_custom_kql: + description: Defines properties for a custom query indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + dataViewId: + description: >- + The kibana data view id to use, primarily used to include data + view runtime mappings. Make sure to save SLO again if you + add/update run time fields to the data view and if those fields + are being used in slo queries. + example: 03b80ab3-003d-498b-881c-3beedbaf1162 + type: string + filter: + $ref: '#/components/schemas/SLOs_kql_with_filters' + good: + $ref: '#/components/schemas/SLOs_kql_with_filters_good' + index: + description: The index or index pattern to use + example: my-service-* + type: string + timestampField: + description: | + The timestamp field used in the source indice. + example: timestamp + type: string + total: + $ref: '#/components/schemas/SLOs_kql_with_filters_total' + required: + - index + - timestampField + - good + - total + type: + description: The type of indicator. + example: sli.kql.custom + type: string + required: + - type + - params + title: Custom Query + SLOs_indicator_properties_custom_metric: + description: Defines properties for a custom metric indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + dataViewId: + description: >- + The kibana data view id to use, primarily used to include data + view runtime mappings. Make sure to save SLO again if you + add/update run time fields to the data view and if those fields + are being used in slo queries. + example: 03b80ab3-003d-498b-881c-3beedbaf1162 + type: string + filter: + description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' + type: string + good: + description: | + An object defining the "good" metrics and equation + type: object + properties: + equation: + description: The equation to calculate the "good" metric. + example: A + type: string + metrics: + description: >- + List of metrics with their name, aggregation type, and + field. + items: + type: object + properties: + aggregation: + description: >- + The aggregation type of the metric. Only valid option + is "sum" + enum: + - sum + example: sum + type: string + field: + description: The field of the metric. + example: processor.processed + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: "success"' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + required: + - name + - aggregation + - field + type: array + required: + - metrics + - equation + index: + description: The index or index pattern to use + example: my-service-* + type: string + timestampField: + description: | + The timestamp field used in the source indice. + example: timestamp + type: string + total: + description: | + An object defining the "total" metrics and equation + type: object + properties: + equation: + description: The equation to calculate the "total" metric. + example: A + type: string + metrics: + description: >- + List of metrics with their name, aggregation type, and + field. + items: + type: object + properties: + aggregation: + description: >- + The aggregation type of the metric. Only valid option + is "sum" + enum: + - sum + example: sum + type: string + field: + description: The field of the metric. + example: processor.processed + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: *' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + required: + - name + - aggregation + - field + type: array + required: + - metrics + - equation + required: + - index + - timestampField + - good + - total + type: + description: The type of indicator. + example: sli.metric.custom + type: string + required: + - type + - params + title: Custom metric + SLOs_indicator_properties_histogram: + description: Defines properties for a histogram indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + dataViewId: + description: >- + The kibana data view id to use, primarily used to include data + view runtime mappings. Make sure to save SLO again if you + add/update run time fields to the data view and if those fields + are being used in slo queries. + example: 03b80ab3-003d-498b-881c-3beedbaf1162 + type: string + filter: + description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' + type: string + good: + description: | + An object defining the "good" events + type: object + properties: + aggregation: + description: The type of aggregation to use. + enum: + - value_count + - range + example: value_count + type: string + field: + description: The field use to aggregate the good events. + example: processor.latency + type: string + filter: + description: The filter for good events. + example: 'processor.outcome: "success"' + type: string + from: + description: >- + The starting value of the range. Only required for "range" + aggregations. + example: 0 + type: number + to: + description: >- + The ending value of the range. Only required for "range" + aggregations. + example: 100 + type: number + required: + - aggregation + - field + index: + description: The index or index pattern to use + example: my-service-* + type: string + timestampField: + description: | + The timestamp field used in the source indice. + example: timestamp + type: string + total: + description: | + An object defining the "total" events + type: object + properties: + aggregation: + description: The type of aggregation to use. + enum: + - value_count + - range + example: value_count + type: string + field: + description: The field use to aggregate the good events. + example: processor.latency + type: string + filter: + description: The filter for total events. + example: 'processor.outcome : *' + type: string + from: + description: >- + The starting value of the range. Only required for "range" + aggregations. + example: 0 + type: number + to: + description: >- + The ending value of the range. Only required for "range" + aggregations. + example: 100 + type: number + required: + - aggregation + - field + required: + - index + - timestampField + - good + - total + type: + description: The type of indicator. + example: sli.histogram.custom + type: string + required: + - type + - params + title: Histogram indicator + SLOs_indicator_properties_timeslice_metric: + description: Defines properties for a timeslice metric indicator type + type: object + properties: + params: + description: An object containing the indicator parameters. + nullable: false + type: object + properties: + dataViewId: + description: >- + The kibana data view id to use, primarily used to include data + view runtime mappings. Make sure to save SLO again if you + add/update run time fields to the data view and if those fields + are being used in slo queries. + example: 03b80ab3-003d-498b-881c-3beedbaf1162 + type: string + filter: + description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' + type: string + index: + description: The index or index pattern to use + example: my-service-* + type: string + metric: + description: > + An object defining the metrics, equation, and threshold to + determine if it's a good slice or not + type: object + properties: + comparator: + description: >- + The comparator to use to compare the equation to the + threshold. + enum: + - GT + - GTE + - LT + - LTE + example: GT + type: string + equation: + description: The equation to calculate the metric. + example: A + type: string + metrics: + description: >- + List of metrics with their name, aggregation type, and + field. + items: + anyOf: + - $ref: >- + #/components/schemas/SLOs_timeslice_metric_basic_metric_with_field + - $ref: >- + #/components/schemas/SLOs_timeslice_metric_percentile_metric + - $ref: >- + #/components/schemas/SLOs_timeslice_metric_doc_count_metric + type: array + threshold: + description: >- + The threshold used to determine if the metric is a good + slice or not. + example: 100 + type: number + required: + - metrics + - equation + - comparator + - threshold + timestampField: + description: | + The timestamp field used in the source indice. + example: timestamp + type: string + required: + - index + - timestampField + - metric + type: + description: The type of indicator. + example: sli.metric.timeslice + type: string + required: + - type + - params + title: Timeslice metric + SLOs_kql_with_filters: + description: Defines properties for a filter + oneOf: + - description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' + type: string + - type: object + properties: + filters: + items: + $ref: '#/components/schemas/SLOs_filter' + type: array + kqlQuery: + type: string + title: KQL with filters + SLOs_kql_with_filters_good: + description: The KQL query used to define the good events. + oneOf: + - description: the KQL query to filter the documents with. + example: 'request.latency <= 150 and request.status_code : "2xx"' + type: string + - type: object + properties: + filters: + items: + $ref: '#/components/schemas/SLOs_filter' + type: array + kqlQuery: + type: string + title: KQL query for good events + SLOs_kql_with_filters_total: + description: The KQL query used to define all events. + oneOf: + - description: the KQL query to filter the documents with. + example: 'field.environment : "production" and service.name : "my-service"' + type: string + - type: object + properties: + filters: + items: + $ref: '#/components/schemas/SLOs_filter' + type: array + kqlQuery: + type: string + title: KQL query for all events + SLOs_objective: + description: Defines properties for the SLO objective + type: object + properties: + target: + description: the target objective between 0 and 1 excluded + example: 0.99 + exclusiveMaximum: true + exclusiveMinimum: true + maximum: 100 + minimum: 0 + type: number + timesliceTarget: + description: >- + the target objective for each slice when using a timeslices + budgeting method + example: 0.995 + maximum: 100 + minimum: 0 + type: number + timesliceWindow: + description: >- + the duration of each slice when using a timeslices budgeting method, + as {duraton}{unit} + example: 5m + type: string + required: + - target + title: Objective + SLOs_settings: + description: Defines properties for SLO settings. + properties: + frequency: + default: 1m + description: 'Configure how often the transform runs, default 1m' + example: 5m + type: string + preventInitialBackfill: + default: false + description: Prevents the transform from backfilling data when it starts. + example: true + type: boolean + syncDelay: + default: 1m + description: The synch delay to apply to the transform. Default 1m + example: 5m + type: string + title: Settings + type: object + SLOs_slo_definition_response: + title: SLO definition response + type: object + properties: + budgetingMethod: + $ref: '#/components/schemas/SLOs_budgeting_method' + createdAt: + description: The creation date + example: '2023-01-12T10:03:19.000Z' + type: string + description: + description: The description of the SLO. + example: My SLO description + type: string + enabled: + description: Indicate if the SLO is enabled + example: true + type: boolean + groupBy: + description: optional group by field to use to generate an SLO per distinct value + example: some.field + type: string + id: + description: The identifier of the SLO. + example: 8853df00-ae2e-11ed-90af-09bb6422b258 + type: string + indicator: + discriminator: + mapping: + sli.apm.transactionDuration: '#/components/schemas/SLOs_indicator_properties_apm_latency' + sli.apm.transactionErrorRate: '#/components/schemas/SLOs_indicator_properties_apm_availability' + sli.histogram.custom: '#/components/schemas/SLOs_indicator_properties_histogram' + sli.kql.custom: '#/components/schemas/SLOs_indicator_properties_custom_kql' + sli.metric.custom: '#/components/schemas/SLOs_indicator_properties_custom_metric' + sli.metric.timeslice: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + propertyName: type + oneOf: + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' + - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' + - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + name: + description: The name of the SLO. + example: My Service SLO + type: string + objective: + $ref: '#/components/schemas/SLOs_objective' + revision: + description: The SLO revision + example: 2 + type: number + settings: + $ref: '#/components/schemas/SLOs_settings' + tags: + description: List of tags + items: + type: string + type: array + timeWindow: + $ref: '#/components/schemas/SLOs_time_window' + updatedAt: + description: The last update date + example: '2023-01-12T10:03:19.000Z' + type: string + version: + description: The internal SLO version + example: 2 + type: number + required: + - id + - name + - description + - indicator + - timeWindow + - budgetingMethod + - objective + - settings + - revision + - enabled + - groupBy + - tags + - createdAt + - updatedAt + - version + SLOs_slo_with_summary_response: + title: SLO response + type: object + properties: + budgetingMethod: + $ref: '#/components/schemas/SLOs_budgeting_method' + createdAt: + description: The creation date + example: '2023-01-12T10:03:19.000Z' + type: string + description: + description: The description of the SLO. + example: My SLO description + type: string + enabled: + description: Indicate if the SLO is enabled + example: true + type: boolean + groupBy: + description: optional group by field to use to generate an SLO per distinct value + example: some.field + type: string + id: + description: The identifier of the SLO. + example: 8853df00-ae2e-11ed-90af-09bb6422b258 + type: string + indicator: + discriminator: + mapping: + sli.apm.transactionDuration: '#/components/schemas/SLOs_indicator_properties_apm_latency' + sli.apm.transactionErrorRate: '#/components/schemas/SLOs_indicator_properties_apm_availability' + sli.histogram.custom: '#/components/schemas/SLOs_indicator_properties_histogram' + sli.kql.custom: '#/components/schemas/SLOs_indicator_properties_custom_kql' + sli.metric.custom: '#/components/schemas/SLOs_indicator_properties_custom_metric' + sli.metric.timeslice: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + propertyName: type + oneOf: + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' + - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' + - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + instanceId: + description: 'the value derived from the groupBy field, if present, otherwise ''*''' + example: host-abcde + type: string + name: + description: The name of the SLO. + example: My Service SLO + type: string + objective: + $ref: '#/components/schemas/SLOs_objective' + revision: + description: The SLO revision + example: 2 + type: number + settings: + $ref: '#/components/schemas/SLOs_settings' + summary: + $ref: '#/components/schemas/SLOs_summary' + tags: + description: List of tags + items: + type: string + type: array + timeWindow: + $ref: '#/components/schemas/SLOs_time_window' + updatedAt: + description: The last update date + example: '2023-01-12T10:03:19.000Z' + type: string + version: + description: The internal SLO version + example: 2 + type: number + required: + - id + - name + - description + - indicator + - timeWindow + - budgetingMethod + - objective + - settings + - revision + - summary + - enabled + - groupBy + - instanceId + - tags + - createdAt + - updatedAt + - version + SLOs_summary: + description: The SLO computed data + properties: + errorBudget: + $ref: '#/components/schemas/SLOs_error_budget' + sliValue: + example: 0.9836 + type: number + status: + $ref: '#/components/schemas/SLOs_summary_status' + required: + - status + - sliValue + - errorBudget + title: Summary + type: object + SLOs_summary_status: + enum: + - NO_DATA + - HEALTHY + - DEGRADING + - VIOLATED + example: HEALTHY + title: summary status + type: string + SLOs_time_window: + description: Defines properties for the SLO time window + type: object + properties: + duration: + description: >- + the duration formatted as {duration}{unit}. Accepted values for + rolling: 7d, 30d, 90d. Accepted values for calendar aligned: 1w + (weekly) or 1M (monthly) + example: 30d + type: string + type: + description: >- + Indicates weither the time window is a rolling or a calendar aligned + time window. + enum: + - rolling + - calendarAligned + example: rolling + type: string + required: + - duration + - type + title: Time window + SLOs_timeslice_metric_basic_metric_with_field: + type: object + properties: + aggregation: + description: The aggregation type of the metric. + enum: + - sum + - avg + - min + - max + - std_deviation + - last_value + - cardinality + example: sum + type: string + field: + description: The field of the metric. + example: processor.processed + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: "success"' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + required: + - name + - aggregation + - field + title: Timeslice Metric Basic Metric with Field + SLOs_timeslice_metric_doc_count_metric: + type: object + properties: + aggregation: + description: The aggregation type of the metric. Only valid option is "doc_count" + enum: + - doc_count + example: doc_count + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: "success"' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + required: + - name + - aggregation + title: Timeslice Metric Doc Count Metric + SLOs_timeslice_metric_percentile_metric: + type: object + properties: + aggregation: + description: >- + The aggregation type of the metric. Only valid option is + "percentile" + enum: + - percentile + example: percentile + type: string + field: + description: The field of the metric. + example: processor.processed + type: string + filter: + description: The filter to apply to the metric. + example: 'processor.outcome: "success"' + type: string + name: + description: The name of the metric. Only valid options are A-Z + example: A + pattern: '^[A-Z]$' + type: string + percentile: + description: The percentile value. + example: 95 + type: number + required: + - name + - aggregation + - field + - percentile + title: Timeslice Metric Percentile Metric + SLOs_update_slo_request: + description: > + The update SLO API request body varies depending on the type of + indicator, time window and budgeting method. Partial update is handled. + properties: + budgetingMethod: + $ref: '#/components/schemas/SLOs_budgeting_method' + description: + description: A description for the SLO. + type: string + indicator: + oneOf: + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' + - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' + - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' + - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' + - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' + name: + description: A name for the SLO. + type: string + objective: + $ref: '#/components/schemas/SLOs_objective' + settings: + $ref: '#/components/schemas/SLOs_settings' + tags: + description: List of tags + items: + type: string + type: array + timeWindow: + $ref: '#/components/schemas/SLOs_time_window' + title: Update SLO request + type: object securitySchemes: - Kibana_HTTP_APIs_apiKeyAuth: + apiKeyAuth: + description: > + These APIs use key-based authentication. You must create an API key and + use the encoded value in the request header. For example: + `Authorization: ApiKey base64AccessApiKey` in: header name: Authorization type: apiKey - Kibana_HTTP_APIs_basicAuth: + basicAuth: scheme: basic type: http -x-tagGroups: - - name: Alerting - tags: - - alerting - - name: APM UI - tags: - - APM agent keys - - APM annotations - - name: Cases - tags: - - cases - - name: Connectors - tags: - - connectors - - name: Data views - tags: - - data views - - name: Machine learning APIs - tags: - - ml - - name: Saved objects - tags: - - saved objects - - name: Kibana HTTP APIs - tags: - - system +security: + - apiKeyAuth: [] + - basicAuth: [] +tags: + - name: alerting + - description: > + Configure APM agent keys to authorize requests from APM agents to the APM + Server. + name: APM agent keys + - description: > + Annotate visualizations in the APM app with significant events. + Annotations enable you to easily see how events are impacting the + performance of your applications. + name: APM annotations + - description: Case APIs enable you to open and track issues. + name: cases + - description: Connector APIs enable you to create and manage connectors. + name: connectors + - name: Data streams + - description: >- + Data view APIs enable you to manage data views, formerly known as Kibana + index patterns. + name: data views + - name: Elastic Agent actions + - name: Elastic Agent binary download sources + - name: Elastic Agent policies + - name: Elastic Agent status + - name: Elastic Agents + - name: Elastic Package Manager (EPM) + - name: Fleet enrollment API keys + - name: Fleet internals + - name: Fleet Kubernetes + - name: Fleet outputs + - name: Fleet package policies + - name: Fleet proxies + - name: Fleet Server hosts + - name: Fleet service tokens + - name: Fleet uninstall tokens + - description: Machine learning + name: ml + - description: >- + Manage Kibana saved objects, including dashboards, visualizations, and + more. + name: saved objects + - description: 'SLO APIs enable you to define, manage and track service-level objectives' + name: slo + - name: system diff --git a/oas_docs/overlays/alerting.overlays.yaml b/oas_docs/overlays/alerting.overlays.yaml new file mode 100644 index 0000000000000..c4cc25b685783 --- /dev/null +++ b/oas_docs/overlays/alerting.overlays.yaml @@ -0,0 +1,150 @@ +# overlays.yaml +overlay: 1.0.0 +info: + title: Overlays for the alerting rule examples and parameters + version: 0.0.1 +actions: + # Add some alerting API examples + - target: "$.paths['/api/alerting/rule/{id}']['post']" + description: "Add examples to create rule API" + update: + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createEsQueryEsqlRuleRequest: + $ref: "../examples/create_es_query_esql_rule_request.yaml" + createEsQueryRuleRequest: + $ref: "../examples/create_es_query_rule_request.yaml" + createEsQueryKqlRuleRequest: + $ref: "../examples/create_es_query_kql_rule_request.yaml" + createIndexThresholdRuleRequest: + $ref: "../examples/create_index_threshold_rule_request.yaml" + createTrackingContainmentRuleRequest: + $ref: "../examples/create_tracking_containment_rule_request.yaml" + responses: + 200: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createEsQueryEsqlRuleResponse: + $ref: "../examples/create_es_query_esql_rule_response.yaml" + createEsQueryRuleResponse: + $ref: "../examples/create_es_query_rule_response.yaml" + createEsQueryKqlRuleResponse: + $ref: "../examples/create_es_query_kql_rule_response.yaml" + createIndexThresholdRuleResponse: + $ref: "../examples/create_index_threshold_rule_response.yaml" + createTrackingContainmentRuleResponse: + $ref: "../examples/create_tracking_containment_rule_response.yaml" + - target: "$.paths['/api/alerting/rule/{id}']['put']" + description: "Add examples to update rule API" + update: + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuleRequest: + $ref: '../examples/update_rule_request.yaml' + responses: + 200: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuleResponse: + $ref: '../examples/update_rule_response.yaml' + - target: "$.paths['/api/alerting/rules/_find']['get']" + description: "Add examples to find rules API" + update: + responses: + 200: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + findRulesResponse: + $ref: '../examples/find_rules_response.yaml' + findConditionalActionRulesResponse: + $ref: '../examples/find_rules_response_conditional_action.yaml' + # Fix some optional path parameters + - target: "$.paths['/api/alerting/rule/{id}']['post'].parameters[?(@.name=='id')]" + description: Remove optional indicator from path parameter + update: + required: true + # Remove the alerting rule parameters + - target: "$.paths['/api/alerting/rule/{id}']['post'].requestBody.content.*.schema.properties.params" + description: "Remove params type in create rule API" + remove: true + # Add some alerting rule parameters + - target: "$.paths['/api/alerting/rule/{id}']['post']" + description: "Add params to create rule API" + update: + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + properties: + params: + additionalProperties: {} + default: {} + description: The parameters for the rule. + anyOf: + # APM anomaly rule (apm.anomaly) + - $ref: '../../x-pack/plugins/observability_solution/apm/server/routes/alerts/rule_types/docs/params_property_apm_anomaly.yaml' + # APM error count rule (apm.error_rate) + - $ref: '../../x-pack/plugins/observability_solution/apm/server/routes/alerts/rule_types/docs/params_property_apm_error_count.yaml' + # APM transaction duration rule (apm.transaction_duration) + - $ref: '../../x-pack/plugins/observability_solution/apm/server/routes/alerts/rule_types/docs/params_property_apm_transaction_duration.yaml' + # APM transaction error rate rule (apm.transaction_error_rate) + - $ref: '../../x-pack/plugins/observability_solution/apm/server/routes/alerts/rule_types/docs/params_property_apm_transaction_error_rate.yaml' + # Elasticsearch DSL query rule (.es-query) + - $ref: '../../x-pack/plugins/alerting/docs/openapi/components/schemas/params_es_query_dsl_rule.yaml' + # Elasticsearch ES|QL query rule (.es-query) + - $ref: '../../x-pack/plugins/alerting/docs/openapi/components/schemas/params_es_query_esql_rule.yaml' + # Elasticsearch KQL query rule (.es-query) + - $ref: '../../x-pack/plugins/alerting/docs/openapi/components/schemas/params_es_query_kql_rule.yaml' + # Index threshold rule () + - $ref: '../../x-pack/plugins/alerting/docs/openapi/components/schemas/params_index_threshold_rule.yaml' + # Infra inventory rule (metrics.alert.inventory.threshold) + - $ref: '../../x-pack/plugins/observability_solution/infra/server/lib/alerting/docs/params_property_infra_inventory.yaml' + # Log threshold rule (logs.alert.document.count) + - $ref: '../../x-pack/plugins/observability_solution/infra/server/lib/alerting/docs/params_property_log_threshold.yaml' + # Infra metric threshold rule (metrics.alert.threshold) + - $ref: '../../x-pack/plugins/observability_solution/infra/server/lib/alerting/docs/params_property_infra_metric_threshold.yaml' + # SLO burn rate (slo.rules.burnRate) + - $ref: '../../x-pack/plugins/observability_solution/slo/server/lib/rules/slo_burn_rate/docs/params_property_slo_burn_rate.yaml' + # Synthetics uptime TLS rule (xpack.uptime.alerts.tls) + - $ref: '../../x-pack/plugins/observability_solution/uptime/server/legacy_uptime/lib/alerts/docs/params_property_synthetics_uptime_tls.yaml' + # Uptime monitor status rule (xpack.uptime.alerts.monitorStatus) + - $ref: '../../x-pack/plugins/observability_solution/uptime/server/legacy_uptime/lib/alerts/docs/params_property_synthetics_monitor_status.yaml' + # TBD + # Anomaly detection alert rule (xpack.ml.anomaly_detection_alert) + # Anomaly detection jobs health rule (xpack.ml.anomaly_detection_jobs_health) + # Tracking containment rule (.geo-containment) + # Infrastructure anomaly rule (metrics.alert.anomaly) + # CCR read exceptions rule (monitoring_ccr_read_exceptions) + # Cluster health rule (monitoring_alert_cluster_health) + # CPU usage rule (monitoring_alert_cpu_usage) + # Custom query rule (siem.queryRule) + # Disk usage rule (monitoring_alert_disk_usage) + # Elasticsearch version mismatch rule (monitoring_alert_elasticsearch_version_mismatch) + # Event correlation rule (siem.eqlRule) + # Indicator match rule (siem.indicatorRule) + # JVM memory usage rule (monitoring_alert_jvm_memory_usage) + # Kibana version mismatch rule ( monitoring_alert_kibana_version_mismatch) + # License expiration rule (monitoring_alert_license_expiration) + # Logstash version mismatch rule (monitoring_alert_logstash_version_mismatch) + # Machine learning rule (siem.mlRule) + # Missing monitoring data rule (monitoring_alert_missing_monitoring_data) + # New terms rule (siem.newTermsRule) + # Nodes changed rule (monitoring_alert_nodes_changed) + # Saved query rule (siem.savedQueryRule) + # Security solution notification (legacy) rule (siem.notifications) + # Shard size rule (monitoring_shard_size) + # Synthetics monitor status rule (xpack.synthetics.alerts.monitorStatus) + # Synthetics uptime duration anomaly rule (xpack.uptime.alerts.durationAnomaly) + # Thread pool search rejections rule (monitoring_alert_thread_pool_search_rejections) + # Thread pool write rejections rule (monitoring_alert_thread_pool_write_rejections) + # Threshold rule (siem.thresholdRule) + # TLS certificate rule (xpack.uptime.alerts.tlsCertificate) + # Transform health (transform_health) + \ No newline at end of file diff --git a/oas_docs/overlays/kibana.overlays.serverless.yaml b/oas_docs/overlays/kibana.overlays.serverless.yaml index 6ed2329c24dca..dc21647813180 100644 --- a/oas_docs/overlays/kibana.overlays.serverless.yaml +++ b/oas_docs/overlays/kibana.overlays.serverless.yaml @@ -15,30 +15,23 @@ actions: variables: kibana_url: default: localhost:5601 - # Remove operation-level security definitions - - target: "$.paths['/api/status']['get'].security" - description: Remove system security definitions - remove: true - # Add a document-level security definition - - target: '$.components.securitySchemes' - description: Add an API key security scheme - update: - apiKeyAuth: - in: header - name: Authorization - type: apiKey - description: You must create an API key and use the encoded value in the request header. To learn about creating keys, go to [API keys](https://www.elastic.co/docs/current/serverless/api-keys). - - target: '$' - description: Add document-level security. - update: - security: - - apiKeyAuth: [] # Mark all operations as beta - - target: '$.paths[*][*]' + - target: "$.paths[*]['get','put','post','delete','options','head','patch','trace']" description: Add x-beta update: x-beta: true # Add some tag descriptions and displayNames + - target: '$.tags[?(@.name=="alerting")]' + description: Change tag description and displayName + update: + description: > + Alerting enables you to define rules, which detect complex conditions within your data. + When a condition is met, the rule tracks it as an alert and runs the actions that are defined in the rule. + Actions typically involve the use of connectors to interact with Kibana services or third party integrations. + externalDocs: + description: Alerting documentation + url: https://www.elastic.co/docs/current/serverless/rules + x-displayName: "Alerting" - target: '$.tags[?(@.name=="connectors")]' description: Change tag description and displayName update: diff --git a/oas_docs/overlays/kibana.overlays.yaml b/oas_docs/overlays/kibana.overlays.yaml index 22162721c6867..926550ca085b7 100644 --- a/oas_docs/overlays/kibana.overlays.yaml +++ b/oas_docs/overlays/kibana.overlays.yaml @@ -4,42 +4,6 @@ info: title: Overlays for the Kibana API document version: 0.0.1 actions: - # Clean up server definitions - - target: '$.servers.*' - description: Remove all servers so we can add our own. - remove: true - - target: '$.servers' - description: Add server into the now empty server array. - update: - - url: https://{kibana_url} - variables: - kibana_url: - default: localhost:5601 - # Remove operation-level security definitions - - target: "$.paths['/api/status']['get'].security" - description: Remove system security definitions - remove: true - # Add document-level security definitions - - target: '$.components.securitySchemes' - description: Add an API key security scheme - update: - apiKeyAuth: - in: header - name: Authorization - type: apiKey - description: You must create an API key and use the encoded value in the request header. To learn about creating keys, go to [API keys](https://www.elastic.co/guide/en/kibana/current/api-keys.html). - - target: '$.components.securitySchemes' - description: Add an basic security scheme - update: - basicAuth: - type: http - scheme: basic - - target: '$' - description: Add document-level security. - update: - security: - - apiKeyAuth: [] - - basicAuth: [] # Add an introduction to spaces - target: '$' description: Add an extra page about spaces @@ -105,10 +69,10 @@ actions: description: Change displayName update: x-displayName: "Saved objects" - # - target: '$.tags[?(@.name=="slo")]' - # description: Change displayName - # update: - # x-displayName: "Service level objectives" + - target: '$.tags[?(@.name=="slo")]' + description: Change displayName + update: + x-displayName: "Service level objectives" - target: '$.tags[?(@.name=="system")]' description: Change displayName update: diff --git a/oas_docs/scripts/merge_ess_oas.js b/oas_docs/scripts/merge_ess_oas.js new file mode 100644 index 0000000000000..f54f7081889f4 --- /dev/null +++ b/oas_docs/scripts/merge_ess_oas.js @@ -0,0 +1,36 @@ +/* + * 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. + */ + +require('../../src/setup_node_env'); +const { merge } = require('@kbn/openapi-bundler'); +const { REPO_ROOT } = require('@kbn/repo-info'); + +(async () => { + await merge({ + sourceGlobs: [ + `${REPO_ROOT}/oas_docs/bundle.json`, + `${REPO_ROOT}/x-pack/plugins/actions/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/alerting/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/cases/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/src/plugins/data_views/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/ml/common/openapi/ml_apis.yaml`, + `${REPO_ROOT}/packages/core/saved-objects/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/fleet/common/openapi/bundled.yaml`, + + // Observability Solution + `${REPO_ROOT}/x-pack/plugins/observability_solution/apm/docs/openapi/apm.yaml`, + `${REPO_ROOT}/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml`, + + // Security solution + ], + outputFilePath: `${REPO_ROOT}/oas_docs/output/kibana.yaml`, + options: { + prototypeDocument: `${REPO_ROOT}/oas_docs/kibana.info.yaml`, + }, + }); +})(); diff --git a/oas_docs/scripts/merge_ess_oas_staging.js b/oas_docs/scripts/merge_ess_oas_staging.js new file mode 100644 index 0000000000000..72b2aae4a4eff --- /dev/null +++ b/oas_docs/scripts/merge_ess_oas_staging.js @@ -0,0 +1,42 @@ +/* + * 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. + */ + +require('../../src/setup_node_env'); +const { merge } = require('@kbn/openapi-bundler'); +const { REPO_ROOT } = require('@kbn/repo-info'); + +(async () => { + await merge({ + sourceGlobs: [ + `${REPO_ROOT}/oas_docs/bundle.json`, + `${REPO_ROOT}/x-pack/plugins/actions/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/alerting/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/cases/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/src/plugins/data_views/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/ml/common/openapi/ml_apis.yaml`, + `${REPO_ROOT}/packages/core/saved-objects/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/fleet/common/openapi/bundled.yaml`, + + // Observability Solution + `${REPO_ROOT}/x-pack/plugins/observability_solution/apm/docs/openapi/apm.yaml`, + `${REPO_ROOT}/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml`, + + // Security solution + `${REPO_ROOT}/x-pack/plugins/security_solution/docs/openapi/ess/*.schema.yaml`, + `${REPO_ROOT}/packages/kbn-securitysolution-lists-common/docs/openapi/ess/*.schema.yaml`, + `${REPO_ROOT}/packages/kbn-securitysolution-exceptions-common/docs/openapi/ess/*.schema.yaml`, + `${REPO_ROOT}/packages/kbn-securitysolution-endpoint-exceptions-common/docs/openapi/ess/*.schema.yaml`, + `${REPO_ROOT}/x-pack/packages/kbn-elastic-assistant-common/docs/openapi/ess/*.schema.yaml`, + `${REPO_ROOT}/x-pack/plugins/osquery/docs/openapi/ess/*.schema.yaml`, + ], + outputFilePath: `${REPO_ROOT}/oas_docs/output/kibana.staging.yaml`, + options: { + prototypeDocument: `${REPO_ROOT}/oas_docs/kibana.info.yaml`, + }, + }); +})(); diff --git a/oas_docs/scripts/merge_serverless_oas.js b/oas_docs/scripts/merge_serverless_oas.js new file mode 100644 index 0000000000000..67ae00522741e --- /dev/null +++ b/oas_docs/scripts/merge_serverless_oas.js @@ -0,0 +1,34 @@ +/* + * 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. + */ + +require('../../src/setup_node_env'); +const { merge } = require('@kbn/openapi-bundler'); +const { REPO_ROOT } = require('@kbn/repo-info'); + +(async () => { + await merge({ + sourceGlobs: [ + `${REPO_ROOT}/oas_docs/bundle.serverless.json`, + `${REPO_ROOT}/x-pack/plugins/actions/docs/openapi/bundled_serverless.yaml`, + `${REPO_ROOT}/src/plugins/data_views/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/ml/common/openapi/ml_apis_serverless.yaml`, + `${REPO_ROOT}/packages/core/saved-objects/docs/openapi/bundled_serverless.yaml`, + `${REPO_ROOT}/x-pack/plugins/fleet/common/openapi/bundled.yaml`, + + // Observability Solution + `${REPO_ROOT}/x-pack/plugins/observability_solution/apm/docs/openapi/apm.yaml`, + `${REPO_ROOT}/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml`, + + // Security solution + ], + outputFilePath: `${REPO_ROOT}/oas_docs/output/kibana.serverless.yaml`, + options: { + prototypeDocument: `${REPO_ROOT}/oas_docs/kibana.info.serverless.yaml`, + }, + }); +})(); diff --git a/oas_docs/scripts/merge_serverless_oas_staging.js b/oas_docs/scripts/merge_serverless_oas_staging.js new file mode 100644 index 0000000000000..ea932fc08f291 --- /dev/null +++ b/oas_docs/scripts/merge_serverless_oas_staging.js @@ -0,0 +1,40 @@ +/* + * 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. + */ + +require('../../src/setup_node_env'); +const { merge } = require('@kbn/openapi-bundler'); +const { REPO_ROOT } = require('@kbn/repo-info'); + +(async () => { + await merge({ + sourceGlobs: [ + `${REPO_ROOT}/oas_docs/bundle.serverless.json`, + `${REPO_ROOT}/x-pack/plugins/actions/docs/openapi/bundled_serverless.yaml`, + `${REPO_ROOT}/src/plugins/data_views/docs/openapi/bundled.yaml`, + `${REPO_ROOT}/x-pack/plugins/ml/common/openapi/ml_apis_serverless.yaml`, + `${REPO_ROOT}/packages/core/saved-objects/docs/openapi/bundled_serverless.yaml`, + `${REPO_ROOT}/x-pack/plugins/fleet/common/openapi/bundled.yaml`, + + // Observability Solution + `${REPO_ROOT}/x-pack/plugins/observability_solution/apm/docs/openapi/apm.yaml`, + `${REPO_ROOT}/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml`, + + // Security solution + `${REPO_ROOT}/x-pack/plugins/security_solution/docs/openapi/serverless/*.schema.yaml`, + `${REPO_ROOT}/packages/kbn-securitysolution-lists-common/docs/openapi/serverless/*.schema.yaml`, + `${REPO_ROOT}/packages/kbn-securitysolution-exceptions-common/docs/openapi/serverless/*.schema.yaml`, + `${REPO_ROOT}/packages/kbn-securitysolution-endpoint-exceptions-common/docs/openapi/serverless/*.schema.yaml`, + `${REPO_ROOT}/x-pack/packages/kbn-elastic-assistant-common/docs/openapi/serverless/*.schema.yaml`, + `${REPO_ROOT}/x-pack/plugins/osquery/docs/openapi/serverless/*.schema.yaml`, + ], + outputFilePath: `${REPO_ROOT}/oas_docs/output/kibana.serverless.staging.yaml`, + options: { + prototypeDocument: `${REPO_ROOT}/oas_docs/kibana.info.serverless.yaml`, + }, + }); +})(); diff --git a/package.json b/package.json index 2864dd7970bf6..95ad8e437e9d3 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "lint:es": "node scripts/eslint", "lint:style": "node scripts/stylelint", "makelogs": "node scripts/makelogs", + "quick-checks": "node scripts/quick_checks", "serverless": "node scripts/kibana --dev --serverless", "serverless-es": "node scripts/kibana --dev --serverless=es", "serverless-oblt": "node scripts/kibana --dev --serverless=oblt", @@ -108,18 +109,19 @@ "@elastic/apm-rum": "^5.16.1", "@elastic/apm-rum-core": "^5.21.0", "@elastic/apm-rum-react": "^2.0.3", - "@elastic/charts": "66.1.0", + "@elastic/charts": "66.1.1", "@elastic/datemath": "5.0.3", "@elastic/ebt": "1.0.0", "@elastic/ecs": "^8.11.1", - "@elastic/elasticsearch": "^8.14.0", + "@elastic/elasticsearch": "^8.15.0", "@elastic/ems-client": "8.5.3", - "@elastic/eui": "95.6.0", + "@elastic/eui": "95.7.0", "@elastic/filesaver": "1.1.2", "@elastic/node-crypto": "1.2.1", "@elastic/numeral": "^2.5.1", "@elastic/react-search-ui": "^1.20.2", "@elastic/react-search-ui-views": "^1.20.2", + "@elastic/request-converter": "^8.15.3", "@elastic/request-crypto": "2.0.2", "@elastic/search-ui": "^1.20.2", "@elastic/search-ui-app-search-connector": "^1.20.2", @@ -197,6 +199,7 @@ "@kbn/cases-api-integration-test-plugin": "link:x-pack/test/cases_api_integration/common/plugins/cases", "@kbn/cases-components": "link:packages/kbn-cases-components", "@kbn/cases-plugin": "link:x-pack/plugins/cases", + "@kbn/cbor": "link:packages/kbn-cbor", "@kbn/cell-actions": "link:packages/kbn-cell-actions", "@kbn/chart-expressions-common": "link:src/plugins/chart_expressions/common", "@kbn/chart-icons": "link:packages/kbn-chart-icons", @@ -210,6 +213,8 @@ "@kbn/cloud-integration-saml-provider-plugin": "link:x-pack/test/cloud_integration/plugins/saml_provider", "@kbn/cloud-links-plugin": "link:x-pack/plugins/cloud_integrations/cloud_links", "@kbn/cloud-plugin": "link:x-pack/plugins/cloud", + "@kbn/cloud-security-posture": "link:x-pack/packages/kbn-cloud-security-posture", + "@kbn/cloud-security-posture-common": "link:x-pack/packages/kbn-cloud-security-posture-common", "@kbn/cloud-security-posture-plugin": "link:x-pack/plugins/cloud_security_posture", "@kbn/code-editor": "link:packages/shared-ux/code_editor/impl", "@kbn/code-editor-mock": "link:packages/shared-ux/code_editor/mocks", @@ -219,7 +224,11 @@ "@kbn/config-schema": "link:packages/kbn-config-schema", "@kbn/console-plugin": "link:src/plugins/console", "@kbn/content-management-content-editor": "link:packages/content-management/content_editor", + "@kbn/content-management-content-insights-public": "link:packages/content-management/content_insights/content_insights_public", + "@kbn/content-management-content-insights-server": "link:packages/content-management/content_insights/content_insights_server", "@kbn/content-management-examples-plugin": "link:examples/content_management_examples", + "@kbn/content-management-favorites-public": "link:packages/content-management/favorites/favorites_public", + "@kbn/content-management-favorites-server": "link:packages/content-management/favorites/favorites_server", "@kbn/content-management-plugin": "link:src/plugins/content_management", "@kbn/content-management-tabbed-table-list-view": "link:packages/content-management/tabbed_table_list_view", "@kbn/content-management-table-list-view": "link:packages/content-management/table_list_view", @@ -454,6 +463,7 @@ "@kbn/enterprise-search-plugin": "link:x-pack/plugins/enterprise_search", "@kbn/entities-data-access-plugin": "link:x-pack/plugins/observability_solution/entities_data_access", "@kbn/entities-schema": "link:x-pack/packages/kbn-entities-schema", + "@kbn/entity-manager-fixture-plugin": "link:x-pack/test/api_integration/apis/entity_manager/fixture_plugin", "@kbn/entityManager-plugin": "link:x-pack/plugins/observability_solution/entity_manager", "@kbn/error-boundary-example-plugin": "link:examples/error_boundary", "@kbn/es-errors": "link:packages/kbn-es-errors", @@ -469,6 +479,7 @@ "@kbn/esql-utils": "link:packages/kbn-esql-utils", "@kbn/esql-validation-autocomplete": "link:packages/kbn-esql-validation-autocomplete", "@kbn/esql-validation-example-plugin": "link:examples/esql_validation_example", + "@kbn/eui-provider-dev-warning": "link:test/plugin_functional/plugins/eui_provider_dev_warning", "@kbn/event-annotation-common": "link:packages/kbn-event-annotation-common", "@kbn/event-annotation-components": "link:packages/kbn-event-annotation-components", "@kbn/event-annotation-listing-plugin": "link:src/plugins/event_annotation_listing", @@ -520,6 +531,8 @@ "@kbn/global-search-providers-plugin": "link:x-pack/plugins/global_search_providers", "@kbn/global-search-test-plugin": "link:x-pack/test/plugin_functional/plugins/global_search_test", "@kbn/graph-plugin": "link:x-pack/plugins/graph", + "@kbn/grid-example-plugin": "link:examples/grid_example", + "@kbn/grid-layout": "link:packages/kbn-grid-layout", "@kbn/grokdebugger-plugin": "link:x-pack/plugins/grokdebugger", "@kbn/grouping": "link:packages/kbn-grouping", "@kbn/guided-onboarding": "link:packages/kbn-guided-onboarding", @@ -527,6 +540,7 @@ "@kbn/guided-onboarding-plugin": "link:src/plugins/guided_onboarding", "@kbn/handlebars": "link:packages/kbn-handlebars", "@kbn/hapi-mocks": "link:packages/kbn-hapi-mocks", + "@kbn/hardening-plugin": "link:test/plugin_functional/plugins/hardening", "@kbn/health-gateway-server": "link:packages/kbn-health-gateway-server", "@kbn/hello-world-plugin": "link:examples/hello_world", "@kbn/home-plugin": "link:src/plugins/home", @@ -554,6 +568,7 @@ "@kbn/interpreter": "link:packages/kbn-interpreter", "@kbn/investigate-app-plugin": "link:x-pack/plugins/observability_solution/investigate_app", "@kbn/investigate-plugin": "link:x-pack/plugins/observability_solution/investigate", + "@kbn/investigation-shared": "link:packages/kbn-investigation-shared", "@kbn/io-ts-utils": "link:packages/kbn-io-ts-utils", "@kbn/ipynb": "link:packages/kbn-ipynb", "@kbn/json-schemas": "link:x-pack/packages/ml/json_schemas", @@ -738,13 +753,16 @@ "@kbn/screenshot-mode-plugin": "link:src/plugins/screenshot_mode", "@kbn/screenshotting-example-plugin": "link:x-pack/examples/screenshotting_example", "@kbn/screenshotting-plugin": "link:x-pack/plugins/screenshotting", + "@kbn/screenshotting-server": "link:packages/kbn-screenshotting-server", "@kbn/search-api-panels": "link:packages/kbn-search-api-panels", + "@kbn/search-assistant": "link:x-pack/plugins/search_assistant", "@kbn/search-connectors": "link:packages/kbn-search-connectors", "@kbn/search-connectors-plugin": "link:x-pack/plugins/search_connectors", "@kbn/search-errors": "link:packages/kbn-search-errors", "@kbn/search-examples-plugin": "link:examples/search_examples", "@kbn/search-homepage": "link:x-pack/plugins/search_homepage", "@kbn/search-index-documents": "link:packages/kbn-search-index-documents", + "@kbn/search-indices": "link:x-pack/plugins/search_indices", "@kbn/search-inference-endpoints": "link:x-pack/plugins/search_inference_endpoints", "@kbn/search-notebooks": "link:x-pack/plugins/search_notebooks", "@kbn/search-playground": "link:x-pack/plugins/search_playground", @@ -752,12 +770,15 @@ "@kbn/search-types": "link:packages/kbn-search-types", "@kbn/searchprofiler-plugin": "link:x-pack/plugins/searchprofiler", "@kbn/security-api-key-management": "link:x-pack/packages/security/api_key_management", + "@kbn/security-authorization-core": "link:x-pack/packages/security/authorization_core", "@kbn/security-form-components": "link:x-pack/packages/security/form_components", "@kbn/security-hardening": "link:packages/kbn-security-hardening", "@kbn/security-plugin": "link:x-pack/plugins/security", "@kbn/security-plugin-types-common": "link:x-pack/packages/security/plugin_types_common", "@kbn/security-plugin-types-public": "link:x-pack/packages/security/plugin_types_public", "@kbn/security-plugin-types-server": "link:x-pack/packages/security/plugin_types_server", + "@kbn/security-role-management-model": "link:x-pack/packages/security/role_management_model", + "@kbn/security-solution-common": "link:x-pack/packages/security-solution/common", "@kbn/security-solution-distribution-bar": "link:x-pack/packages/security-solution/distribution_bar", "@kbn/security-solution-ess": "link:x-pack/plugins/security_solution_ess", "@kbn/security-solution-features": "link:x-pack/packages/security-solution/features", @@ -769,6 +790,7 @@ "@kbn/security-solution-storybook-config": "link:x-pack/packages/security-solution/storybook/config", "@kbn/security-solution-upselling": "link:x-pack/packages/security-solution/upselling", "@kbn/security-test-endpoints-plugin": "link:x-pack/test/security_functional/plugins/test_endpoints", + "@kbn/security-ui-components": "link:x-pack/packages/security/ui_components", "@kbn/securitysolution-autocomplete": "link:packages/kbn-securitysolution-autocomplete", "@kbn/securitysolution-data-table": "link:x-pack/packages/security-solution/data_table", "@kbn/securitysolution-ecs": "link:packages/kbn-securitysolution-ecs", @@ -856,6 +878,7 @@ "@kbn/shared-ux-storybook-config": "link:packages/shared-ux/storybook/config", "@kbn/shared-ux-storybook-mock": "link:packages/shared-ux/storybook/mock", "@kbn/shared-ux-tabbed-modal": "link:packages/shared-ux/modal/tabbed", + "@kbn/shared-ux-table-persist": "link:packages/shared-ux/table_persist", "@kbn/shared-ux-utility": "link:packages/kbn-shared-ux-utility", "@kbn/slo-plugin": "link:x-pack/plugins/observability_solution/slo", "@kbn/slo-schema": "link:x-pack/packages/kbn-slo-schema", @@ -955,10 +978,10 @@ "@langchain/community": "0.2.18", "@langchain/core": "^0.2.18", "@langchain/google-genai": "^0.0.23", - "@langchain/langgraph": "^0.0.31", + "@langchain/langgraph": "0.0.34", "@langchain/openai": "^0.1.3", "@langtrase/trace-attributes": "^3.0.8", - "@launchdarkly/node-server-sdk": "^9.5.0", + "@launchdarkly/node-server-sdk": "^9.5.1", "@loaders.gl/core": "^3.4.7", "@loaders.gl/json": "^3.4.7", "@loaders.gl/shapefile": "^3.4.7", @@ -1006,17 +1029,17 @@ "archiver": "^5.3.1", "async": "^3.2.3", "aws4": "^1.12.0", - "axios": "^1.6.8", + "axios": "^1.7.4", "base64-js": "^1.3.1", "bitmap-sdf": "^1.0.3", "blurhash": "^2.0.1", + "borc": "3.0.0", "brace": "0.11.1", "brok": "^5.0.2", "byte-size": "^8.1.0", "cacheable-lookup": "6", "camelcase-keys": "7.0.2", "canvg": "^3.0.9", - "cbor-x": "^1.3.3", "chalk": "^4.1.0", "cheerio": "^1.0.0-rc.12", "chroma-js": "^2.1.0", @@ -1047,7 +1070,7 @@ "deepmerge": "^4.2.2", "del": "^6.1.0", "diff": "^5.1.0", - "elastic-apm-node": "^4.7.2", + "elastic-apm-node": "^4.7.3", "email-addresses": "^5.0.0", "eventsource-parser": "^1.1.1", "execa": "^5.1.1", @@ -1275,10 +1298,10 @@ "@frsource/cypress-plugin-visual-regression-diff": "^3.3.10", "@istanbuljs/nyc-config-typescript": "^1.0.2", "@istanbuljs/schema": "^0.1.2", - "@jest/console": "^29.6.1", - "@jest/reporters": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@kayahr/text-encoding": "^1.3.0", "@kbn/alerting-api-integration-helpers": "link:x-pack/test/alerting_api_integration/packages/helpers", "@kbn/ambient-common-types": "link:packages/kbn-ambient-common-types", @@ -1295,6 +1318,7 @@ "@kbn/bazel-runner": "link:packages/kbn-bazel-runner", "@kbn/capture-oas-snapshot-cli": "link:packages/kbn-capture-oas-snapshot-cli", "@kbn/check-mappings-update-cli": "link:packages/kbn-check-mappings-update-cli", + "@kbn/check-prod-native-modules-cli": "link:packages/kbn-check-prod-native-modules-cli", "@kbn/ci-stats-core": "link:packages/kbn-ci-stats-core", "@kbn/ci-stats-performance-metrics": "link:packages/kbn-ci-stats-performance-metrics", "@kbn/ci-stats-reporter": "link:packages/kbn-ci-stats-reporter", @@ -1573,7 +1597,7 @@ "@types/redux-actions": "^2.6.1", "@types/resolve": "^1.20.1", "@types/seedrandom": ">=2.0.0 <4.0.0", - "@types/selenium-webdriver": "^4.1.23", + "@types/selenium-webdriver": "^4.1.25", "@types/semver": "^7.5.8", "@types/set-value": "^2.0.0", "@types/sinon": "^7.0.13", @@ -1608,11 +1632,10 @@ "@wojtekmaj/enzyme-adapter-react-17": "^0.6.7", "@yarnpkg/lockfile": "^1.1.0", "aggregate-error": "^3.1.0", - "apidoc-markdown": "^7.3.2", "argsplit": "^1.0.5", "autoprefixer": "^10.4.7", - "axe-core": "^4.9.0", - "babel-jest": "^29.6.1", + "axe-core": "^4.10.0", + "babel-jest": "^29.7.0", "babel-loader": "^8.2.5", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", @@ -1625,7 +1648,7 @@ "buildkite-test-collector": "^1.7.0", "callsites": "^3.1.0", "chance": "1.0.18", - "chromedriver": "^126.0.3", + "chromedriver": "^127.0.3", "clean-webpack-plugin": "^3.0.0", "cli-progress": "^3.12.0", "cli-table3": "^0.6.1", @@ -1651,7 +1674,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-ban": "^1.6.0", "eslint-plugin-cypress": "^2.15.1", - "eslint-plugin-depend": "^0.9.0", + "eslint-plugin-depend": "^0.10.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-formatjs": "^4.12.2", "eslint-plugin-import": "^2.28.0", @@ -1666,14 +1689,15 @@ "eslint-plugin-react-perf": "^3.3.1", "eslint-traverse": "^1.0.0", "exit-hook": "^2.2.0", - "expect": "^29.6.1", + "expect": "^29.7.0", "expose-loader": "^0.7.5", + "express": "^4.19.2", "faker": "^5.1.0", "fetch-mock": "^7.3.9", "file-loader": "^4.2.0", "find-cypress-specs": "^1.41.4", "form-data": "^4.0.0", - "geckodriver": "^4.4.1", + "geckodriver": "^4.4.3", "gulp-brotli": "^3.0.0", "gulp-postcss": "^9.0.1", "gulp-terser": "^2.1.0", @@ -1684,16 +1708,16 @@ "http2-proxy": "^5.0.53", "http2-wrapper": "^2.2.1", "ignore": "^5.3.0", - "jest": "^29.6.1", + "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", - "jest-cli": "^29.6.1", - "jest-config": "^29.6.1", - "jest-diff": "^29.6.1", - "jest-environment-jsdom": "^29.6.1", - "jest-matcher-utils": "^29.6.1", - "jest-mock": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-snapshot": "^29.6.1", + "jest-cli": "^29.7.0", + "jest-config": "^29.7.0", + "jest-diff": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", "jest-specific-snapshot": "^8.0.0", "jest-styled-components": "7.0.3", "jsdom": "^20.0.1", @@ -1748,7 +1772,7 @@ "rxjs-marbles": "^7.0.1", "sass-embedded": "^1.77.8", "sass-loader": "^10.5.1", - "selenium-webdriver": "^4.22.0", + "selenium-webdriver": "^4.23.0", "sharp": "0.32.6", "simple-git": "^3.16.0", "sinon": "^7.4.2", @@ -1761,9 +1785,11 @@ "superagent": "^9.0.2", "supertest": "^7.0.0", "svgo": "^2.8.0", + "swagger-jsdoc": "^6.2.8", + "swagger-ui-express": "^5.0.1", "table": "^6.8.1", "tape": "^5.0.1", - "terser": "^5.31.3", + "terser": "^5.31.6", "terser-webpack-plugin": "^4.2.3", "tough-cookie": "^4.1.4", "tree-kill": "^1.2.2", diff --git a/packages/content-management/content_editor/src/components/activity_view.tsx b/packages/content-management/content_editor/src/components/activity_view.tsx deleted file mode 100644 index eb413acb20e36..0000000000000 --- a/packages/content-management/content_editor/src/components/activity_view.tsx +++ /dev/null @@ -1,185 +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 { - EuiFlexGroup, - EuiFlexItem, - EuiFormRow, - EuiIconTip, - EuiPanel, - EuiSpacer, - EuiText, -} from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import { FormattedMessage } from '@kbn/i18n-react'; -import React from 'react'; -import { - UserAvatarTip, - useUserProfile, - NoUpdaterTip, - NoCreatorTip, - ManagedAvatarTip, -} from '@kbn/content-management-user-profiles'; -import { getUserDisplayName } from '@kbn/user-profile-components'; - -import { Item } from '../types'; - -export interface ActivityViewProps { - item: Pick; -} - -export const ActivityView = ({ item }: ActivityViewProps) => { - const showLastUpdated = Boolean(item.updatedAt && item.updatedAt !== item.createdAt); - - const UnknownUserLabel = ( - - ); - - const ManagedUserLabel = ( - <> - {' '} - - - ); - - return ( - - {' '} - - } - /> - - } - fullWidth - data-test-subj={'activityView'} - > - <> - - - - ) : item.managed ? ( - <>{ManagedUserLabel} - ) : ( - <> - {UnknownUserLabel} - - - ) - } - when={item.createdAt} - data-test-subj={'createdByCard'} - /> - - - {showLastUpdated && ( - - ) : item.managed ? ( - <>{ManagedUserLabel} - ) : ( - <> - {UnknownUserLabel} - - - ) - } - when={item.updatedAt} - data-test-subj={'updatedByCard'} - /> - )} - - - - - ); -}; - -const dateFormatter = new Intl.DateTimeFormat(i18n.getLocale(), { - dateStyle: 'long', - timeStyle: 'short', -}); - -const ActivityCard = ({ - what, - when, - who, - 'data-test-subj': dataTestSubj, -}: { - what: string; - who: React.ReactNode; - when?: string; - 'data-test-subj'?: string; -}) => { - return ( - - - {what} - - - - {who} - - {when && ( - <> - - - - - - )} - - ); -}; - -const UserLabel = ({ uid }: { uid: string }) => { - const userQuery = useUserProfile(uid); - - if (!userQuery.data) return null; - - return ( - <> - {getUserDisplayName(userQuery.data.user)} - - ); -}; diff --git a/packages/content-management/content_editor/src/components/editor_flyout_content.tsx b/packages/content-management/content_editor/src/components/editor_flyout_content.tsx index a347dbb2c4d31..acc5f68d62b02 100644 --- a/packages/content-management/content_editor/src/components/editor_flyout_content.tsx +++ b/packages/content-management/content_editor/src/components/editor_flyout_content.tsx @@ -28,7 +28,6 @@ import type { Item } from '../types'; import { MetadataForm } from './metadata_form'; import { useMetadataForm } from './use_metadata_form'; import type { CustomValidators } from './use_metadata_form'; -import { ActivityView } from './activity_view'; const getI18nTexts = ({ entityName }: { entityName: string }) => ({ saveButtonLabel: i18n.translate('contentManagement.contentEditor.saveButtonLabel', { @@ -56,7 +55,7 @@ export interface Props { }) => Promise; customValidators?: CustomValidators; onCancel: () => void; - showActivityView?: boolean; + appendRows?: React.ReactNode; } const capitalize = (str: string) => `${str.charAt(0).toLocaleUpperCase()}${str.substring(1)}`; @@ -70,7 +69,7 @@ export const ContentEditorFlyoutContent: FC = ({ onSave, onCancel, customValidators, - showActivityView, + appendRows, }) => { const { euiTheme } = useEuiTheme(); const [isSubmitting, setIsSubmitting] = useState(false); @@ -151,7 +150,7 @@ export const ContentEditorFlyoutContent: FC = ({ TagList={TagList} TagSelector={TagSelector} > - {showActivityView && } + {appendRows} diff --git a/packages/content-management/content_editor/src/components/editor_flyout_content_container.tsx b/packages/content-management/content_editor/src/components/editor_flyout_content_container.tsx index 18094bc04f084..49359cd1801f2 100644 --- a/packages/content-management/content_editor/src/components/editor_flyout_content_container.tsx +++ b/packages/content-management/content_editor/src/components/editor_flyout_content_container.tsx @@ -21,7 +21,7 @@ type CommonProps = Pick< | 'onCancel' | 'entityName' | 'customValidators' - | 'showActivityView' + | 'appendRows' >; export type Props = CommonProps; diff --git a/packages/content-management/content_editor/src/components/editor_loader.tsx b/packages/content-management/content_editor/src/components/editor_loader.tsx index b15009f3b4db1..6bfe88fa2c12a 100644 --- a/packages/content-management/content_editor/src/components/editor_loader.tsx +++ b/packages/content-management/content_editor/src/components/editor_loader.tsx @@ -6,32 +6,30 @@ * Side Public License, v 1. */ -import React, { useState, useCallback, useEffect } from 'react'; -import { EuiFlyoutHeader, EuiFlyoutBody, EuiFlyoutFooter } from '@elastic/eui'; +import React from 'react'; +import { EuiFlyoutBody, EuiFlyoutFooter, EuiFlyoutHeader } from '@elastic/eui'; import type { Props } from './editor_flyout_content_container'; -export const ContentEditorLoader: React.FC = (props) => { - const [Editor, setEditor] = useState | null>(null); - - const loadEditor = useCallback(async () => { - const { ContentEditorFlyoutContentContainer } = await import( - './editor_flyout_content_container' - ); - setEditor(() => ContentEditorFlyoutContentContainer); - }, []); +const ContentEditorFlyoutContentContainer = React.lazy(() => + import('./editor_flyout_content_container').then( + ({ ContentEditorFlyoutContentContainer: _ContentEditorFlyoutContentContainer }) => ({ + default: _ContentEditorFlyoutContentContainer, + }) + ) +); - useEffect(() => { - // On mount: load the editor asynchronously - loadEditor(); - }, [loadEditor]); - - return Editor ? ( - - ) : ( - <> - - - - +export const ContentEditorLoader: React.FC = (props) => { + return ( + + + + + + } + > + + ); }; diff --git a/packages/content-management/content_editor/src/components/inspector_flyout_content.test.tsx b/packages/content-management/content_editor/src/components/inspector_flyout_content.test.tsx index c543acedbae5b..e4668d022d00d 100644 --- a/packages/content-management/content_editor/src/components/inspector_flyout_content.test.tsx +++ b/packages/content-management/content_editor/src/components/inspector_flyout_content.test.tsx @@ -262,22 +262,5 @@ describe('', () => { tags: ['id-3', 'id-4'], // New selection }); }); - - test('should render activity view', async () => { - await act(async () => { - testBed = await setup({ showActivityView: true }); - }); - const { find, component } = testBed!; - - expect(find('activityView').exists()).toBe(true); - expect(find('activityView.createdByCard').exists()).toBe(true); - expect(find('activityView.updatedByCard').exists()).toBe(false); - - testBed.setProps({ - item: { ...savedObjectItem, updatedAt: '2021-01-01T00:00:00Z' }, - }); - component.update(); - expect(find('activityView.updatedByCard').exists()).toBe(true); - }); }); }); diff --git a/packages/content-management/content_editor/src/open_content_editor.tsx b/packages/content-management/content_editor/src/open_content_editor.tsx index 89b73991ba5d6..2365aa9641e23 100644 --- a/packages/content-management/content_editor/src/open_content_editor.tsx +++ b/packages/content-management/content_editor/src/open_content_editor.tsx @@ -21,7 +21,7 @@ export type OpenContentEditorParams = Pick< | 'readonlyReason' | 'entityName' | 'customValidators' - | 'showActivityView' + | 'appendRows' >; export function useOpenContentEditor() { diff --git a/packages/content-management/content_editor/tsconfig.json b/packages/content-management/content_editor/tsconfig.json index b4f77e22f1f44..565535ec85b3e 100644 --- a/packages/content-management/content_editor/tsconfig.json +++ b/packages/content-management/content_editor/tsconfig.json @@ -30,7 +30,6 @@ "@kbn/test-jest-helpers", "@kbn/react-kibana-mount", "@kbn/content-management-user-profiles", - "@kbn/user-profile-components" ], "exclude": [ "target/**/*" diff --git a/packages/content-management/content_insights/README.mdx b/packages/content-management/content_insights/README.mdx new file mode 100644 index 0000000000000..a2a3894775a29 --- /dev/null +++ b/packages/content-management/content_insights/README.mdx @@ -0,0 +1,64 @@ +--- +id: sharedUX/ContentInsights +slug: /shared-ux/content-insights +title: Content Insights +description: A set of Content Management services and component to provide insights on the content of Kibana. +tags: ['shared-ux', 'component'] +date: 2024-08-06 +--- + +## Description + +The Content Insights is a set of Content Management services and components to provide insights on the content of Kibana. +Currently, it allows to track the usage of your content and display the stats of it. + +- The service can count the following events: + - `viewed` +- It provides the api for registering the routes to increase the count and to get the stats. +- It provides the client to increase the count and to get the stats. +- It provides a flyout and a component to display the stats as a total count and a weekly chart. +- Internally it uses the usage collection plugin to store and search the data. + +## API + +// server side + +```ts +import { registerContentInsights } from '@kbn/content-management-content-insights-server'; + +if (plugins.usageCollection) { + // Registers routes for tracking and fetching dashboard views + registerContentInsights( + { + usageCollection: plugins.usageCollection, + http: core.http, + getStartServices: () => + core.getStartServices().then(([_, start]) => ({ + usageCollection: start.usageCollection!, + })), + }, + { + domainId: 'dashboard', + // makes sure that only users with read/all access to dashboard app can access the routes + routeTags: ['access:dashboardUsageStats'], + } + ); +} +``` + +// client side + +```ts +import { ContentInsightsClient } from '@kbn/content-management-content-insights-public'; + +const contentInsightsClient = new ContentInsightsClient( + { http: params.coreStart.http }, + { domainId: 'dashboard' } +); + +contentInsightsClient.track(dashboardId, 'viewed'); + +// wrap component in `ContentInsightsProvider` and use the hook to open an insights flyout +const openInsightsFlyout = useOpenInsightsFlyout(); +openInsightsFlyout({ item }); +``` diff --git a/packages/content-management/content_insights/content_insights_public/README.md b/packages/content-management/content_insights/content_insights_public/README.md new file mode 100644 index 0000000000000..719e26238f12a --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/README.md @@ -0,0 +1,3 @@ +# @kbn/content-management-content-insights-public + +Refer to [README](../README.mdx) diff --git a/packages/content-management/content_insights/content_insights_public/index.ts b/packages/content-management/content_insights/content_insights_public/index.ts new file mode 100644 index 0000000000000..e1a0a67ec39bf --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/index.ts @@ -0,0 +1,21 @@ +/* + * 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 { + ContentInsightsProvider, + type ContentInsightsServices, + useServices as useContentInsightsServices, +} from './src/services'; + +export { + type ContentInsightsClientPublic, + ContentInsightsClient, + type ContentInsightsEventTypes, +} from './src/client'; + +export { ActivityView, ViewsStats, type ActivityViewProps } from './src/components'; diff --git a/packages/content-management/content_insights/content_insights_public/jest.config.js b/packages/content-management/content_insights/content_insights_public/jest.config.js new file mode 100644 index 0000000000000..b1844b25fcfca --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['/packages/content-management/content_insights/content_insights_public'], +}; diff --git a/packages/content-management/content_insights/content_insights_public/kibana.jsonc b/packages/content-management/content_insights/content_insights_public/kibana.jsonc new file mode 100644 index 0000000000000..fc4e12374faf9 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-browser", + "id": "@kbn/content-management-content-insights-public", + "owner": "@elastic/appex-sharedux" +} diff --git a/packages/content-management/content_insights/content_insights_public/package.json b/packages/content-management/content_insights/content_insights_public/package.json new file mode 100644 index 0000000000000..ca78ba0f1e39d --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/content-management-content-insights-public", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/content-management/content_insights/content_insights_public/src/client.ts b/packages/content-management/content_insights/content_insights_public/src/client.ts new file mode 100644 index 0000000000000..8f392ce50536d --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/client.ts @@ -0,0 +1,50 @@ +/* + * 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 type { HttpStart } from '@kbn/core-http-browser'; +import type { + ContentInsightsStats, + ContentInsightsStatsResponse, +} from '@kbn/content-management-content-insights-server'; + +export type ContentInsightsEventTypes = 'viewed'; + +/** + * Public interface of the Content Management Insights service. + */ +export interface ContentInsightsClientPublic { + track(id: string, eventType: ContentInsightsEventTypes): void; + getStats(id: string, eventType: ContentInsightsEventTypes): Promise; +} + +/** + * Client for the Content Management Insights service. + */ +export class ContentInsightsClient implements ContentInsightsClientPublic { + constructor( + private readonly deps: { http: HttpStart }, + private readonly config: { domainId: string } + ) {} + + track(id: string, eventType: ContentInsightsEventTypes) { + this.deps.http + .post(`/internal/content_management/insights/${this.config.domainId}/${id}/${eventType}`) + .catch((e) => { + // eslint-disable-next-line no-console + console.warn(`Could not track ${eventType} event for ${id}`, e); + }); + } + + async getStats(id: string, eventType: ContentInsightsEventTypes) { + return this.deps.http + .get( + `/internal/content_management/insights/${this.config.domainId}/${id}/${eventType}/stats` + ) + .then((response) => response.result); + } +} diff --git a/packages/content-management/content_editor/src/components/activity_view.test.tsx b/packages/content-management/content_insights/content_insights_public/src/components/activity_view.test.tsx similarity index 100% rename from packages/content-management/content_editor/src/components/activity_view.test.tsx rename to packages/content-management/content_insights/content_insights_public/src/components/activity_view.test.tsx diff --git a/packages/content-management/content_insights/content_insights_public/src/components/activity_view.tsx b/packages/content-management/content_insights/content_insights_public/src/components/activity_view.tsx new file mode 100644 index 0000000000000..065a2ed0648a7 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/components/activity_view.tsx @@ -0,0 +1,152 @@ +/* + * 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 { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiSpacer, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import React from 'react'; +import { + UserAvatarTip, + useUserProfile, + NoUpdaterTip, + NoCreatorTip, + ManagedAvatarTip, +} from '@kbn/content-management-user-profiles'; +import { getUserDisplayName } from '@kbn/user-profile-components'; + +import { Item } from '../types'; + +export interface ActivityViewProps { + item: Pick, 'createdBy' | 'createdAt' | 'updatedBy' | 'updatedAt' | 'managed'>; +} + +export const ActivityView = ({ item }: ActivityViewProps) => { + const showLastUpdated = Boolean(item.updatedAt && item.updatedAt !== item.createdAt); + + const UnknownUserLabel = ( + + ); + + const ManagedUserLabel = ( + <> + {' '} + + + ); + + return ( + + + + ) : item.managed ? ( + <>{ManagedUserLabel} + ) : ( + <> + {UnknownUserLabel} + + + ) + } + when={item.createdAt} + data-test-subj={'createdByCard'} + /> + + + {showLastUpdated && ( + + ) : item.managed ? ( + <>{ManagedUserLabel} + ) : ( + <> + {UnknownUserLabel} + + + ) + } + when={item.updatedAt} + data-test-subj={'updatedByCard'} + /> + )} + + + ); +}; + +const dateFormatter = new Intl.DateTimeFormat(i18n.getLocale(), { + dateStyle: 'long', + timeStyle: 'short', +}); + +const ActivityCard = ({ + what, + when, + who, + 'data-test-subj': dataTestSubj, +}: { + what: string; + who: React.ReactNode; + when?: string; + 'data-test-subj'?: string; +}) => { + return ( + + + {what} + + + + {who} + + {when && ( + <> + + + + + + )} + + ); +}; + +const UserLabel = ({ uid }: { uid: string }) => { + const userQuery = useUserProfile(uid); + + if (!userQuery.data) return null; + + return ( + <> + {getUserDisplayName(userQuery.data.user)} + + ); +}; diff --git a/packages/content-management/content_insights/content_insights_public/src/components/index.ts b/packages/content-management/content_insights/content_insights_public/src/components/index.ts new file mode 100644 index 0000000000000..b018fca6c843e --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/components/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 { ActivityView, type ActivityViewProps } from './activity_view'; +export { ViewsStats } from './views_stats'; diff --git a/packages/content-management/content_insights/content_insights_public/src/components/views_stats/index.ts b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/index.ts new file mode 100644 index 0000000000000..01fa00cd44537 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/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 { ViewsStats } from './views_stats'; diff --git a/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_chart.tsx b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_chart.tsx new file mode 100644 index 0000000000000..ff1675744b9a6 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_chart.tsx @@ -0,0 +1,80 @@ +/* + * 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 { Chart, Settings, DARK_THEME, LIGHT_THEME, BarSeries, Axis } from '@elastic/charts'; +import { formatDate, useEuiTheme } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import moment from 'moment'; + +const dateFormatter = (d: Date) => formatDate(d, `MM/DD`); + +const seriesName = i18n.translate('contentManagement.contentEditor.viewsStats.viewsLabel', { + defaultMessage: 'Views', +}); + +const weekOfFormatter = (date: Date) => + i18n.translate('contentManagement.contentEditor.viewsStats.weekOfLabel', { + defaultMessage: 'Week of {date}', + values: { date: dateFormatter(date) }, + }); + +export const ViewsChart = ({ data }: { data: Array<[week: number, views: number]> }) => { + const { colorMode } = useEuiTheme(); + + const momentDow = moment().localeData().firstDayOfWeek(); // configured from advanced settings + const isoDow = momentDow === 0 ? 7 : momentDow; + + const momentTz = moment().tz(); // configured from advanced settings + + return ( + + + + + + + + ); +}; diff --git a/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.test.tsx b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.test.tsx new file mode 100644 index 0000000000000..649c34da0f2f7 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.test.tsx @@ -0,0 +1,64 @@ +/* + * 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 { render, within } from '@testing-library/react'; +import { I18nProvider } from '@kbn/i18n-react'; +import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; +import { ContentInsightsProvider } from '../../services'; + +import { ViewsStats } from './views_stats'; + +beforeEach(() => { + jest.useFakeTimers(); + jest.setSystemTime(new Date('2024-07-15T14:00:00.00Z')); +}); +afterEach(() => jest.clearAllMocks()); +afterAll(() => jest.useRealTimers()); + +const mockStats = jest.fn().mockResolvedValue({ + from: '2024-05-01T00:00:00.000Z', + count: 10, + daily: [ + { + date: '2024-05-01T00:00:00.000Z', + count: 5, + }, + { + date: '2024-06-01T00:00:00.000Z', + count: 5, + }, + ], +}); + +const WrappedViewsStats = () => { + const item = { id: '1' } as any; + const client = { + track: jest.fn(), + getStats: mockStats, + }; + return ( + + + + + + + + ); +}; + +describe('ViewsStats', () => { + test('should render the total views and chart', async () => { + const { getByTestId } = render(); + const totalViews = getByTestId('views-stats-total-views'); + expect(totalViews).toBeInTheDocument(); + await within(totalViews).findByText('Views (last 75 days)'); + await within(totalViews).findByText('10'); + }); +}); diff --git a/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.tsx b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.tsx new file mode 100644 index 0000000000000..15138b55ba9b5 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats.tsx @@ -0,0 +1,125 @@ +/* + * 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 { EuiPanel, EuiStat, EuiSpacer, useEuiTheme, EuiIconTip } from '@elastic/eui'; +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { useQuery } from '@tanstack/react-query'; +import { i18n } from '@kbn/i18n'; +import type { ContentInsightsStats } from '@kbn/content-management-content-insights-server'; +import { css } from '@emotion/react'; +import moment from 'moment'; + +import { Item } from '../../types'; +import { ViewsChart } from './views_chart'; +import { useServices } from '../../services'; + +export const ViewsStats = ({ item }: { item: Item }) => { + const contentInsightsClient = useServices()?.contentInsightsClient; + + if (!contentInsightsClient) { + throw new Error('Content insights client is not available'); + } + + const { euiTheme } = useEuiTheme(); + const { data, isLoading } = useQuery( + ['content-insights:viewed', item.id], + async () => + contentInsightsClient.getStats(item.id, 'viewed').then((response) => ({ + totalDays: getTotalDays(response), + totalViews: response.count, + chartData: getChartData(response), + })), + { + staleTime: 0, + retry: false, + } + ); + + return ( + + + + + + } + isLoading={isLoading} + /> + + + + + + ); +}; + +const NoViewsTip = () => ( + + } + /> +); + +export function getTotalDays(stats: ContentInsightsStats) { + return moment.utc().diff(moment.utc(stats.from), 'days'); +} + +export function getChartData(stats: ContentInsightsStats): Array<[week: number, views: number]> { + // prepare a map of views by week starting from the first full week till the current week + const viewsByWeek = new Map(); + + // we use moment to handle weeks because it is configured with the correct first day of the week from advanced settings + // by default it is sunday + const thisWeek = moment().startOf('week'); + const firstFullWeek = moment(stats.from).add(7, 'day').startOf('week'); + + // fill the map with weeks starting from the first full week till the current week + let current = firstFullWeek.clone(); + while (current.isSameOrBefore(thisWeek)) { + viewsByWeek.set(current.toISOString(), 0); + current = current.clone().add(1, 'week'); + } + + // fill the map with views per week + for (let i = 0; i < stats.daily.length; i++) { + const week = moment(stats.daily[i].date).startOf('week').toISOString(); + if (viewsByWeek.has(week)) { + viewsByWeek.set(week, viewsByWeek.get(week)! + stats.daily[i].count); + } + } + + return Array.from(viewsByWeek.entries()) + .sort((a, b) => (a[0] > b[0] ? 1 : -1)) + .map(([date, views]) => [new Date(date).getTime(), views]); +} diff --git a/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats_lib.test.tsx b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats_lib.test.tsx new file mode 100644 index 0000000000000..0ad2b32430561 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/components/views_stats/views_stats_lib.test.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 moment from 'moment'; +import { getChartData, getTotalDays } from './views_stats'; + +beforeEach(() => { + jest.useFakeTimers(); + jest.setSystemTime(new Date('2024-07-15T14:00:00.00Z')); + moment.updateLocale('en', { + week: { + dow: 1, // test with Monday is the first day of the week. + }, + }); +}); +afterEach(() => jest.clearAllMocks()); +afterAll(() => jest.useRealTimers()); + +describe('getTotalDays', () => { + test('should return the total days between the current date and the from date', () => { + const totalDays = getTotalDays({ + from: '2024-07-01T00:00:00.000Z', + daily: [], + count: 0, + }); + expect(totalDays).toBe(14); + }); +}); + +describe('getChartData', () => { + test('should return views bucketed by week', () => { + const data = getChartData({ + from: '2024-05-01T00:00:00.000Z', + daily: [], + count: 0, + }); + expect(data.every(([, count]) => count === 0)).toBe(true); + + // moment is mocked with America/New_York timezone, hence +04:00 offset + expect(data.map((d) => new Date(d[0]).toISOString())).toMatchInlineSnapshot(` + Array [ + "2024-05-06T04:00:00.000Z", + "2024-05-13T04:00:00.000Z", + "2024-05-20T04:00:00.000Z", + "2024-05-27T04:00:00.000Z", + "2024-06-03T04:00:00.000Z", + "2024-06-10T04:00:00.000Z", + "2024-06-17T04:00:00.000Z", + "2024-06-24T04:00:00.000Z", + "2024-07-01T04:00:00.000Z", + "2024-07-08T04:00:00.000Z", + "2024-07-15T04:00:00.000Z", + ] + `); + }); +}); diff --git a/packages/content-management/content_insights/content_insights_public/src/services.tsx b/packages/content-management/content_insights/content_insights_public/src/services.tsx new file mode 100644 index 0000000000000..13d2ade797024 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/services.tsx @@ -0,0 +1,49 @@ +/* + * 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 { FC, PropsWithChildren, useContext } from 'react'; +import React from 'react'; + +import { ContentInsightsClientPublic } from './client'; + +/** + * Abstract external services for this component. + */ +export interface ContentInsightsServices { + contentInsightsClient: ContentInsightsClientPublic; +} + +const ContentInsightsContext = React.createContext(null); + +/** + * Abstract external service Provider. + */ +export const ContentInsightsProvider: FC>> = ({ + children, + ...services +}) => { + if (!services.contentInsightsClient) { + return <>{children}; + } + + return ( + + {children} + + ); +}; + +/* + * React hook for accessing pre-wired services. + */ +export function useServices() { + const context = useContext(ContentInsightsContext); + return context; +} diff --git a/packages/content-management/content_insights/content_insights_public/src/types.ts b/packages/content-management/content_insights/content_insights_public/src/types.ts new file mode 100644 index 0000000000000..75e0ca561c9ae --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/src/types.ts @@ -0,0 +1,11 @@ +/* + * 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 { UserContentCommonSchema } from '@kbn/content-management-table-list-view-common'; + +export type Item = UserContentCommonSchema; diff --git a/packages/content-management/content_insights/content_insights_public/tsconfig.json b/packages/content-management/content_insights/content_insights_public/tsconfig.json new file mode 100644 index 0000000000000..27d479a15d6c9 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_public/tsconfig.json @@ -0,0 +1,32 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react", + "@kbn/ambient-ui-types", + "@kbn/ambient-storybook-types", + "@emotion/react/types/css-prop", + "@testing-library/jest-dom", + "@testing-library/react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/content-management-user-profiles", + "@kbn/i18n-react", + "@kbn/i18n", + "@kbn/user-profile-components", + "@kbn/core-http-browser", + "@kbn/content-management-content-insights-server", + "@kbn/content-management-table-list-view-common", + ] +} diff --git a/packages/content-management/content_insights/content_insights_server/README.md b/packages/content-management/content_insights/content_insights_server/README.md new file mode 100644 index 0000000000000..00f54612cf532 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_server/README.md @@ -0,0 +1,3 @@ +# @kbn/content-management-content-insights-server + +Refer to [README](../README.mdx) diff --git a/packages/content-management/content_insights/content_insights_server/index.ts b/packages/content-management/content_insights/content_insights_server/index.ts new file mode 100644 index 0000000000000..fe78d0eb181ae --- /dev/null +++ b/packages/content-management/content_insights/content_insights_server/index.ts @@ -0,0 +1,13 @@ +/* + * 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 { + registerContentInsights, + type ContentInsightsStatsResponse, + type ContentInsightsStats, +} from './src/register'; diff --git a/packages/content-management/content_insights/content_insights_server/jest.config.js b/packages/content-management/content_insights/content_insights_server/jest.config.js new file mode 100644 index 0000000000000..7761f3fba8000 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_server/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['/packages/content-management/content_insights/content_insights_server'], +}; diff --git a/packages/content-management/content_insights/content_insights_server/kibana.jsonc b/packages/content-management/content_insights/content_insights_server/kibana.jsonc new file mode 100644 index 0000000000000..386c1a6bf1304 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_server/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-server", + "id": "@kbn/content-management-content-insights-server", + "owner": "@elastic/appex-sharedux" +} diff --git a/packages/content-management/content_insights/content_insights_server/package.json b/packages/content-management/content_insights/content_insights_server/package.json new file mode 100644 index 0000000000000..ff99762999828 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_server/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/content-management-content-insights-server", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/content-management/content_insights/content_insights_server/src/register.ts b/packages/content-management/content_insights/content_insights_server/src/register.ts new file mode 100644 index 0000000000000..06283cce089ac --- /dev/null +++ b/packages/content-management/content_insights/content_insights_server/src/register.ts @@ -0,0 +1,147 @@ +/* + * 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 type { + UsageCollectionSetup, + UsageCollectionStart, +} from '@kbn/usage-collection-plugin/server'; +import type { CoreSetup } from '@kbn/core/server'; +import { schema } from '@kbn/config-schema'; +import moment from 'moment'; + +/** + * Configuration for the usage counter + */ +export interface ContentInsightsConfig { + /** + * e.g. 'dashboard' + * passed as a domainId to usage counter apis + */ + domainId: string; + + /** + * Can control created routes access via access tags + */ + routeTags?: string[]; + + /** + * Retention period in days for usage counter data + */ + retentionPeriodDays?: number; +} + +export interface ContentInsightsDependencies { + usageCollection: UsageCollectionSetup; + http: CoreSetup['http']; + getStartServices: () => Promise<{ + usageCollection: UsageCollectionStart; + }>; +} + +export interface ContentInsightsStatsResponse { + result: ContentInsightsStats; +} + +export interface ContentInsightsStats { + /** + * The date from which the data is counted + */ + from: string; + /** + * Total count of events + */ + count: number; + /** + * Daily counts of events + */ + daily: Array<{ + date: string; + count: number; + }>; +} + +/* + * Registers the content insights routes + */ +export const registerContentInsights = ( + { usageCollection, http, getStartServices }: ContentInsightsDependencies, + config: ContentInsightsConfig +) => { + const retentionPeriodDays = config.retentionPeriodDays ?? 90; + const counter = usageCollection.createUsageCounter(config.domainId, { + retentionPeriodDays, + }); + + const router = http.createRouter(); + const validate = { + params: schema.object({ + id: schema.string(), + eventType: schema.literal('viewed'), + }), + }; + router.post( + { + path: `/internal/content_management/insights/${config.domainId}/{id}/{eventType}`, + validate, + options: { + tags: config.routeTags, + }, + }, + async (context, req, res) => { + const { id, eventType } = req.params; + + counter.incrementCounter({ + counterName: id, + counterType: eventType, + namespace: (await context.core).savedObjects.client.getCurrentNamespace(), + }); + return res.ok(); + } + ); + router.get( + { + path: `/internal/content_management/insights/${config.domainId}/{id}/{eventType}/stats`, + validate, + options: { + tags: config.routeTags, + }, + }, + async (context, req, res) => { + const { id, eventType } = req.params; + const { + usageCollection: { search }, + } = await getStartServices(); + + const startOfDay = moment.utc().startOf('day'); + const from = startOfDay.clone().subtract(retentionPeriodDays, 'days'); + + const result = await search({ + filters: { + domainId: config.domainId, + counterName: id, + counterType: eventType, + namespace: (await context.core).savedObjects.client.getCurrentNamespace(), + from: from.toISOString(), + }, + }); + + const response: ContentInsightsStatsResponse = { + result: { + from: from.toISOString(), + count: result.counters[0]?.count ?? 0, + daily: (result.counters[0]?.records ?? []).map((record) => ({ + date: record.updatedAt, + count: record.count, + })), + }, + }; + + return res.ok({ body: response }); + } + ); +}; diff --git a/packages/content-management/content_insights/content_insights_server/tsconfig.json b/packages/content-management/content_insights/content_insights_server/tsconfig.json new file mode 100644 index 0000000000000..3e2312c0278a2 --- /dev/null +++ b/packages/content-management/content_insights/content_insights_server/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/usage-collection-plugin", + "@kbn/core", + "@kbn/config-schema", + ] +} diff --git a/packages/content-management/favorites/README.mdx b/packages/content-management/favorites/README.mdx new file mode 100644 index 0000000000000..e54f1baef2c98 --- /dev/null +++ b/packages/content-management/favorites/README.mdx @@ -0,0 +1,76 @@ +--- +id: sharedUX/Favorites +slug: /shared-ux/favorites +title: Favorites Service +description: A service and a set of components and hooks for implementing content favorites +tags: ['shared-ux', 'component'] +date: 2024-07-26 +--- + +## Description + +The Favorites service provides a way to add favorites feature to your content. It includes a service for managing the list of favorites and a set of components for displaying and interacting with the list. + +- The favorites are isolated per user, per space. +- The service provides an API for adding, removing, and listing favorites. +- The service provides a set of react-query hooks for interacting with the favorites list +- The components include a button for toggling the favorite state of an object +- The service relies on ambiguous object ids to identify the objects being favorite. This allows the service to be used with any type of content, not just saved objects. + +## API + +```tsx +// client side +import { + FavoritesClient, + FavoritesContextProvider, + useFavorites, + FavoriteButton, +} from '@kbn/content-management-favorites-public'; + +const favoriteObjectType = 'dashboard'; +const favoritesClient = new FavoritesClient('dashboard', { + http: core.http, +}); + +// wrap your content with the favorites context provider +const myApp = () => { + + + ; +}; + +const App = () => { + // get the favorites list + const favoritesQuery = useFavorites(); + + // display favorite state and toggle button for an object + return ; +}; +``` + +## Implementation Details + +Internally the favorites list is backed by a saved object. A saved object of type "favorites" is created for each user (user profile id) and space (space id) and object type (e.g. dashboard) combination when a user for the first time favorites an object. The saved object contains a list of favorite objects of the type. + +``` +{ + "_index": ".kibana_8.16.0_001", + "_id": "spaceid:favorites:object_type:u_profile_id", + "_source": { + "favorites": { + "userId": "u_profile_id", + "type: "dashboard", + "favoriteIds": [ + "dashboard_id_1", + "dashboard_id_2", + ] + }, + "type": "favorites", + "references": [], + "namespace": "spaceid", + } +}, +``` + +The service doesn't track the favorite object itself, only the object id. When the object is deleted, the favorite isn't removed from the list automatically. diff --git a/packages/content-management/favorites/favorites_public/README.md b/packages/content-management/favorites/favorites_public/README.md new file mode 100644 index 0000000000000..0ca4cd473d6a7 --- /dev/null +++ b/packages/content-management/favorites/favorites_public/README.md @@ -0,0 +1,4 @@ +# @kbn/content-management-favorites-public + +Client-side code for the favorites feature +Meant be used in conjunction with the `@kbn/content-management-favorites-server` package. diff --git a/packages/content-management/favorites/favorites_public/index.ts b/packages/content-management/favorites/favorites_public/index.ts new file mode 100644 index 0000000000000..232bef2021ec8 --- /dev/null +++ b/packages/content-management/favorites/favorites_public/index.ts @@ -0,0 +1,19 @@ +/* + * 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 { type FavoritesClientPublic, FavoritesClient } from './src/favorites_client'; +export { FavoritesContextProvider } from './src/favorites_context'; +export { useFavorites } from './src/favorites_query'; + +export { + FavoriteButton, + type FavoriteButtonProps, + cssFavoriteHoverWithinEuiTableRow, +} from './src/components/favorite_button'; + +export { FavoritesEmptyState } from './src/components/favorites_empty_state'; diff --git a/packages/content-management/favorites/favorites_public/jest.config.js b/packages/content-management/favorites/favorites_public/jest.config.js new file mode 100644 index 0000000000000..e12c809e93706 --- /dev/null +++ b/packages/content-management/favorites/favorites_public/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['/packages/content-management/favorites/favorites_public'], +}; diff --git a/packages/content-management/favorites/favorites_public/kibana.jsonc b/packages/content-management/favorites/favorites_public/kibana.jsonc new file mode 100644 index 0000000000000..a6564f6a17407 --- /dev/null +++ b/packages/content-management/favorites/favorites_public/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-browser", + "id": "@kbn/content-management-favorites-public", + "owner": "@elastic/appex-sharedux" +} diff --git a/packages/content-management/favorites/favorites_public/package.json b/packages/content-management/favorites/favorites_public/package.json new file mode 100644 index 0000000000000..60798ad82bf2d --- /dev/null +++ b/packages/content-management/favorites/favorites_public/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/content-management-favorites-public", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/content-management/favorites/favorites_public/src/components/empty_favorites_dark.svg b/packages/content-management/favorites/favorites_public/src/components/empty_favorites_dark.svg new file mode 100644 index 0000000000000..34f708a77cf97 --- /dev/null +++ b/packages/content-management/favorites/favorites_public/src/components/empty_favorites_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/content-management/favorites/favorites_public/src/components/empty_favorites_light.svg b/packages/content-management/favorites/favorites_public/src/components/empty_favorites_light.svg new file mode 100644 index 0000000000000..cbf0f0c461afb --- /dev/null +++ b/packages/content-management/favorites/favorites_public/src/components/empty_favorites_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx b/packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx new file mode 100644 index 0000000000000..a82933bd0f53e --- /dev/null +++ b/packages/content-management/favorites/favorites_public/src/components/favorite_button.tsx @@ -0,0 +1,94 @@ +/* + * 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 classNames from 'classnames'; +import { EuiButtonIcon, euiCanAnimate, EuiThemeComputed } from '@elastic/eui'; +import { css } from '@emotion/react'; +import { useFavorites, useRemoveFavorite, useAddFavorite } from '../favorites_query'; + +export interface FavoriteButtonProps { + id: string; + className?: string; +} + +export const FavoriteButton = ({ id, className }: FavoriteButtonProps) => { + const { data } = useFavorites(); + + const removeFavorite = useRemoveFavorite(); + const addFavorite = useAddFavorite(); + + if (!data) return null; + + const isFavorite = data.favoriteIds.includes(id); + + if (isFavorite) { + const title = i18n.translate('contentManagement.favorites.unfavoriteButtonLabel', { + defaultMessage: 'Remove from Starred', + }); + + return ( + { + removeFavorite.mutate({ id }); + }} + className={classNames(className, 'cm-favorite-button', { + 'cm-favorite-button--active': !removeFavorite.isLoading, + })} + data-test-subj="unfavoriteButton" + /> + ); + } else { + const title = i18n.translate('contentManagement.favorites.favoriteButtonLabel', { + defaultMessage: 'Add to Starred', + }); + return ( + { + addFavorite.mutate({ id }); + }} + className={classNames(className, 'cm-favorite-button', { + 'cm-favorite-button--empty': !addFavorite.isLoading, + })} + data-test-subj="favoriteButton" + /> + ); + } +}; + +/** + * CSS to apply to euiTable to show the favorite button on hover or when active + * @param euiTheme + */ +export const cssFavoriteHoverWithinEuiTableRow = (euiTheme: EuiThemeComputed) => css` + @media (hover: hover) { + .euiTableRow .cm-favorite-button--empty { + visibility: hidden; + opacity: 0; + ${euiCanAnimate} { + transition: opacity ${euiTheme.animation.fast} ${euiTheme.animation.resistance}; + } + } + .euiTableRow:hover, + .euiTableRow:focus-within { + .cm-favorite-button--empty { + visibility: visible; + opacity: 1; + } + } + } +`; diff --git a/packages/content-management/favorites/favorites_public/src/components/favorites_empty_state.tsx b/packages/content-management/favorites/favorites_public/src/components/favorites_empty_state.tsx new file mode 100644 index 0000000000000..4afc0632c471a --- /dev/null +++ b/packages/content-management/favorites/favorites_public/src/components/favorites_empty_state.tsx @@ -0,0 +1,88 @@ +/* + * 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 { FormattedMessage } from '@kbn/i18n-react'; +import { i18n } from '@kbn/i18n'; +import { EuiEmptyPrompt, useEuiTheme, EuiImage, EuiMarkdownFormat } from '@elastic/eui'; +import { css } from '@emotion/react'; +import React from 'react'; +import emptyFavoritesDark from './empty_favorites_dark.svg'; +import emptyFavoritesLight from './empty_favorites_light.svg'; + +export const FavoritesEmptyState = ({ + emptyStateType = 'noItems', + entityNamePlural = i18n.translate('contentManagement.favorites.defaultEntityNamePlural', { + defaultMessage: 'items', + }), + entityName = i18n.translate('contentManagement.favorites.defaultEntityName', { + defaultMessage: 'item', + }), +}: { + emptyStateType: 'noItems' | 'noMatchingItems'; + entityNamePlural?: string; + entityName?: string; +}) => { + const title = + emptyStateType === 'noItems' ? ( + + ) : ( + + ); + + return ( + } + hasBorder={false} + title={

{title}

} + body={ + + {i18n.translate('contentManagement.favorites.noFavoritesMessageBody', { + defaultMessage: + "Keep track of your most important {entityNamePlural} by adding them to your **Starred** list. Click the **{starIcon}** **star icon** next to a {entityName} name and it'll appear in this tab.", + values: { entityNamePlural, entityName, starIcon: `✩` }, + })} + + } + /> + ); +}; + +const NoFavoritesIllustration = () => { + const { colorMode } = useEuiTheme(); + + const src = colorMode === 'DARK' ? emptyFavoritesDark : emptyFavoritesLight; + + return ( + + ); +}; diff --git a/packages/content-management/favorites/favorites_public/src/favorites_client.ts b/packages/content-management/favorites/favorites_public/src/favorites_client.ts new file mode 100644 index 0000000000000..58eea3a600de4 --- /dev/null +++ b/packages/content-management/favorites/favorites_public/src/favorites_client.ts @@ -0,0 +1,42 @@ +/* + * 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 type { HttpStart } from '@kbn/core-http-browser'; +import type { GetFavoritesResponse } from '@kbn/content-management-favorites-server'; + +export interface FavoritesClientPublic { + getFavorites(): Promise; + addFavorite({ id }: { id: string }): Promise; + removeFavorite({ id }: { id: string }): Promise; + + getFavoriteType(): string; +} + +export class FavoritesClient implements FavoritesClientPublic { + constructor(private favoriteObjectType: string, private deps: { http: HttpStart }) {} + + public async getFavorites(): Promise { + return this.deps.http.get(`/internal/content_management/favorites/${this.favoriteObjectType}`); + } + + public async addFavorite({ id }: { id: string }): Promise { + return this.deps.http.post( + `/internal/content_management/favorites/${this.favoriteObjectType}/${id}/favorite` + ); + } + + public async removeFavorite({ id }: { id: string }): Promise { + return this.deps.http.post( + `/internal/content_management/favorites/${this.favoriteObjectType}/${id}/unfavorite` + ); + } + + public getFavoriteType() { + return this.favoriteObjectType; + } +} diff --git a/packages/content-management/favorites/favorites_public/src/favorites_context.tsx b/packages/content-management/favorites/favorites_public/src/favorites_context.tsx new file mode 100644 index 0000000000000..ea11ff29a5d23 --- /dev/null +++ b/packages/content-management/favorites/favorites_public/src/favorites_context.tsx @@ -0,0 +1,40 @@ +/* + * 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 type { FavoritesClientPublic } from './favorites_client'; + +interface FavoritesContextValue { + favoritesClient?: FavoritesClientPublic; + notifyError?: (title: JSX.Element, text?: string) => void; +} + +const FavoritesContext = React.createContext(null); + +export const FavoritesContextProvider: React.FC = ({ + favoritesClient, + notifyError, + children, +}) => { + return ( + + {children} + + ); +}; + +export const useFavoritesContext = () => { + const context = React.useContext(FavoritesContext); + return context; +}; + +export const useFavoritesClient = () => { + const context = useFavoritesContext(); + return context?.favoritesClient; +}; diff --git a/packages/content-management/favorites/favorites_public/src/favorites_query.tsx b/packages/content-management/favorites/favorites_public/src/favorites_query.tsx new file mode 100644 index 0000000000000..54ce72fd0f27d --- /dev/null +++ b/packages/content-management/favorites/favorites_public/src/favorites_query.tsx @@ -0,0 +1,102 @@ +/* + * 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 { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; +import { i18n } from '@kbn/i18n'; +import React from 'react'; + +import { useFavoritesClient, useFavoritesContext } from './favorites_context'; + +const favoritesKeys = { + all: ['favorites'] as const, + byType: (type: string) => [...favoritesKeys.all, type] as const, +}; + +export const useFavorites = ({ enabled = true }: { enabled?: boolean } = { enabled: true }) => { + const favoritesClient = useFavoritesClient(); + + if (!favoritesClient && enabled) { + throw new Error( + `useFavorites: favoritesClient is not available. Make sure you have wrapped your component with FavoritesContextProvider` + ); + } + + return useQuery( + favoritesKeys.byType(favoritesClient?.getFavoriteType() ?? 'never'), + () => favoritesClient!.getFavorites(), + { enabled } + ); +}; + +export const useAddFavorite = () => { + const favoritesContext = useFavoritesContext(); + + if (!favoritesContext) { + throw new Error( + `useAddFavorite: favoritesContext is not available. Make sure you have wrapped your component with FavoritesContextProvider` + ); + } + + const favoritesClient = favoritesContext.favoritesClient; + const notifyError = favoritesContext.notifyError; + const queryClient = useQueryClient(); + return useMutation( + ({ id }: { id: string }) => { + return favoritesClient!.addFavorite({ id }); + }, + { + onSuccess: (data) => { + queryClient.setQueryData(favoritesKeys.byType(favoritesClient!.getFavoriteType()), data); + }, + onError: (error: Error) => { + notifyError?.( + <> + {i18n.translate('contentManagement.favorites.addFavoriteError', { + defaultMessage: 'Error adding to Starred', + })} + , + error?.message + ); + }, + } + ); +}; + +export const useRemoveFavorite = () => { + const favoritesContext = useFavoritesContext(); + + if (!favoritesContext) { + throw new Error( + `useAddFavorite: favoritesContext is not available. Make sure you have wrapped your component with FavoritesContextProvider` + ); + } + + const favoritesClient = favoritesContext.favoritesClient; + const notifyError = favoritesContext.notifyError; + const queryClient = useQueryClient(); + return useMutation( + ({ id }: { id: string }) => { + return favoritesClient!.removeFavorite({ id }); + }, + { + onSuccess: (data) => { + queryClient.setQueryData(favoritesKeys.byType(favoritesClient!.getFavoriteType()), data); + }, + onError: (error: Error) => { + notifyError?.( + <> + {i18n.translate('contentManagement.favorites.removeFavoriteError', { + defaultMessage: 'Error removing from Starred', + })} + , + error?.message + ); + }, + } + ); +}; diff --git a/packages/content-management/favorites/favorites_public/tsconfig.json b/packages/content-management/favorites/favorites_public/tsconfig.json new file mode 100644 index 0000000000000..2e5ef8bc52347 --- /dev/null +++ b/packages/content-management/favorites/favorites_public/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react", + "@emotion/react/types/css-prop", + "@kbn/ambient-ui-types" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/i18n", + "@kbn/core-http-browser", + "@kbn/content-management-favorites-server", + "@kbn/i18n-react", + ] +} diff --git a/packages/content-management/favorites/favorites_server/README.md b/packages/content-management/favorites/favorites_server/README.md new file mode 100644 index 0000000000000..e72479aed7d99 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/README.md @@ -0,0 +1,4 @@ +# @kbn/content-management-favorites-server + +Server-side code for the favorites feature. +Meant be used in conjunction with the `@kbn/content-management-favorites-public` package. diff --git a/packages/content-management/favorites/favorites_server/index.ts b/packages/content-management/favorites/favorites_server/index.ts new file mode 100644 index 0000000000000..f631a3a45acc4 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/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 { registerFavorites, type GetFavoritesResponse } from './src'; diff --git a/packages/content-management/favorites/favorites_server/jest.config.js b/packages/content-management/favorites/favorites_server/jest.config.js new file mode 100644 index 0000000000000..d1566e122313d --- /dev/null +++ b/packages/content-management/favorites/favorites_server/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['/packages/content-management/favorites/favorites_server'], +}; diff --git a/packages/content-management/favorites/favorites_server/kibana.jsonc b/packages/content-management/favorites/favorites_server/kibana.jsonc new file mode 100644 index 0000000000000..8d3fe725d1e86 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-server", + "id": "@kbn/content-management-favorites-server", + "owner": "@elastic/appex-sharedux" +} diff --git a/packages/content-management/favorites/favorites_server/package.json b/packages/content-management/favorites/favorites_server/package.json new file mode 100644 index 0000000000000..6ad4f49f9be01 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/content-management-favorites-server", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/content-management/favorites/favorites_server/src/favorites_routes.ts b/packages/content-management/favorites/favorites_server/src/favorites_routes.ts new file mode 100644 index 0000000000000..7079bb8e5e7a9 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/src/favorites_routes.ts @@ -0,0 +1,146 @@ +/* + * 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 { + CoreRequestHandlerContext, + CoreSetup, + Logger, + SECURITY_EXTENSION_ID, +} from '@kbn/core/server'; +import { schema } from '@kbn/config-schema'; +import { FavoritesService } from './favorites_service'; +import { favoritesSavedObjectType } from './favorites_saved_object'; + +// only dashboard is supported for now +// TODO: make configurable or allow any string +const typeSchema = schema.oneOf([schema.literal('dashboard')]); + +/** + * @public + * Response for get favorites API + */ +export interface GetFavoritesResponse { + favoriteIds: string[]; +} + +export function registerFavoritesRoutes({ core, logger }: { core: CoreSetup; logger: Logger }) { + const router = core.http.createRouter(); + + const getSavedObjectClient = (coreRequestHandlerContext: CoreRequestHandlerContext) => { + // We need to exclude security extension to access the `favorite` type which not every user has access to + // and give access only to the current user's favorites through this API + return coreRequestHandlerContext.savedObjects.getClient({ + includedHiddenTypes: [favoritesSavedObjectType.name], + excludedExtensions: [SECURITY_EXTENSION_ID], + }); + }; + + router.post( + { + path: '/internal/content_management/favorites/{type}/{id}/favorite', + validate: { + params: schema.object({ + id: schema.string(), + type: typeSchema, + }), + }, + // we don't protect the route with any access tags as + // we only give access to the current user's favorites ids + }, + async (requestHandlerContext, request, response) => { + const coreRequestHandlerContext = await requestHandlerContext.core; + + const userId = coreRequestHandlerContext.security.authc.getCurrentUser()?.profile_uid; + + if (!userId) { + return response.forbidden(); + } + + const type = request.params.type; + + const favorites = new FavoritesService(type, userId, { + savedObjectClient: getSavedObjectClient(coreRequestHandlerContext), + logger, + }); + + const favoriteIds: GetFavoritesResponse = await favorites.addFavorite({ + id: request.params.id, + }); + + return response.ok({ body: favoriteIds }); + } + ); + + router.post( + { + path: '/internal/content_management/favorites/{type}/{id}/unfavorite', + validate: { + params: schema.object({ + id: schema.string(), + type: typeSchema, + }), + }, + // we don't protect the route with any access tags as + // we only give access to the current user's favorites ids + }, + async (requestHandlerContext, request, response) => { + const coreRequestHandlerContext = await requestHandlerContext.core; + const userId = coreRequestHandlerContext.security.authc.getCurrentUser()?.profile_uid; + + if (!userId) { + return response.forbidden(); + } + + const type = request.params.type; + + const favorites = new FavoritesService(type, userId, { + savedObjectClient: getSavedObjectClient(coreRequestHandlerContext), + logger, + }); + + const favoriteIds: GetFavoritesResponse = await favorites.removeFavorite({ + id: request.params.id, + }); + return response.ok({ body: favoriteIds }); + } + ); + + router.get( + { + path: '/internal/content_management/favorites/{type}', + validate: { + params: schema.object({ + type: typeSchema, + }), + }, + // we don't protect the route with any access tags as + // we only give access to the current user's favorites ids + }, + async (requestHandlerContext, request, response) => { + const coreRequestHandlerContext = await requestHandlerContext.core; + const userId = coreRequestHandlerContext.security.authc.getCurrentUser()?.profile_uid; + + if (!userId) { + return response.forbidden(); + } + + const type = request.params.type; + + const favorites = new FavoritesService(type, userId, { + savedObjectClient: getSavedObjectClient(coreRequestHandlerContext), + logger, + }); + + const getFavoritesResponse: GetFavoritesResponse = await favorites.getFavorites(); + + return response.ok({ + body: getFavoritesResponse, + }); + } + ); +} diff --git a/packages/content-management/favorites/favorites_server/src/favorites_saved_object.ts b/packages/content-management/favorites/favorites_server/src/favorites_saved_object.ts new file mode 100644 index 0000000000000..e7d88045860f4 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/src/favorites_saved_object.ts @@ -0,0 +1,45 @@ +/* + * 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 { schema } from '@kbn/config-schema'; +import type { SavedObjectsType } from '@kbn/core/server'; + +export interface FavoritesSavedObjectAttributes { + userId: string; + type: string; + favoriteIds: string[]; +} + +const schemaV1 = schema.object({ + userId: schema.string(), + type: schema.string(), // object type, e.g. dashboard + favoriteIds: schema.arrayOf(schema.string()), +}); + +export const favoritesSavedObjectType: SavedObjectsType = { + name: 'favorites', + hidden: true, + namespaceType: 'single', + mappings: { + dynamic: false, + properties: {}, + }, + modelVersions: { + 1: { + changes: [], + schemas: { + // The forward compatible schema should allow any future versions of + // this SO to be converted to this version, since we are using + // @kbn/config-schema we opt-in to unknowns to allow the schema to + // successfully "downgrade" future SOs to this version. + forwardCompatibility: schemaV1.extends({}, { unknowns: 'ignore' }), + create: schemaV1, + }, + }, + }, +}; diff --git a/packages/content-management/favorites/favorites_server/src/favorites_service.ts b/packages/content-management/favorites/favorites_server/src/favorites_service.ts new file mode 100644 index 0000000000000..14d3896abf655 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/src/favorites_service.ts @@ -0,0 +1,124 @@ +/* + * 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 type { SavedObject, SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; +import { Logger, SavedObjectsErrorHelpers } from '@kbn/core/server'; +import { favoritesSavedObjectType, FavoritesSavedObjectAttributes } from './favorites_saved_object'; + +export class FavoritesService { + constructor( + private readonly type: string, + private readonly userId: string, + private readonly deps: { + savedObjectClient: SavedObjectsClientContract; + logger: Logger; + } + ) { + if (!this.userId || !this.type) { + // This should never happen, but just in case let's do a runtime check + throw new Error('userId and object type are required to use a favorite service'); + } + } + + public async getFavorites(): Promise<{ favoriteIds: string[] }> { + const favoritesSavedObject = await this.getFavoritesSavedObject(); + + const favoriteIds = favoritesSavedObject?.attributes?.favoriteIds ?? []; + + return { favoriteIds }; + } + + public async addFavorite({ id }: { id: string }): Promise<{ favoriteIds: string[] }> { + let favoritesSavedObject = await this.getFavoritesSavedObject(); + + if (!favoritesSavedObject) { + favoritesSavedObject = await this.deps.savedObjectClient.create( + favoritesSavedObjectType.name, + { + userId: this.userId, + type: this.type, + favoriteIds: [id], + }, + { + id: this.getFavoriteSavedObjectId(), + } + ); + + return { favoriteIds: favoritesSavedObject.attributes.favoriteIds }; + } else { + const newFavoriteIds = [ + ...(favoritesSavedObject.attributes.favoriteIds ?? []).filter( + (favoriteId) => favoriteId !== id + ), + id, + ]; + + await this.deps.savedObjectClient.update( + favoritesSavedObjectType.name, + favoritesSavedObject.id, + { + favoriteIds: newFavoriteIds, + }, + { + version: favoritesSavedObject.version, + } + ); + + return { favoriteIds: newFavoriteIds }; + } + } + + public async removeFavorite({ id }: { id: string }): Promise<{ favoriteIds: string[] }> { + const favoritesSavedObject = await this.getFavoritesSavedObject(); + + if (!favoritesSavedObject) { + return { favoriteIds: [] }; + } + + const newFavoriteIds = (favoritesSavedObject.attributes.favoriteIds ?? []).filter( + (favoriteId) => favoriteId !== id + ); + + await this.deps.savedObjectClient.update( + favoritesSavedObjectType.name, + favoritesSavedObject.id, + { + favoriteIds: newFavoriteIds, + }, + { + version: favoritesSavedObject.version, + } + ); + + return { + favoriteIds: newFavoriteIds, + }; + } + + private async getFavoritesSavedObject(): Promise | null> { + try { + const favoritesSavedObject = + await this.deps.savedObjectClient.get( + favoritesSavedObjectType.name, + this.getFavoriteSavedObjectId() + ); + + return favoritesSavedObject; + } catch (e) { + if (SavedObjectsErrorHelpers.isNotFoundError(e)) { + return null; + } + + throw e; + } + } + + private getFavoriteSavedObjectId() { + return `${this.type}:${this.userId}`; + } +} diff --git a/packages/content-management/favorites/favorites_server/src/index.ts b/packages/content-management/favorites/favorites_server/src/index.ts new file mode 100644 index 0000000000000..729d4537717c9 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/src/index.ts @@ -0,0 +1,25 @@ +/* + * 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 type { CoreSetup, Logger } from '@kbn/core/server'; +import { registerFavoritesRoutes } from './favorites_routes'; +import { favoritesSavedObjectType } from './favorites_saved_object'; + +export type { GetFavoritesResponse } from './favorites_routes'; + +/** + * @public + * Registers the favorites feature enabling favorites saved object type and api routes. + * + * @param logger + * @param core + */ +export function registerFavorites({ logger, core }: { core: CoreSetup; logger: Logger }) { + core.savedObjects.registerType(favoritesSavedObjectType); + registerFavoritesRoutes({ core, logger }); +} diff --git a/packages/content-management/favorites/favorites_server/tsconfig.json b/packages/content-management/favorites/favorites_server/tsconfig.json new file mode 100644 index 0000000000000..fd4fbfb554cf6 --- /dev/null +++ b/packages/content-management/favorites/favorites_server/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core", + "@kbn/config-schema", + "@kbn/core-saved-objects-api-server", + ] +} diff --git a/packages/content-management/table_list_view_table/src/__jest__/tests.helpers.tsx b/packages/content-management/table_list_view_table/src/__jest__/tests.helpers.tsx index d1f42f0d1d6b1..019a64587fcc3 100644 --- a/packages/content-management/table_list_view_table/src/__jest__/tests.helpers.tsx +++ b/packages/content-management/table_list_view_table/src/__jest__/tests.helpers.tsx @@ -27,6 +27,7 @@ export const getMockServices = (overrides?: Partial '', getTagIdsFromReferences: () => [], isTaggingEnabled: () => true, + isFavoritesEnabled: () => false, bulkGetUserProfiles: async () => [], getUserProfile: async () => ({ uid: '', enabled: true, data: {}, user: { username: '' } }), ...overrides, diff --git a/packages/content-management/table_list_view_table/src/components/content_editor_activity_row.tsx b/packages/content-management/table_list_view_table/src/components/content_editor_activity_row.tsx new file mode 100644 index 0000000000000..79a10d42f41e2 --- /dev/null +++ b/packages/content-management/table_list_view_table/src/components/content_editor_activity_row.tsx @@ -0,0 +1,48 @@ +/* + * 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 { EuiFormRow, EuiIconTip, EuiSpacer } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import React, { FC } from 'react'; +import type { UserContentCommonSchema } from '@kbn/content-management-table-list-view-common'; +import { ActivityView, ViewsStats } from '@kbn/content-management-content-insights-public'; + +/** + * This component is used as an extension for the ContentEditor to render the ActivityView and ViewsStats inside the flyout without depending on them directly + */ +export const ContentEditorActivityRow: FC<{ item: UserContentCommonSchema }> = ({ item }) => { + return ( + + {' '} + + } + /> + + } + > + <> + + + + + + ); +}; diff --git a/packages/content-management/table_list_view_table/src/components/item_details.tsx b/packages/content-management/table_list_view_table/src/components/item_details.tsx index 36138839a7daa..209d87c927cbc 100644 --- a/packages/content-management/table_list_view_table/src/components/item_details.tsx +++ b/packages/content-management/table_list_view_table/src/components/item_details.tsx @@ -7,9 +7,11 @@ */ import React, { useCallback, useMemo } from 'react'; -import { EuiText, EuiLink, EuiSpacer, EuiHighlight } from '@elastic/eui'; +import { EuiText, EuiLink, EuiSpacer, EuiHighlight, useEuiTheme } from '@elastic/eui'; import { RedirectAppLinks } from '@kbn/shared-ux-link-redirect-app'; +import { FavoriteButton } from '@kbn/content-management-favorites-public'; import { UserContentCommonSchema } from '@kbn/content-management-table-list-view-common'; +import { css } from '@emotion/react'; import type { Tag } from '../types'; import { useServices } from '../services'; @@ -25,6 +27,7 @@ interface Props extends InheritedProps { item: T; searchTerm?: string; onClickTag: (tag: Tag, isCtrlKey: boolean) => void; + isFavoritesEnabled?: boolean; } /** @@ -41,7 +44,9 @@ export function ItemDetails({ getDetailViewLink, getOnClickTitle, onClickTag, + isFavoritesEnabled, }: Props) { + const { euiTheme } = useEuiTheme(); const { references, attributes: { title, description }, @@ -90,9 +95,19 @@ export function ItemDetails({ {title} + {isFavoritesEnabled && ( + + )} ); }, [ + euiTheme, getDetailViewLink, getOnClickTitle, id, @@ -101,6 +116,7 @@ export function ItemDetails({ redirectAppLinksCoreStart, searchTerm, title, + isFavoritesEnabled, ]); const hasTags = itemHasTags(references); diff --git a/packages/content-management/table_list_view_table/src/components/tabbed_filter.tsx b/packages/content-management/table_list_view_table/src/components/tabbed_filter.tsx new file mode 100644 index 0000000000000..b87041e768c03 --- /dev/null +++ b/packages/content-management/table_list_view_table/src/components/tabbed_filter.tsx @@ -0,0 +1,52 @@ +/* + * 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 { EuiTab, EuiTabs, EuiSpacer } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; + +interface TabbedTableFilterProps { + onSelectedTabChanged: (tabId: 'all' | 'favorite') => void; + selectedTabId: 'all' | 'favorite'; +} + +export const TabbedTableFilter = (props: TabbedTableFilterProps) => { + return ( + <> + + props.onSelectedTabChanged('all')} + isSelected={props.selectedTabId === 'all'} + data-test-subj="allTab" + > + + + props.onSelectedTabChanged('favorite')} + isSelected={props.selectedTabId === 'favorite'} + data-test-subj="favoriteTab" + > + + + + + + ); +}; diff --git a/packages/content-management/table_list_view_table/src/components/table.tsx b/packages/content-management/table_list_view_table/src/components/table.tsx index 1c3cedbc8045e..54225a344810b 100644 --- a/packages/content-management/table_list_view_table/src/components/table.tsx +++ b/packages/content-management/table_list_view_table/src/components/table.tsx @@ -18,9 +18,15 @@ import { Query, Search, type EuiTableSelectionType, + useEuiTheme, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import type { UserContentCommonSchema } from '@kbn/content-management-table-list-view-common'; +import { + cssFavoriteHoverWithinEuiTableRow, + useFavorites, + FavoritesEmptyState, +} from '@kbn/content-management-favorites-public'; import { useServices } from '../services'; import type { Action } from '../actions'; @@ -39,6 +45,7 @@ import { UserFilterContextProvider, NULL_USER as USER_FILTER_NULL_USER, } from './user_filter_panel'; +import { TabbedTableFilter } from './tabbed_filter'; type State = Pick< TableListViewState, @@ -68,6 +75,7 @@ interface Props extends State, TagManageme onTableSearchChange: (arg: { query: Query | null; queryText: string }) => void; clearTagSelection: () => void; createdByEnabled: boolean; + favoritesEnabled: boolean; } export function Table({ @@ -97,7 +105,9 @@ export function Table({ addOrRemoveIncludeTagFilter, clearTagSelection, createdByEnabled, + favoritesEnabled, }: Props) { + const euiTheme = useEuiTheme(); const { getTagList, isTaggingEnabled } = useServices(); const renderToolsLeft = useCallback(() => { @@ -221,7 +231,15 @@ export function Table({ }; }, [onTableSearchChange, renderCreateButton, renderToolsLeft, searchFilters, searchQuery.query]); - const noItemsMessage = ( + const hasQueryOrFilters = Boolean(searchQuery.text || tableFilter.createdBy.length > 0); + + const noItemsMessage = tableFilter.favorites ? ( + + ) : ( ({ /> ); + const { data: favorites, isError: favoritesError } = useFavorites({ enabled: favoritesEnabled }); + const visibleItems = React.useMemo(() => { + let filteredItems = items; + if (tableFilter?.createdBy?.length > 0) { - return items.filter((item) => { + filteredItems = items.filter((item) => { if (item.createdBy) return tableFilter.createdBy.includes(item.createdBy); else if (item.managed) return false; else return tableFilter.createdBy.includes(USER_FILTER_NULL_USER); }); } - return items; - }, [items, tableFilter]); + if (tableFilter?.favorites && !favoritesError) { + if (!favorites) { + filteredItems = []; + } else { + filteredItems = filteredItems.filter((item) => favorites.favoriteIds.includes(item.id)); + } + } + + return filteredItems; + }, [items, tableFilter, favorites, favoritesError]); const { allUsers, showNoUserOption } = useMemo(() => { if (!createdByEnabled) return { allUsers: [], showNoUserOption: false }; @@ -262,6 +292,16 @@ export function Table({ ? true // by passing "true" we disable the EuiInMemoryTable sorting and handle it ourselves, but sorting is still enabled : { sort: tableSort }; + const favoritesFilter = + favoritesEnabled && !favoritesError ? ( + { + onFilterChange({ favorites: newTab === 'favorite' }); + }} + /> + ) : undefined; + return ( ({ data-test-subj="itemsInMemTable" rowHeader="attributes.title" tableCaption={tableCaption} + css={cssFavoriteHoverWithinEuiTableRow(euiTheme.euiTheme)} + childrenBetween={favoritesFilter} /> diff --git a/packages/content-management/table_list_view_table/src/mocks.tsx b/packages/content-management/table_list_view_table/src/mocks.tsx index f76954fd497a2..268ec33625149 100644 --- a/packages/content-management/table_list_view_table/src/mocks.tsx +++ b/packages/content-management/table_list_view_table/src/mocks.tsx @@ -72,6 +72,7 @@ export const getStoryServices = (params: Params, action: ActionFn = () => {}) => getTagManagementUrl: () => '', getTagIdsFromReferences: () => [], isTaggingEnabled: () => true, + isFavoritesEnabled: () => false, ...params, }; diff --git a/packages/content-management/table_list_view_table/src/services.tsx b/packages/content-management/table_list_view_table/src/services.tsx index 5275dd35069cd..b452bf916a525 100644 --- a/packages/content-management/table_list_view_table/src/services.tsx +++ b/packages/content-management/table_list_view_table/src/services.tsx @@ -14,6 +14,10 @@ import { ContentEditorKibanaProvider, type SavedObjectsReference, } from '@kbn/content-management-content-editor'; +import { + ContentInsightsClientPublic, + ContentInsightsProvider, +} from '@kbn/content-management-content-insights-public'; import type { AnalyticsServiceStart } from '@kbn/core-analytics-browser'; import type { I18nStart } from '@kbn/core-i18n-browser'; import type { MountPoint, OverlayRef } from '@kbn/core-mount-utils-browser'; @@ -24,6 +28,10 @@ import type { FormattedRelative } from '@kbn/i18n-react'; import { toMountPoint } from '@kbn/react-kibana-mount'; import { RedirectAppLinksKibanaProvider } from '@kbn/shared-ux-link-redirect-app'; import { UserProfilesKibanaProvider } from '@kbn/content-management-user-profiles'; +import { + FavoritesClientPublic, + FavoritesContextProvider, +} from '@kbn/content-management-favorites-public'; import { TAG_MANAGEMENT_APP_URL } from './constants'; import type { Tag } from './types'; @@ -63,6 +71,8 @@ export interface Services { TagList: FC; /** Predicate to indicate if tagging features is enabled */ isTaggingEnabled: () => boolean; + /** Predicate to indicate if favorites features is enabled */ + isFavoritesEnabled: () => boolean; /** Predicate function to indicate if some of the saved object references are tags */ itemHasTags: (references: SavedObjectsReference[]) => boolean; /** Handler to return the url to navigate to the kibana tags management */ @@ -163,6 +173,16 @@ export interface TableListViewKibanaDependencies { }; /** The component from the @kbn/i18n-react package */ FormattedRelative: typeof FormattedRelative; + + /** + * The favorites client to enable the favorites feature. + */ + favorites?: FavoritesClientPublic; + + /** + * Content insights client to enable content insights features. + */ + contentInsightsClient?: ContentInsightsClientPublic; } /** @@ -229,29 +249,42 @@ export const TableListViewKibanaProvider: FC< - - application.getUrlForApp('management', { - path: `/kibana/settings?query=savedObjects:listingLimit`, - }) - } - notifyError={(title, text) => { - notifications.toasts.addDanger({ title: toMountPoint(title, startServices), text }); - }} - searchQueryParser={searchQueryParser} - DateFormatterComp={(props) => } - currentAppId$={application.currentAppId$} - navigateToUrl={application.navigateToUrl} - isTaggingEnabled={() => Boolean(savedObjectsTagging)} - getTagList={getTagList} - TagList={TagList} - itemHasTags={itemHasTags} - getTagIdsFromReferences={getTagIdsFromReferences} - getTagManagementUrl={() => core.http.basePath.prepend(TAG_MANAGEMENT_APP_URL)} - > - {children} - + + { + notifications.toasts.addDanger({ title: toMountPoint(title, startServices), text }); + }} + > + + application.getUrlForApp('management', { + path: `/kibana/settings?query=savedObjects:listingLimit`, + }) + } + notifyError={(title, text) => { + notifications.toasts.addDanger({ + title: toMountPoint(title, startServices), + text, + }); + }} + searchQueryParser={searchQueryParser} + DateFormatterComp={(props) => } + currentAppId$={application.currentAppId$} + navigateToUrl={application.navigateToUrl} + isTaggingEnabled={() => Boolean(savedObjectsTagging)} + isFavoritesEnabled={() => Boolean(services.favorites)} + getTagList={getTagList} + TagList={TagList} + itemHasTags={itemHasTags} + getTagIdsFromReferences={getTagIdsFromReferences} + getTagManagementUrl={() => core.http.basePath.prepend(TAG_MANAGEMENT_APP_URL)} + > + {children} + + + diff --git a/packages/content-management/table_list_view_table/src/table_list_view.test.tsx b/packages/content-management/table_list_view_table/src/table_list_view.test.tsx index e56322099d5ff..f7ad968d78965 100644 --- a/packages/content-management/table_list_view_table/src/table_list_view.test.tsx +++ b/packages/content-management/table_list_view_table/src/table_list_view.test.tsx @@ -1052,7 +1052,7 @@ describe('TableListView', () => { }); describe('search', () => { - const updatedAt = new Date('2023-07-15').toISOString(); + const updatedAt = moment('2023-07-15').toISOString(); const hits: UserContentCommonSchema[] = [ { @@ -1146,7 +1146,7 @@ describe('TableListView', () => { { id: 'item-from-search', type: 'dashboard', - updatedAt: new Date('2023-07-01').toISOString(), + updatedAt: moment('2023-07-01').toISOString(), attributes: { title: 'Item from search', }, diff --git a/packages/content-management/table_list_view_table/src/table_list_view_table.tsx b/packages/content-management/table_list_view_table/src/table_list_view_table.tsx index 888e0a312d049..c15462f88b585 100644 --- a/packages/content-management/table_list_view_table/src/table_list_view_table.tsx +++ b/packages/content-management/table_list_view_table/src/table_list_view_table.tsx @@ -38,6 +38,10 @@ import type { } from '@kbn/content-management-content-editor'; import type { UserContentCommonSchema } from '@kbn/content-management-table-list-view-common'; import type { RecentlyAccessed } from '@kbn/recently-accessed'; +import { + ContentInsightsProvider, + useContentInsightsServices, +} from '@kbn/content-management-content-insights-public'; import { Table, @@ -54,12 +58,10 @@ import { useTags } from './use_tags'; import { useInRouterContext, useUrlState } from './use_url_state'; import { RowActions, TableItemsRowActions } from './types'; import { sortByRecentlyAccessed } from './components/table_sort_select'; +import { ContentEditorActivityRow } from './components/content_editor_activity_row'; interface ContentEditorConfig - extends Pick< - OpenContentEditorParams, - 'isReadonly' | 'onSave' | 'customValidators' | 'showActivityView' - > { + extends Pick { enabled?: boolean; } @@ -157,6 +159,7 @@ export interface State { stateFromURL.filter = { createdBy: [] }; } + if (sanitizedParams.favorites === 'true') { + stateFromURL.filter.favorites = true; + } else { + stateFromURL.filter.favorites = false; + } + return stateFromURL; }; @@ -248,7 +259,7 @@ const urlStateDeserializer = (params: URLQueryParams): URLState => { const urlStateSerializer = (updated: { s?: string; sort?: { field: 'title' | 'updatedAt'; direction: Direction }; - filter?: { createdBy?: string[] }; + filter?: { createdBy?: string[]; favorites?: boolean }; }) => { const updatedQueryParams: Partial = {}; @@ -271,6 +282,10 @@ const urlStateSerializer = (updated: { updatedQueryParams.created_by = updated.filter.createdBy; } + if (updated?.filter && 'favorites' in updated.filter) { + updatedQueryParams.favorites = updated.filter.favorites ? 'true' : undefined; + } + return updatedQueryParams; }; @@ -354,9 +369,11 @@ function TableListViewTableComp({ notifyError, DateFormatterComp, getTagList, + isFavoritesEnabled, } = useServices(); const openContentEditor = useOpenContentEditor(); + const contentInsightsServices = useContentInsightsServices(); const isInRouterContext = useInRouterContext(); @@ -400,6 +417,7 @@ function TableListViewTableComp({ sortColumnChanged: !initialSort.isDefault, tableFilter: { createdBy: [], + favorites: false, }, }; }, [initialPageSize, entityName, recentlyAccessed]); @@ -552,6 +570,12 @@ function TableListViewTableComp({ close(); }), + appendRows: contentInsightsServices && ( + // have to "REWRAP" in the provider here because it will be rendered in a different context + + + + ), }); }, [ @@ -561,6 +585,7 @@ function TableListViewTableComp({ contentEditor, tableItemsRowActions, fetchItems, + contentInsightsServices, ] ); @@ -589,6 +614,7 @@ function TableListViewTableComp({ } }} searchTerm={searchQuery.text} + isFavoritesEnabled={isFavoritesEnabled()} /> ); }, @@ -697,7 +723,7 @@ function TableListViewTableComp({ name: i18n.translate('contentManagement.tableList.listing.table.actionTitle', { defaultMessage: 'Actions', }), - width: `${32 * actions.length}px`, + width: `72px`, actions, }); } @@ -721,6 +747,7 @@ function TableListViewTableComp({ tableItemsRowActions, inspectItem, entityName, + isFavoritesEnabled, ]); const itemsById = useMemo(() => { @@ -1041,6 +1068,7 @@ function TableListViewTableComp({ data: { filter: { createdBy: filter.createdBy ?? [], + favorites: filter.favorites ?? false, }, }, }); @@ -1150,6 +1178,7 @@ function TableListViewTableComp({ addOrRemoveExcludeTagFilter={addOrRemoveExcludeTagFilter} clearTagSelection={clearTagSelection} createdByEnabled={createdByEnabled} + favoritesEnabled={isFavoritesEnabled()} /> {/* Delete modal */} diff --git a/packages/content-management/table_list_view_table/tsconfig.json b/packages/content-management/table_list_view_table/tsconfig.json index b8add47c2bfb9..a5530ee717e49 100644 --- a/packages/content-management/table_list_view_table/tsconfig.json +++ b/packages/content-management/table_list_view_table/tsconfig.json @@ -35,7 +35,9 @@ "@kbn/core-user-profile-browser", "@kbn/react-kibana-mount", "@kbn/content-management-user-profiles", - "@kbn/recently-accessed" + "@kbn/recently-accessed", + "@kbn/content-management-content-insights-public", + "@kbn/content-management-favorites-public" ], "exclude": [ "target/**/*" diff --git a/packages/core/application/core-application-browser-internal/integration_tests/application_service.test.tsx b/packages/core/application/core-application-browser-internal/integration_tests/application_service.test.tsx index d04157efb6476..fda23142288ca 100644 --- a/packages/core/application/core-application-browser-internal/integration_tests/application_service.test.tsx +++ b/packages/core/application/core-application-browser-internal/integration_tests/application_service.test.tsx @@ -159,7 +159,7 @@ describe('ApplicationService', () => { await act(async () => { await navigateToApp('app1'); - update(); + await update(); }); expect(currentAppIds).toEqual(['app1']); @@ -195,15 +195,15 @@ describe('ApplicationService', () => { await act(async () => { await navigateToApp('app1'); - update(); + await update(); }); await act(async () => { await navigateToApp('app2', { path: '/nested' }); - update(); + await update(); }); await act(async () => { await navigateToApp('app2', { path: '/another-path' }); - update(); + await update(); }); expect(locations).toEqual(['/', '/app/app1', '/app/app2/nested', '/app/app2/another-path']); @@ -625,9 +625,14 @@ describe('ApplicationService', () => { title: 'App1', mount: async ({ setHeaderActionMenu }: AppMountParameters) => { setHeaderActionMenu(mounter1); - promise.then(() => { - setHeaderActionMenu(mounter2); - }); + promise + .then(() => { + setHeaderActionMenu(mounter2); + }) + .catch((error) => { + // eslint-disable-next-line no-console + console.error('Error:', error); + }); return () => undefined; }, }); @@ -663,9 +668,14 @@ describe('ApplicationService', () => { title: 'App1', mount: async ({ setHeaderActionMenu }: AppMountParameters) => { setHeaderActionMenu(mounter1); - promise.then(() => { - setHeaderActionMenu(undefined); - }); + promise + .then(() => { + setHeaderActionMenu(undefined); + }) + .catch((error) => { + // eslint-disable-next-line no-console + console.error('Error:', error); + }); return () => undefined; }, }); diff --git a/packages/core/application/core-application-browser-internal/src/application_service.test.ts b/packages/core/application/core-application-browser-internal/src/application_service.test.ts index 073ce6099830e..89b34876e50c9 100644 --- a/packages/core/application/core-application-browser-internal/src/application_service.test.ts +++ b/packages/core/application/core-application-browser-internal/src/application_service.test.ts @@ -98,7 +98,9 @@ describe('#setup()', () => { await service.start(startDeps); expect(() => register(Symbol(), createApp({ id: 'app1' })) - ).toThrowErrorMatchingInlineSnapshot(`"Applications cannot be registered after \\"setup\\""`); + ).toThrowErrorMatchingInlineSnapshot( + `"Applications cannot be registered after \\"setup\\" (attempted to register \\"app1\\")"` + ); }); it('allows to register an AppUpdater for the application', async () => { diff --git a/packages/core/application/core-application-browser-internal/src/application_service.tsx b/packages/core/application/core-application-browser-internal/src/application_service.tsx index b30f4ce650730..0b1f0f3ec6431 100644 --- a/packages/core/application/core-application-browser-internal/src/application_service.tsx +++ b/packages/core/application/core-application-browser-internal/src/application_service.tsx @@ -182,7 +182,9 @@ export class ApplicationService { const validateApp = (app: App) => { if (this.registrationClosed) { - throw new Error(`Applications cannot be registered after "setup"`); + throw new Error( + `Applications cannot be registered after "setup" (attempted to register "${app.id}")` + ); } else if (!applicationIdRegexp.test(app.id)) { throw new Error( `Invalid application id: it can only be composed of alphanum chars, '-' and '_'` diff --git a/packages/core/apps/core-apps-server-internal/src/core_app.ts b/packages/core/apps/core-apps-server-internal/src/core_app.ts index e9676c792292a..5ee8fe4938a44 100644 --- a/packages/core/apps/core-apps-server-internal/src/core_app.ts +++ b/packages/core/apps/core-apps-server-internal/src/core_app.ts @@ -29,13 +29,13 @@ import type { import type { InternalStaticAssets } from '@kbn/core-http-server-internal'; import { combineLatest, - concatMap, firstValueFrom, map, type Observable, ReplaySubject, shareReplay, Subject, + switchMap, takeUntil, timer, } from 'rxjs'; @@ -238,7 +238,7 @@ export class CoreAppsService { // Poll for updates combineLatest([savedObjectsClient$, timer(0, 10_000)]) .pipe( - concatMap(async ([soClient]) => { + switchMap(async ([soClient]) => { try { const persistedOverrides = await soClient.get>( DYNAMIC_CONFIG_OVERRIDES_SO_TYPE, @@ -300,7 +300,10 @@ export class CoreAppsService { await soClient.create(DYNAMIC_CONFIG_OVERRIDES_SO_TYPE, newGlobalOverrides, { id: DYNAMIC_CONFIG_OVERRIDES_SO_ID, overwrite: true, + refresh: false, }); + // set it again in memory in case the timer polling the SO for updates has overridden it during this update. + this.configService.setDynamicConfigOverrides(req.body); } catch (err) { if (err instanceof ValidationError) { return res.badRequest({ body: err }); diff --git a/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.tsx b/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.tsx index 5f9a17713861c..0b7f0e8afd958 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.tsx +++ b/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.tsx @@ -180,14 +180,24 @@ export class ChromeService { if (isDev) { setEuiDevProviderWarning((providerError) => { const errorObject = new Error(providerError.toString()); - // show a stack trace in the console + // 1. show a stack trace in the console // eslint-disable-next-line no-console console.error(errorObject); + // 2. store error in sessionStorage so it can be detected in testing + const storedError = { + message: providerError.toString(), + stack: errorObject.stack ?? 'undefined', + pageHref: window.location.href, + pageTitle: document.title, + }; + sessionStorage.setItem('dev.euiProviderWarning', JSON.stringify(storedError)); + + // 3. error toast / popup notifications.toasts.addDanger({ title: '`EuiProvider` is missing', text: mountReactNode( -

+

), + 'data-test-subj': 'core-chrome-euiDevProviderWarning-toast', toastLifeTimeMs: 60 * 60 * 1000, // keep message visible for up to an hour }); }); diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/breadcrumbs.tsx b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/breadcrumbs.tsx index fb1043d239523..ac80702ab99ec 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/breadcrumbs.tsx +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/breadcrumbs.tsx @@ -144,6 +144,7 @@ function buildRootCrumb({ color="text" iconType="gear" data-test-subj="manageDeploymentBtn" + size="s" > {i18n.translate('core.ui.primaryNav.cloud.breadCrumbDropdown.manageDeploymentLabel', { defaultMessage: 'Manage this deployment', @@ -157,6 +158,7 @@ function buildRootCrumb({ color="text" iconType="spaces" data-test-subj="viewDeploymentsBtn" + size="s" > {cloudLinks.deployments.title} @@ -164,9 +166,9 @@ function buildRootCrumb({ ), popoverProps: { - panelPaddingSize: 'm', + panelPaddingSize: 's', zIndex: 6000, - panelStyle: { width: 260 }, + panelStyle: { maxWidth: 240 }, panelProps: { 'data-test-subj': 'deploymentLinksPanel', }, diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.ts b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.ts index 0a1292be9b3f1..0c40edfc26292 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.ts @@ -20,6 +20,7 @@ import type { } from '@kbn/core-chrome-browser'; import type { InternalHttpStart } from '@kbn/core-http-browser-internal'; import { + Subject, BehaviorSubject, combineLatest, map, @@ -32,6 +33,7 @@ import { of, type Observable, type Subscription, + timer, } from 'rxjs'; import { type Location, createLocation } from 'history'; import deepEqual from 'react-fast-compare'; @@ -326,20 +328,50 @@ export class ProjectNavigationService { } const { sideNavComponent, homePage = '' } = definition; - const homePageLink = this.navLinksService?.get(homePage); if (sideNavComponent) { this.setSideNavComponent(sideNavComponent); } - if (homePageLink) { - this.setProjectHome(homePageLink.href); - } + this.waitForLink(homePage, (navLink: ChromeNavLink) => { + this.setProjectHome(navLink.href); + }); this.initNavigation(nextId, definition.navigationTree$); }); } + /** + * This method waits for the chrome nav link to be available and then calls the callback. + * This is necessary to avoid race conditions when we register the solution navigation + * before the deep links are available (plugins can register them later). + * + * @param linkId The chrome nav link id + * @param cb The callback to call when the link is found + * @returns + */ + private waitForLink(linkId: string, cb: (chromeNavLink: ChromeNavLink) => undefined): void { + if (!this.navLinksService) return; + + let navLink: ChromeNavLink | undefined = this.navLinksService.get(linkId); + if (navLink) { + cb(navLink); + return; + } + + const stop$ = new Subject(); + const tenSeconds = timer(10000); + + this.deepLinksMap$.pipe(takeUntil(tenSeconds), takeUntil(stop$)).subscribe((navLinks) => { + navLink = navLinks[linkId]; + + if (navLink) { + cb(navLink); + stop$.next(); + } + }); + } + private setProjectHome(homeHref: string) { this.projectHome$.next(homeHref); } diff --git a/packages/core/chrome/core-chrome-browser-internal/src/ui/header/collapsible_nav.scss b/packages/core/chrome/core-chrome-browser-internal/src/ui/header/collapsible_nav.scss index a121ac4c02b25..1086e30ebec0e 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/ui/header/collapsible_nav.scss +++ b/packages/core/chrome/core-chrome-browser-internal/src/ui/header/collapsible_nav.scss @@ -7,9 +7,9 @@ $screenHeightBreakpoint: $euiSize * 15; } .kbnCollapsibleNav__recentsListGroup { - @include euiYScroll; max-height: $euiSize * 10; margin-right: -$euiSizeS; + @include euiYScroll; } .kbnCollapsibleNav__solutions { diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/client_config.test.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/client_config.test.ts index de0702b62aa66..078287a9cb151 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/client_config.test.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/client_config.test.ts @@ -80,7 +80,7 @@ describe('parseClientOptions', () => { it('`customHeaders` take precedence to default kibana headers', () => { const customHeader: Record = {}; for (const header in defaultHeaders) { - if (defaultHeaders.hasOwnProperty(header)) { + if (Object.hasOwn(defaultHeaders, header)) { customHeader[header] = 'foo'; } } diff --git a/packages/core/plugins/core-plugins-server-internal/src/create_browser_config.test.ts b/packages/core/plugins/core-plugins-server-internal/src/create_browser_config.test.ts index 11f55d1bc1edb..41da3f1ce2cef 100644 --- a/packages/core/plugins/core-plugins-server-internal/src/create_browser_config.test.ts +++ b/packages/core/plugins/core-plugins-server-internal/src/create_browser_config.test.ts @@ -69,7 +69,7 @@ describe('createBrowserConfig', () => { exposedConfigKeys: { exposed1: 'string', 'nested.exposed2': 'boolean', - 'nested.exposed3': 'number', + 'nested.exposed3': 'number?', // notExposed4 is not present }, }); @@ -182,7 +182,7 @@ describe('createBrowserConfig', () => { exposedConfigKeys: { exposed1: 'string', 'deeply.exposed2': 'boolean', - 'deeply.nested.exposed3': 'number', + 'deeply.nested.exposed3': 'number?', 'deeply.nested.structure.exposed4': 'string', // notExposed5, notExposed6, notExposed7, and notExposed8 are not present }, diff --git a/packages/core/plugins/core-plugins-server-internal/src/plugins_service.test.ts b/packages/core/plugins/core-plugins-server-internal/src/plugins_service.test.ts index 076245a07b758..3320fe22d7d62 100644 --- a/packages/core/plugins/core-plugins-server-internal/src/plugins_service.test.ts +++ b/packages/core/plugins/core-plugins-server-internal/src/plugins_service.test.ts @@ -1046,7 +1046,7 @@ describe('PluginsService', () => { const prebootUIConfig$ = preboot.uiPlugins.browserConfigs.get('plugin-with-expose-preboot')!; await expect(prebootUIConfig$.pipe(take(1)).toPromise()).resolves.toEqual({ browserConfig: { sharedProp: 'sharedProp default value plugin-with-expose-preboot' }, - exposedConfigKeys: { sharedProp: 'string' }, + exposedConfigKeys: { sharedProp: 'string?' }, }); const standardUIConfig$ = standard.uiPlugins.browserConfigs.get( @@ -1054,7 +1054,7 @@ describe('PluginsService', () => { )!; await expect(standardUIConfig$.pipe(take(1)).toPromise()).resolves.toEqual({ browserConfig: { sharedProp: 'sharedProp default value plugin-with-expose-standard' }, - exposedConfigKeys: { sharedProp: 'string' }, + exposedConfigKeys: { sharedProp: 'string?' }, }); }); diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_active_mappings.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_active_mappings.ts index 5525814c07238..5fabc74d118d7 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_active_mappings.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_active_mappings.ts @@ -106,7 +106,7 @@ function validateAndMerge( if (k.startsWith('_')) { throw new Error(`Invalid mapping "${k}". Mappings cannot start with _.`); } - if (dest.hasOwnProperty(k)) { + if (Object.hasOwn(dest, k)) { throw new Error(`Cannot redefine core mapping "${k}".`); } }); diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_index_map.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_index_map.ts index 225b3bb422925..125eec08e52b3 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_index_map.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_index_map.ts @@ -32,7 +32,7 @@ export function createIndexMap({ kibanaIndexName, registry, indexMap }: CreateIn const script = typeDef?.convertToAliasScript; // Defaults to kibanaIndexName if indexPattern isn't defined const indexPattern = typeDef?.indexPattern || kibanaIndexName; - if (!map.hasOwnProperty(indexPattern as string)) { + if (!Object.hasOwn(map, indexPattern as string)) { map[indexPattern] = { typeMappings: {} }; } map[indexPattern].typeMappings[type] = indexMap[type]; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_types_mappings.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_types_mappings.ts index 18aa689149c24..d5845c278273e 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_types_mappings.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/build_types_mappings.ts @@ -16,7 +16,7 @@ export const buildTypesMappings = ( types: SavedObjectsType[] ): SavedObjectsTypeMappingDefinitions => { return types.reduce((acc, { name: type, mappings }) => { - const duplicate = acc.hasOwnProperty(type); + const duplicate = Object.hasOwn(acc, type); if (duplicate) { throw new Error(`Type ${type} is already defined.`); } diff --git a/packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts b/packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts index 80ba357009530..0dfc9d2ea05e2 100644 --- a/packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts +++ b/packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts @@ -9,6 +9,7 @@ import type { PropertyName as EsPropertyName, MappingProperty as EsMappingProperty, + MappingPropertyBase as EsMappingPropertyBase, } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; /** @@ -64,19 +65,20 @@ export interface SavedObjectsMappingProperties { * * @public */ -export type SavedObjectsFieldMapping = EsMappingProperty & { - /** - * The dynamic property of the mapping, either `false` or `'strict'`. If - * unspecified `dynamic: 'strict'` will be inherited from the top-level - * index mappings. - * - * Note: To limit the number of mapping fields Saved Object types should - * *never* use `dynamic: true`. - */ - dynamic?: false | 'strict'; - /** - * Some mapping types do not accept the `properties` attributes. Explicitly adding it as optional to our type - * to avoid type failures on all code using accessing them via `SavedObjectsFieldMapping.properties`. - */ - properties?: Record; -}; +export type SavedObjectsFieldMapping = EsMappingProperty & + EsMappingPropertyBase & { + /** + * The dynamic property of the mapping, either `false` or `'strict'`. If + * unspecified `dynamic: 'strict'` will be inherited from the top-level + * index mappings. + * + * Note: To limit the number of mapping fields Saved Object types should + * *never* use `dynamic: true`. + */ + dynamic?: false | 'strict'; + /** + * Some mapping types do not accept the `properties` attributes. Explicitly adding it as optional to our type + * to avoid type failures on all code using accessing them via `SavedObjectsFieldMapping.properties`. + */ + properties?: Record; + }; diff --git a/packages/core/test-helpers/core-test-helpers-kbn-server/src/create_serverless_root.ts b/packages/core/test-helpers/core-test-helpers-kbn-server/src/create_serverless_root.ts index 4dd1486589dbe..e024d3320f8c4 100644 --- a/packages/core/test-helpers/core-test-helpers-kbn-server/src/create_serverless_root.ts +++ b/packages/core/test-helpers/core-test-helpers-kbn-server/src/create_serverless_root.ts @@ -14,6 +14,8 @@ import { REPO_ROOT } from '@kbn/repo-info'; import { ToolingLog } from '@kbn/tooling-log'; import { esTestConfig } from '@kbn/test'; import { CliArgs } from '@kbn/config'; +import { kibanaDevServiceAccount } from '@kbn/dev-utils'; +import { systemIndicesSuperuser } from '@kbn/test'; import { createRoot, type TestElasticsearchUtils, type TestKibanaUtils } from './create_root'; export type TestServerlessESUtils = Pick & { @@ -27,7 +29,6 @@ export interface TestServerlessUtils { } const ES_BASE_PATH_DIR = Path.join(REPO_ROOT, '.es/es_test_serverless'); - const projectType: ServerlessProjectType = 'es'; /** @@ -97,8 +98,6 @@ function createServerlessES() { kill: true, waitForReady: true, ...esServerlessImageParams, - // security is enabled by default, if needed kibana requires serviceAccountToken - esArgs: ['xpack.security.enabled=false'], }); const client = getServerlessESClient({ port: esPort }); @@ -116,6 +115,7 @@ const getServerlessESClient = ({ port }: { port: number }) => { return new Client({ node: `http://localhost:${port}`, Connection: HttpConnection, + auth: { ...systemIndicesSuperuser }, }); }; @@ -130,6 +130,7 @@ const getServerlessDefault = () => { }, elasticsearch: { hosts: [`http://localhost:${esTestConfig.getPort()}`], + serviceAccountToken: kibanaDevServiceAccount.token, }, migrations: { algorithm: 'zdt', diff --git a/packages/core/test-helpers/core-test-helpers-kbn-server/tsconfig.json b/packages/core/test-helpers/core-test-helpers-kbn-server/tsconfig.json index 8afae2b7d74c3..85d14bb04ab59 100644 --- a/packages/core/test-helpers/core-test-helpers-kbn-server/tsconfig.json +++ b/packages/core/test-helpers/core-test-helpers-kbn-server/tsconfig.json @@ -19,6 +19,7 @@ "@kbn/repo-info", "@kbn/repo-packages", "@kbn/es", + "@kbn/dev-utils", ], "exclude": [ "target/**/*", diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/base_ui_settings_client.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/base_ui_settings_client.ts index 04da5a75788ec..b82b1343b4688 100644 --- a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/base_ui_settings_client.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/base_ui_settings_client.ts @@ -66,7 +66,7 @@ export abstract class BaseUiSettingsClient implements IUiSettingsClient { } isOverridden(key: string) { - return this.overrides.hasOwnProperty(key); + return Object.hasOwn(this.overrides, key); } isSensitive(key: string): boolean { diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_client_common.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_client_common.ts index c923feaf9da92..e7b0db9e2394a 100644 --- a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_client_common.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_client_common.ts @@ -93,7 +93,7 @@ export abstract class UiSettingsClientCommon extends BaseUiSettingsClient { } private assertUpdateAllowed(key: string) { - if (this.overrides.hasOwnProperty(key)) { + if (Object.hasOwn(this.overrides, key)) { throw new CannotOverrideError(`Unable to update "${key}" because it is overridden`); } } @@ -113,7 +113,7 @@ export abstract class UiSettingsClientCommon extends BaseUiSettingsClient { // validate value read from saved objects as it can be changed via SO API const filteredValues: UserProvided = {}; for (const [key, userValue] of Object.entries(values)) { - if (userValue === null || this.overrides.hasOwnProperty(key)) continue; + if (userValue === null || Object.hasOwn(this.overrides, key)) continue; try { this.validateKey(key, userValue); filteredValues[key] = { diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.ts index 02dfd1562c3b3..cfd12e2432835 100644 --- a/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.ts @@ -94,7 +94,7 @@ export class UiSettingsService registerInternalRoutes(router); // Register public routes by default unless the publicApiEnabled config setting is set to false - if (!config.hasOwnProperty('publicApiEnabled') || config.publicApiEnabled === true) { + if (!Object.hasOwn(config, 'publicApiEnabled') || config.publicApiEnabled === true) { registerRoutes(router); } diff --git a/packages/deeplinks/observability/locators/dataset_quality.ts b/packages/deeplinks/observability/locators/dataset_quality.ts index e30648e3f129c..9e04e10e9933e 100644 --- a/packages/deeplinks/observability/locators/dataset_quality.ts +++ b/packages/deeplinks/observability/locators/dataset_quality.ts @@ -23,14 +23,6 @@ type TimeRangeConfig = { refresh: RefreshInterval; }; -// eslint-disable-next-line @typescript-eslint/consistent-type-definitions -type DatasetConfig = { - rawName: string; - type: string; - name: string; - namespace: string; -}; - // eslint-disable-next-line @typescript-eslint/consistent-type-definitions type Filters = { timeRange: TimeRangeConfig; @@ -38,7 +30,4 @@ type Filters = { export interface DataQualityLocatorParams extends SerializableRecord { filters?: Filters; - flyout?: { - dataset: DatasetConfig; - }; } diff --git a/packages/deeplinks/observability/locators/dataset_quality_details.ts b/packages/deeplinks/observability/locators/dataset_quality_details.ts new file mode 100644 index 0000000000000..6f51bbbfe7ce3 --- /dev/null +++ b/packages/deeplinks/observability/locators/dataset_quality_details.ts @@ -0,0 +1,43 @@ +/* + * 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 { SerializableRecord } from '@kbn/utility-types'; + +export const DATA_QUALITY_DETAILS_LOCATOR_ID = 'DATA_QUALITY_DETAILS_LOCATOR'; + +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type RefreshInterval = { + pause: boolean; + value: number; +}; + +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type TimeRangeConfig = { + from: string; + to: string; + refresh: RefreshInterval; +}; + +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type DegradedFieldsTable = { + page?: number; + rowsPerPage?: number; + sort?: { + field: string; + direction: 'asc' | 'desc'; + }; +}; + +export interface DataQualityDetailsLocatorParams extends SerializableRecord { + dataStream: string; + timeRange?: TimeRangeConfig; + breakdownField?: string; + degradedFields?: { + table?: DegradedFieldsTable; + }; +} diff --git a/packages/deeplinks/observability/locators/index.ts b/packages/deeplinks/observability/locators/index.ts index 67e79ecb577ea..48902c8f37cf4 100644 --- a/packages/deeplinks/observability/locators/index.ts +++ b/packages/deeplinks/observability/locators/index.ts @@ -7,6 +7,7 @@ */ export * from './dataset_quality'; +export * from './dataset_quality_details'; export * from './logs_explorer'; export * from './observability_logs_explorer'; export * from './observability_onboarding'; diff --git a/packages/kbn-ace/src/ace/modes/x_json/worker/x_json.ace.worker.js b/packages/kbn-ace/src/ace/modes/x_json/worker/x_json.ace.worker.js index c27e96624a8b7..c3720e5546628 100644 --- a/packages/kbn-ace/src/ace/modes/x_json/worker/x_json.ace.worker.js +++ b/packages/kbn-ace/src/ace/modes/x_json/worker/x_json.ace.worker.js @@ -472,9 +472,9 @@ }, this.createAnchor = function(row, column) { return new Anchor(this, row, column) }, this.$split = 0 === "aaa".split(/a/).length ? function(text) { - return text.replace(/\r\n|\r/g, "\n").split("\n") + return text.replace(/\r\n|\r/g, "\n").split("\n"); } : function(text) { - return text.split(/\r\n|\r|\n/) + return text.split(/\r\n|\r|\n/); }, this.$detectNewLine = function(text) { var match = text.match(/^.*?(\r\n|\r|\n)/m); this.$autoNewLine = match ? match[1] : "\n", this._signal("changeNewLineMode") @@ -711,9 +711,9 @@ }, exports.arrayRemove = function(array, value) { for (var i = 0; array.length >= i; i++) value === array[i] && array.splice(i, 1) }, exports.escapeRegExp = function(str) { - return str.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1") + return str.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1"); }, exports.escapeHTML = function(str) { - return str.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/ { running?: boolean | null; viewInAppRelativeUrl?: string; alertDelay?: AlertDelay | null; + flapping?: { + lookBackWindow: number; + statusChangeThreshold: number; + }; } export type SanitizedRule = Omit< diff --git a/packages/kbn-alerts-grouping/index.ts b/packages/kbn-alerts-grouping/index.ts index e9e2476dde7a7..f124e57596191 100644 --- a/packages/kbn-alerts-grouping/index.ts +++ b/packages/kbn-alerts-grouping/index.ts @@ -7,5 +7,9 @@ */ export { AlertsGrouping } from './src/components/alerts_grouping'; -export { type AlertsGroupingProps } from './src/types'; +export { + type AlertsGroupingProps, + type BaseAlertsGroupAggregations, + type AlertsGroupAggregationBucket, +} from './src/types'; export { useAlertsGroupingState } from './src/contexts/alerts_grouping_context'; diff --git a/packages/kbn-alerts-grouping/src/components/alerts_grouping.test.tsx b/packages/kbn-alerts-grouping/src/components/alerts_grouping.test.tsx index 87517def778cd..47e2d5c1b4082 100644 --- a/packages/kbn-alerts-grouping/src/components/alerts_grouping.test.tsx +++ b/packages/kbn-alerts-grouping/src/components/alerts_grouping.test.tsx @@ -158,7 +158,7 @@ describe('AlertsGrouping', () => { }, { range: { - '@timestamp': { + 'kibana.alert.time_range': { gte: mockDate.from, lte: mockDate.to, }, diff --git a/packages/kbn-alerts-grouping/src/components/alerts_grouping.tsx b/packages/kbn-alerts-grouping/src/components/alerts_grouping.tsx index f17d794668371..17a4d35f73e8a 100644 --- a/packages/kbn-alerts-grouping/src/components/alerts_grouping.tsx +++ b/packages/kbn-alerts-grouping/src/components/alerts_grouping.tsx @@ -23,7 +23,7 @@ import { i18n } from '@kbn/i18n'; import { useAlertsDataView } from '@kbn/alerts-ui-shared/src/common/hooks/use_alerts_data_view'; import useLocalStorage from 'react-use/lib/useLocalStorage'; import { AlertsGroupingLevel, AlertsGroupingLevelProps } from './alerts_grouping_level'; -import { AlertsGroupingProps } from '../types'; +import type { AlertsGroupingProps, BaseAlertsGroupAggregations } from '../types'; import { AlertsGroupingContextProvider, useAlertsGroupingState, @@ -40,7 +40,10 @@ const NextLevel = ({ parentGroupingFilter, groupingFilters, getLevel, -}: Pick & { +}: Pick< + AlertsGroupingLevelProps, + 'children' | 'parentGroupingFilter' +> & { level: number; selectedGroups: string[]; groupingFilters: Filter[]; @@ -56,7 +59,9 @@ const NextLevel = ({ return children(nextGroupingFilters)!; }; -const AlertsGroupingInternal = (props: AlertsGroupingProps) => { +const AlertsGroupingInternal = ( + props: AlertsGroupingProps +) => { const { groupingId, services, @@ -194,7 +199,7 @@ const AlertsGroupingInternal = (props: AlertsGroupingProps) => { }; return ( - {...props} getGrouping={getGrouping} groupingLevel={level} @@ -230,6 +235,8 @@ const AlertsGroupingInternal = (props: AlertsGroupingProps) => { return getLevel(0, selectedGroups[0]); }; +const typedMemo: (c: T) => T = memo; + /** * A coordinator component to show multiple alert tables grouped by one or more fields * @@ -243,7 +250,7 @@ const AlertsGroupingInternal = (props: AlertsGroupingProps) => { * * * return ( - * * featureIds={[...]} * globalQuery={{ query: ..., language: 'kql' }} * globalFilters={...} @@ -274,11 +281,25 @@ const AlertsGroupingInternal = (props: AlertsGroupingProps) => { * * ); * ``` + * + * To define your aggregations result type, extend the `BaseAlertsGroupAggregations` type: + * + * ```ts + * import { BaseAlertsGroupAggregations } from '@kbn/alerts-grouping'; + * + * interface YourAggregationsType extends BaseAlertsGroupAggregations { + * // Your custom aggregations here + * } + * ``` + * + * Check {@link useGetAlertsGroupAggregationsQuery} for more info on alerts aggregations. */ -export const AlertsGrouping = memo((props: AlertsGroupingProps) => { - return ( - - - - ); -}); +export const AlertsGrouping = typedMemo( + (props: AlertsGroupingProps) => { + return ( + + + + ); + } +); diff --git a/packages/kbn-alerts-grouping/src/components/alerts_grouping_level.tsx b/packages/kbn-alerts-grouping/src/components/alerts_grouping_level.tsx index e4511e8dea774..c0ebf0e6fa234 100644 --- a/packages/kbn-alerts-grouping/src/components/alerts_grouping_level.tsx +++ b/packages/kbn-alerts-grouping/src/components/alerts_grouping_level.tsx @@ -14,14 +14,16 @@ import { type GroupingAggregation } from '@kbn/grouping'; import { isNoneGroup } from '@kbn/grouping'; import type { DynamicGroupingProps } from '@kbn/grouping/src'; import { parseGroupingQuery } from '@kbn/grouping/src'; +import { ALERT_TIME_RANGE } from '@kbn/rule-data-utils'; import { useGetAlertsGroupAggregationsQuery, UseGetAlertsGroupAggregationsQueryProps, } from '@kbn/alerts-ui-shared'; -import { AlertsGroupingProps } from '../types'; +import { AlertsGroupingProps, BaseAlertsGroupAggregations } from '../types'; -export interface AlertsGroupingLevelProps = {}> - extends AlertsGroupingProps { +export interface AlertsGroupingLevelProps< + T extends BaseAlertsGroupAggregations = BaseAlertsGroupAggregations +> extends AlertsGroupingProps { getGrouping: ( props: Omit, 'groupSelector' | 'pagination'> ) => ReactElement; @@ -40,8 +42,9 @@ const DEFAULT_FILTERS: Filter[] = []; /** * Renders an alerts grouping level */ -export const AlertsGroupingLevel = memo( - = {}>({ +const typedMemo: (c: T) => T = memo; +export const AlertsGroupingLevel = typedMemo( + ({ featureIds, defaultFilters = DEFAULT_FILTERS, from, @@ -92,7 +95,7 @@ export const AlertsGroupingLevel = memo( ...filters, { range: { - '@timestamp': { + [ALERT_TIME_RANGE]: { gte: from, lte: to, }, diff --git a/packages/kbn-alerts-grouping/src/contexts/alerts_grouping_context.tsx b/packages/kbn-alerts-grouping/src/contexts/alerts_grouping_context.tsx index cc5e06e652cd4..2d1315e3ece6d 100644 --- a/packages/kbn-alerts-grouping/src/contexts/alerts_grouping_context.tsx +++ b/packages/kbn-alerts-grouping/src/contexts/alerts_grouping_context.tsx @@ -54,7 +54,6 @@ export const useAlertsGroupingState = (groupingId: string) => { setGroupingState((prevState) => ({ ...prevState, [groupingId]: { - // @ts-expect-error options might not be defined options: [], // @ts-expect-error activeGroups might not be defined activeGroups: initialActiveGroups, diff --git a/packages/kbn-alerts-grouping/src/types.ts b/packages/kbn-alerts-grouping/src/types.ts index 8d226bb74e71f..24239364bb6c2 100644 --- a/packages/kbn-alerts-grouping/src/types.ts +++ b/packages/kbn-alerts-grouping/src/types.ts @@ -22,14 +22,16 @@ import { ReactElement } from 'react'; export interface GroupModel { activeGroups: string[]; - options: Array<{ key: string; label: string }>; + options?: Array<{ key: string; label: string }>; } export interface AlertsGroupingState { [groupingId: string]: GroupModel; } -export interface AlertsGroupingProps = {}> { +export interface AlertsGroupingProps< + T extends BaseAlertsGroupAggregations = BaseAlertsGroupAggregations +> { /** * The leaf component that will be rendered in the grouping panels */ @@ -96,3 +98,26 @@ export interface AlertsGroupingProps = {}> { http: HttpSetup; }; } + +export interface AlertsGroupAggregationBucket { + key: string; + doc_count: number; + isNullGroup?: boolean; + unitsCount?: { + value: number; + }; +} + +export interface BaseAlertsGroupAggregations { + groupByFields: { + doc_count_error_upper_bound: number; + sum_other_doc_count: number; + buckets: AlertsGroupAggregationBucket[]; + }; + groupsCount: { + value: number; + }; + unitsCount: { + value: number; + }; +} diff --git a/packages/kbn-alerts-ui-shared/src/add_message_variables/add_message_variables.scss b/packages/kbn-alerts-ui-shared/src/add_message_variables/add_message_variables.scss index 521d0f399b19b..d53223bd6ad0d 100644 --- a/packages/kbn-alerts-ui-shared/src/add_message_variables/add_message_variables.scss +++ b/packages/kbn-alerts-ui-shared/src/add_message_variables/add_message_variables.scss @@ -1,5 +1,6 @@ .messageVariablesPanel { - @include euiYScrollWithShadows; max-height: $euiSize * 20; max-width: $euiSize * 20; + + @include euiYScrollWithShadows; } \ No newline at end of file diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/create_rule.test.ts b/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/create_rule.test.ts index 8735a9bebca73..e1947f6d8890e 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/create_rule.test.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/create_rule.test.ts @@ -62,6 +62,10 @@ describe('createRule', () => { alert_delay: { active: 10, }, + flapping: { + look_back_window: 10, + status_change_threshold: 10, + }, }; const ruleToCreate: CreateRuleBody = { @@ -109,10 +113,18 @@ describe('createRule', () => { alertDelay: { active: 10, }, + flapping: { + lookBackWindow: 10, + statusChangeThreshold: 10, + }, }; http.post.mockResolvedValueOnce(resolvedValue); const result = await createRule({ http, rule: ruleToCreate as CreateRuleBody }); + expect(http.post).toHaveBeenCalledWith('/api/alerting/rule', { + body: '{"params":{"aggType":"count","termSize":5,"thresholdComparator":">","timeWindowSize":5,"timeWindowUnit":"m","groupBy":"all","threshold":[1000],"index":[".kibana"],"timeField":"alert.executionStatus.lastExecutionDate"},"consumer":"alerts","schedule":{"interval":"1m"},"tags":[],"name":"test","enabled":true,"throttle":null,"notifyWhen":"onActionGroupChange","rule_type_id":".index-threshold","actions":[{"group":"threshold met","id":"83d4d860-9316-11eb-a145-93ab369a4461","params":{"level":"info","message":"Rule \'{{rule.name}}\' is active for group \'{{context.group}}\':\\n\\n- Value: {{context.value}}\\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\\n- Timestamp: {{context.date}}"},"frequency":{"notify_when":"onActionGroupChange","throttle":null,"summary":false}},{"id":".test-system-action","params":{}}],"alert_delay":{"active":10},"flapping":{"look_back_window":10,"status_change_threshold":10}}', + }); + expect(result).toEqual({ actions: [ { @@ -169,6 +181,10 @@ describe('createRule', () => { alertDelay: { active: 10, }, + flapping: { + lookBackWindow: 10, + statusChangeThreshold: 10, + }, }); }); }); diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/transform_create_rule_body.test.ts b/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/transform_create_rule_body.test.ts index 8b41e38d14ec1..7c5c80efa3ee2 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/transform_create_rule_body.test.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/transform_create_rule_body.test.ts @@ -55,6 +55,10 @@ const ruleToCreate: CreateRuleBody = { alertDelay: { active: 10, }, + flapping: { + lookBackWindow: 10, + statusChangeThreshold: 10, + }, }; describe('transformCreateRuleBody', () => { @@ -96,8 +100,11 @@ describe('transformCreateRuleBody', () => { }, { id: '.test-system-action', params: {} }, ], - alert_delay: { active: 10 }, + flapping: { + look_back_window: 10, + status_change_threshold: 10, + }, }); }); }); diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/transform_create_rule_body.ts b/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/transform_create_rule_body.ts index 9baae0267d22f..dd8d5483ef0d7 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/transform_create_rule_body.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/transform_create_rule_body.ts @@ -8,11 +8,26 @@ import { RewriteResponseCase } from '@kbn/actions-types'; import { CreateRuleBody } from './types'; +import { Rule } from '../../types'; + +const transformCreateRuleFlapping = (flapping: Rule['flapping']) => { + if (!flapping) { + return flapping; + } + + return { + flapping: { + look_back_window: flapping.lookBackWindow, + status_change_threshold: flapping.statusChangeThreshold, + }, + }; +}; export const transformCreateRuleBody: RewriteResponseCase = ({ ruleTypeId, actions = [], alertDelay, + flapping, ...res }): any => ({ ...res, @@ -44,4 +59,5 @@ export const transformCreateRuleBody: RewriteResponseCase = ({ }; }), ...(alertDelay ? { alert_delay: alertDelay } : {}), + ...(flapping !== undefined ? transformCreateRuleFlapping(flapping) : {}), }); diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/types.ts b/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/types.ts index e40059d5e6860..1527744ced38c 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/types.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/create_rule/types.ts @@ -20,4 +20,5 @@ export interface CreateRuleBody throttle?: Rule['throttle']; notifyWhen?: Rule['notifyWhen']; alertDelay?: Rule['alertDelay']; + flapping?: Rule['flapping']; } diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/transform_update_rule_body.test.ts b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/transform_update_rule_body.test.ts index c30807884a646..d5efc7b8fd19f 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/transform_update_rule_body.test.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/transform_update_rule_body.test.ts @@ -52,6 +52,10 @@ const ruleToUpdate: UpdateRuleBody = { alertDelay: { active: 10, }, + flapping: { + lookBackWindow: 10, + statusChangeThreshold: 10, + }, }; describe('transformUpdateRuleBody', () => { @@ -98,6 +102,10 @@ describe('transformUpdateRuleBody', () => { }, tags: [], throttle: null, + flapping: { + look_back_window: 10, + status_change_threshold: 10, + }, }); }); }); diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/transform_update_rule_body.ts b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/transform_update_rule_body.ts index 959cf5c7cdd3c..45c34833fad9b 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/transform_update_rule_body.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/transform_update_rule_body.ts @@ -8,10 +8,25 @@ import { RewriteResponseCase } from '@kbn/actions-types'; import { UpdateRuleBody } from './types'; +import { Rule } from '../../types'; + +const transformUpdateRuleFlapping = (flapping: Rule['flapping']) => { + if (!flapping) { + return flapping; + } + + return { + flapping: { + look_back_window: flapping.lookBackWindow, + status_change_threshold: flapping.statusChangeThreshold, + }, + }; +}; export const transformUpdateRuleBody: RewriteResponseCase = ({ actions = [], alertDelay, + flapping, ...res }): any => ({ ...res, @@ -41,4 +56,5 @@ export const transformUpdateRuleBody: RewriteResponseCase = ({ }; }), ...(alertDelay ? { alert_delay: alertDelay } : {}), + ...(flapping !== undefined ? transformUpdateRuleFlapping(flapping) : {}), }); diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/types.ts b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/types.ts index dac91fa2076f6..7a466ac0b6d86 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/types.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/types.ts @@ -17,4 +17,5 @@ export interface UpdateRuleBody throttle?: Rule['throttle']; notifyWhen?: Rule['notifyWhen']; alertDelay?: Rule['alertDelay']; + flapping?: Rule['flapping']; } diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/update_rule.test.ts b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/update_rule.test.ts index 7cb64b51427e0..9668e60a79417 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/update_rule.test.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/update_rule.test.ts @@ -7,28 +7,74 @@ */ import { httpServiceMock } from '@kbn/core/public/mocks'; -import { Rule } from '../../types'; import { updateRule, UpdateRuleBody } from '.'; const http = httpServiceMock.createStartContract(); describe('updateRule', () => { test('should call rule update API', async () => { - const ruleToUpdate = { + const updatedRule = { + params: { + aggType: 'count', + termSize: 5, + thresholdComparator: '>', + timeWindowSize: 5, + timeWindowUnit: 'm', + groupBy: 'all', + threshold: [1000], + index: ['.kibana'], + timeField: 'alert.executionStatus.lastExecutionDate', + }, consumer: 'alerts', + schedule: { interval: '1m' }, + tags: [], name: 'test', - tags: ['foo'], + rule_type_id: '.index-threshold', + actions: [ + { + group: 'threshold met', + id: '1', + params: { + level: 'info', + message: 'alert ', + }, + connector_type_id: '.server-log', + frequency: { + notify_when: 'onActionGroupChange', + throttle: null, + summary: false, + }, + }, + { + id: '.test-system-action', + params: {}, + connector_type_id: '.system-action', + }, + ], + scheduled_task_id: '1', + execution_status: { status: 'pending', last_execution_date: '2021-04-01T21:33:13.250Z' }, + create_at: '2021-04-01T21:33:13.247Z', + updated_at: '2021-04-01T21:33:13.247Z', + create_by: 'user', + updated_by: 'user', + alert_delay: { + active: 10, + }, + flapping: { + look_back_window: 10, + status_change_threshold: 10, + }, + }; + + const updateRuleBody = { + name: 'test-update', + tags: ['foo', 'bar'], schedule: { - interval: '1m', + interval: '5m', }, params: {}, - createdAt: new Date('1970-01-01T00:00:00.000Z'), - updatedAt: new Date('1970-01-01T00:00:00.000Z'), - apiKey: null, - apiKeyOwner: null, - revision: 0, alertDelay: { - active: 10, + active: 50, }, actions: [ { @@ -43,37 +89,29 @@ describe('updateRule', () => { summary: false, }, }, - { - id: '.test-system-action', - params: {}, - actionTypeId: '.system-action', - }, ], - }; - - const resolvedValue: Rule = { - ...ruleToUpdate, - id: '12/3', - enabled: true, - ruleTypeId: 'test', - createdBy: null, - updatedBy: null, - muteAll: false, - mutedInstanceIds: [], - executionStatus: { - status: 'unknown', - lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + flapping: { + lookBackWindow: 10, + statusChangeThreshold: 10, }, - revision: 1, }; http.put.mockResolvedValueOnce({ - ...resolvedValue, + ...updatedRule, + name: 'test-update', + tags: ['foo', 'bar'], + schedule: { + interval: '5m', + }, + params: {}, + alert_delay: { + active: 50, + }, actions: [ { group: 'default', id: '2', - connector_type_id: 'test', + action_type_dd: 'test', params: {}, use_alert_data_for_template: false, frequency: { @@ -82,41 +120,57 @@ describe('updateRule', () => { summary: false, }, }, - { - id: '.test-system-action', - params: {}, - connector_type_id: '.system-action', - }, ], + flapping: { + look_back_window: 10, + status_change_threshold: 10, + }, }); - const result = await updateRule({ http, id: '12/3', rule: ruleToUpdate as UpdateRuleBody }); + const result = await updateRule({ http, id: '12/3', rule: updateRuleBody as UpdateRuleBody }); expect(result).toEqual({ - ...resolvedValue, actions: [ { - group: 'default', - id: '2', - actionTypeId: 'test', - params: {}, - useAlertDataForTemplate: false, frequency: { notifyWhen: 'onActionGroupChange', - throttle: null, summary: false, + throttle: null, }, - }, - { - id: '.test-system-action', + group: 'default', + id: '2', params: {}, - actionTypeId: '.system-action', + useAlertDataForTemplate: false, }, ], + alertDelay: { + active: 50, + }, + consumer: 'alerts', + create_at: '2021-04-01T21:33:13.247Z', + create_by: 'user', + executionStatus: { + lastExecutionDate: '2021-04-01T21:33:13.250Z', + status: 'pending', + }, + flapping: { + lookBackWindow: 10, + statusChangeThreshold: 10, + }, + name: 'test-update', + params: {}, + ruleTypeId: '.index-threshold', + schedule: { + interval: '5m', + }, + scheduledTaskId: '1', + tags: ['foo', 'bar'], + updatedAt: '2021-04-01T21:33:13.247Z', + updatedBy: 'user', }); expect(http.put).toHaveBeenCalledWith('/api/alerting/rule/12%2F3', { - body: '{"name":"test","tags":["foo"],"schedule":{"interval":"1m"},"params":{},"actions":[{"group":"default","id":"2","params":{},"frequency":{"notify_when":"onActionGroupChange","throttle":null,"summary":false},"use_alert_data_for_template":false},{"id":".test-system-action","params":{}}],"alert_delay":{"active":10}}', + body: '{"name":"test-update","tags":["foo","bar"],"schedule":{"interval":"5m"},"params":{},"actions":[{"group":"default","id":"2","params":{},"frequency":{"notify_when":"onActionGroupChange","throttle":null,"summary":false},"use_alert_data_for_template":false}],"alert_delay":{"active":50},"flapping":{"look_back_window":10,"status_change_threshold":10}}', }); }); }); diff --git a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/update_rule.ts b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/update_rule.ts index 841778eaa52ee..97e5ed6bef480 100644 --- a/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/update_rule.ts +++ b/packages/kbn-alerts-ui-shared/src/common/apis/update_rule/update_rule.ts @@ -21,6 +21,7 @@ export const UPDATE_FIELDS: Array = [ 'schedule', 'params', 'alertDelay', + 'flapping', ]; export const UPDATE_FIELDS_WITH_ACTIONS: Array = [ @@ -30,6 +31,7 @@ export const UPDATE_FIELDS_WITH_ACTIONS: Array = [ 'params', 'alertDelay', 'actions', + 'flapping', ]; export async function updateRule({ diff --git a/packages/kbn-alerts-ui-shared/src/common/hooks/use_get_alerts_group_aggregations_query.ts b/packages/kbn-alerts-ui-shared/src/common/hooks/use_get_alerts_group_aggregations_query.ts index eab5b9ac510fa..e9e24b7a20d5e 100644 --- a/packages/kbn-alerts-ui-shared/src/common/hooks/use_get_alerts_group_aggregations_query.ts +++ b/packages/kbn-alerts-ui-shared/src/common/hooks/use_get_alerts_group_aggregations_query.ts @@ -45,6 +45,8 @@ export interface UseGetAlertsGroupAggregationsQueryProps { * * The provided `aggregations` are applied within `groupByFields`. Here the `groupByField` runtime * field can be used to perform grouping-based aggregations. + * `groupByField` buckets computed over a field with a null/absent value are marked with the + * `isNullGroup` flag set to true and their key is set to the `--` string. * * Applies alerting RBAC through featureIds. */ diff --git a/packages/kbn-alerts-ui-shared/src/common/transformations/transform_rule.ts b/packages/kbn-alerts-ui-shared/src/common/transformations/transform_rule.ts index 46717052d70b2..5081ef0314e4d 100644 --- a/packages/kbn-alerts-ui-shared/src/common/transformations/transform_rule.ts +++ b/packages/kbn-alerts-ui-shared/src/common/transformations/transform_rule.ts @@ -33,6 +33,19 @@ const transformLastRun: RewriteRequestCase = ({ ...rest, }); +const transformFlapping = (flapping: AsApiContract) => { + if (!flapping) { + return flapping; + } + + return { + flapping: { + lookBackWindow: flapping.look_back_window, + statusChangeThreshold: flapping.status_change_threshold, + }, + }; +}; + export const transformRule: RewriteRequestCase = ({ rule_type_id: ruleTypeId, created_by: createdBy, @@ -53,6 +66,7 @@ export const transformRule: RewriteRequestCase = ({ last_run: lastRun, next_run: nextRun, alert_delay: alertDelay, + flapping, ...rest }: any) => ({ ruleTypeId, @@ -76,6 +90,7 @@ export const transformRule: RewriteRequestCase = ({ ...(nextRun ? { nextRun } : {}), ...(apiKeyCreatedByUser !== undefined ? { apiKeyCreatedByUser } : {}), ...(alertDelay ? { alertDelay } : {}), + ...(flapping !== undefined ? transformFlapping(flapping) : {}), ...rest, }); diff --git a/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_flapping_inputs.tsx b/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_flapping_inputs.tsx new file mode 100644 index 0000000000000..6b3086df3f952 --- /dev/null +++ b/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_flapping_inputs.tsx @@ -0,0 +1,110 @@ +/* + * 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, { useCallback } from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { + MIN_LOOK_BACK_WINDOW, + MAX_LOOK_BACK_WINDOW, + MIN_STATUS_CHANGE_THRESHOLD, + MAX_STATUS_CHANGE_THRESHOLD, +} from '@kbn/alerting-types'; +import { i18n } from '@kbn/i18n'; +import { RuleSettingsRangeInput } from './rule_settings_range_input'; + +const lookBackWindowLabel = i18n.translate( + 'alertsUIShared.ruleSettingsFlappingInputsProps.lookBackWindowLabel', + { + defaultMessage: 'Rule run look back window', + } +); + +const lookBackWindowHelp = i18n.translate( + 'alertsUIShared.ruleSettingsFlappingInputsProps.lookBackWindowHelp', + { + defaultMessage: 'The minimum number of runs in which the threshold must be met.', + } +); + +const statusChangeThresholdLabel = i18n.translate( + 'alertsUIShared.ruleSettingsFlappingInputsProps.statusChangeThresholdLabel', + { + defaultMessage: 'Alert status change threshold', + } +); + +const statusChangeThresholdHelp = i18n.translate( + 'alertsUIShared.ruleSettingsFlappingInputsProps.statusChangeThresholdHelp', + { + defaultMessage: + 'The minimum number of times an alert must switch states in the look back window.', + } +); + +export interface RuleSettingsFlappingInputsProps { + lookBackWindow: number; + statusChangeThreshold: number; + isDisabled?: boolean; + onLookBackWindowChange: (value: number) => void; + onStatusChangeThresholdChange: (value: number) => void; +} + +export const RuleSettingsFlappingInputs = (props: RuleSettingsFlappingInputsProps) => { + const { + lookBackWindow, + statusChangeThreshold, + isDisabled = false, + onLookBackWindowChange, + onStatusChangeThresholdChange, + } = props; + + const internalOnLookBackWindowChange = useCallback( + (e) => { + onLookBackWindowChange(parseInt(e.currentTarget.value, 10)); + }, + [onLookBackWindowChange] + ); + + const internalOnStatusChangeThresholdChange = useCallback( + (e) => { + onStatusChangeThresholdChange(parseInt(e.currentTarget.value, 10)); + }, + [onStatusChangeThresholdChange] + ); + + return ( + + + + + + + + + ); +}; diff --git a/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_flapping_message.tsx b/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_flapping_message.tsx new file mode 100644 index 0000000000000..7752ef7ba5e86 --- /dev/null +++ b/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_flapping_message.tsx @@ -0,0 +1,56 @@ +/* + * 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 { EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import React from 'react'; + +const getLookBackWindowLabelRuleRuns = (amount: number) => { + return i18n.translate('alertsUIShared.ruleSettingsFlappingMessage.lookBackWindowLabelRuleRuns', { + defaultMessage: '{amount, number} rule {amount, plural, one {run} other {runs}}', + values: { amount }, + }); +}; + +const getStatusChangeThresholdRuleRuns = (amount: number) => { + return i18n.translate('alertsUIShared.ruleSettingsFlappingMessage.statusChangeThresholdTimes', { + defaultMessage: '{amount, number} {amount, plural, one {time} other {times}}', + values: { amount }, + }); +}; + +export const flappingOffMessage = i18n.translate( + 'alertsUIShared.ruleSettingsFlappingMessage.flappingOffMessage', + { + defaultMessage: + 'Alert flapping detection is off. Alerts will be generated based on the rule interval, which might result in higher alert volumes.', + } +); + +export interface RuleSettingsFlappingMessageProps { + lookBackWindow: number; + statusChangeThreshold: number; +} + +export const RuleSettingsFlappingMessage = (props: RuleSettingsFlappingMessageProps) => { + const { lookBackWindow, statusChangeThreshold } = props; + + return ( + + {getLookBackWindowLabelRuleRuns(lookBackWindow)}
, + statusChangeThreshold: {getStatusChangeThresholdRuleRuns(statusChangeThreshold)}, + }} + /> + + ); +}; diff --git a/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_range_input.tsx b/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_range_input.tsx new file mode 100644 index 0000000000000..2103a7c2adbd4 --- /dev/null +++ b/packages/kbn-alerts-ui-shared/src/rule_settings/rule_settings_range_input.tsx @@ -0,0 +1,55 @@ +/* + * 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, { memo } from 'react'; +import { EuiFormRow, EuiFormRowProps, EuiIconTip, EuiRange, EuiRangeProps } from '@elastic/eui'; + +export interface RuleSettingsRangeInputProps { + label: EuiFormRowProps['label']; + labelPopoverText?: string; + min: number; + max: number; + value: number; + fullWidth?: EuiRangeProps['fullWidth']; + disabled?: EuiRangeProps['disabled']; + onChange?: EuiRangeProps['onChange']; +} + +export const RuleSettingsRangeInput = memo((props: RuleSettingsRangeInputProps) => { + const { label, labelPopoverText, min, max, value, fullWidth, disabled, onChange, ...rest } = + props; + + const renderLabel = () => { + return ( +
+ {label} +   + {labelPopoverText && ( + + )} +
+ ); + }; + + return ( + + + + ); +}); diff --git a/packages/kbn-apm-synthtrace-client/src/lib/infra/host.ts b/packages/kbn-apm-synthtrace-client/src/lib/infra/host.ts index a5ca11ad20203..c9956dc8a666e 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/infra/host.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/host.ts @@ -8,6 +8,7 @@ /* eslint-disable max-classes-per-file */ import { Entity, Fields } from '../entity'; import { Serializable } from '../serializable'; +import { k8sNode } from './k8s_node'; import { pod } from './pod'; interface HostDocument extends Fields { @@ -20,17 +21,20 @@ interface HostDocument extends Fields { 'host.ip'?: string; 'host.os.name'?: string; 'host.os.version'?: string; + 'host.os.platform'?: string; 'cloud.provider'?: string; } class Host extends Entity { - cpu() { + cpu({ cpuTotalValue }: { cpuTotalValue?: number } = {}) { return new HostMetrics({ ...this.fields, - 'system.cpu.total.norm.pct': 0.094, + 'system.cpu.total.norm.pct': cpuTotalValue ?? 0.98, 'system.cpu.user.pct': 0.805, 'system.cpu.system.pct': 0.704, 'system.cpu.cores': 16, + 'process.cpu.pct': 0.1, + 'system.cpu.nice.pct': 0.1, 'metricset.period': 10000, 'metricset.name': 'cpu', }); @@ -45,6 +49,7 @@ class Host extends Entity { 'system.memory.total': 68719476736, 'system.memory.used.bytes': 39964708864, 'system.memory.used.pct': 0.582, + 'process.memory.pct': 0.1, 'metricset.period': 10000, 'metricset.name': 'memory', }); @@ -72,6 +77,22 @@ class Host extends Entity { }); } + core() { + return new HostMetrics({ + ...this.fields, + 'system.core.total.pct': 0.98, + 'system.core.user.pct': 0.805, + 'system.core.nice.pct': 0.704, + 'system.core.idle.pct': 0.1, + 'system.core.iowait.pct': 0.1, + 'system.core.irq.pct': 0.1, + 'system.core.softirq.pct': 0.1, + 'system.core.steal.pct': 0.1, + 'metricset.period': 10000, + 'metricset.name': 'core', + }); + } + filesystem() { return new HostMetrics({ ...this.fields, @@ -96,6 +117,10 @@ class Host extends Entity { pod(uid: string) { return pod(uid, this.fields['host.hostname']); } + + node(podUid: string) { + return k8sNode(this.fields['host.hostname'], podUid); + } } export interface HostMetricsDocument extends HostDocument { @@ -120,6 +145,17 @@ export interface HostMetricsDocument extends HostDocument { 'system.load'?: { 1: number; cores: number }; 'host.network.ingress.bytes'?: number; 'host.network.egress.bytes'?: number; + 'process.cpu.pct'?: number; + 'process.memory.pct'?: number; + 'system.core.total.pct'?: number; + 'system.core.user.pct'?: number; + 'system.core.nice.pct'?: number; + 'system.core.idle.pct'?: number; + 'system.core.iowait.pct'?: number; + 'system.core.irq.pct'?: number; + 'system.core.softirq.pct'?: number; + 'system.core.steal.pct'?: number; + 'system.cpu.nice.pct'?: number; } class HostMetrics extends Serializable {} @@ -132,6 +168,7 @@ export function host(name: string): Host { 'host.name': name, 'host.ip': '10.128.0.2', 'host.os.name': 'Linux', + 'host.os.platform': 'ubuntu', 'host.os.version': '4.19.76-linuxkit', 'cloud.provider': 'gcp', }); 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 c325635e27098..b8b0600fc1838 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts @@ -11,13 +11,15 @@ import { host, HostMetricsDocument } from './host'; import { k8sContainer, K8sContainerMetricsDocument } from './k8s_container'; import { pod, PodMetricsDocument } from './pod'; import { awsRds, AWSRdsMetricsDocument } from './aws/rds'; +import { k8sNode, K8sNodeMetricsDocument } from './k8s_node'; export type InfraDocument = | HostMetricsDocument | PodMetricsDocument | DockerContainerMetricsDocument | K8sContainerMetricsDocument - | AWSRdsMetricsDocument; + | AWSRdsMetricsDocument + | K8sNodeMetricsDocument; export const infra = { host, @@ -25,4 +27,5 @@ export const infra = { dockerContainer, k8sContainer, awsRds, + k8sNode, }; diff --git a/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts b/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts index 6aa813913c118..7135581f6129c 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts @@ -18,11 +18,13 @@ interface K8sContainerDocument extends Fields { 'container.name'?: string; 'container.image.name'?: string; 'container.runtime'?: string; - 'host.name'?: string; + 'host.name': string; + 'host.hostname': string; 'cloud.provider'?: string; 'cloud.instance.id'?: string; 'cloud.image.id'?: string; 'event.dataset'?: string; + 'agent.id': string; } export class K8sContainer extends Entity { @@ -31,6 +33,7 @@ export class K8sContainer extends Entity { ...this.fields, 'kubernetes.container.cpu.usage.limit.pct': 46, 'kubernetes.container.memory.usage.limit.pct': 30, + 'kubernetes.pod.cpu.usage.limit.pct': 46, }); } } @@ -38,6 +41,7 @@ export class K8sContainer extends Entity { export interface K8sContainerMetricsDocument extends K8sContainerDocument { 'kubernetes.container.cpu.usage.limit.pct': number; 'kubernetes.container.memory.usage.limit.pct': number; + 'kubernetes.pod.cpu.usage.limit.pct': number; } class K8sContainerMetrics extends Serializable {} @@ -51,6 +55,8 @@ export function k8sContainer(id: string, uid: string, nodeName: string): K8sCont 'container.runtime': 'containerd', 'container.image.name': 'image-1', 'host.name': 'host-1', + 'host.hostname': 'host-1', + 'agent.id': 'synthtrace', 'cloud.instance.id': 'instance-1', 'cloud.image.id': 'image-1', 'cloud.provider': 'aws', diff --git a/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_node.ts b/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_node.ts new file mode 100644 index 0000000000000..8b596a6591669 --- /dev/null +++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_node.ts @@ -0,0 +1,58 @@ +/* + * 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 K8sNodeDocument extends Fields { + 'kubernetes.node.name': string; + 'kubernetes.pod.uid'?: string; + 'agent.id': string; + 'host.hostname': string; + 'host.name': string; + 'metricset.name'?: string; + 'event.dataset'?: string; +} + +export class K8sNode extends Entity { + metrics() { + return new K8sNodeMetrics({ + ...this.fields, + 'kubernetes.node.cpu.allocatable.cores': 0.53, + 'kubernetes.node.cpu.usage.nanocores': 0.32, + 'kubernetes.node.memory.allocatable.bytes': 0.46, + 'kubernetes.node.memory.usage.bytes': 0.86, + 'kubernetes.node.fs.capacity.bytes': 100, + 'kubernetes.node.fs.used.bytes': 100, + 'kubernetes.node.pod.allocatable.total': 10, + }); + } +} + +export interface K8sNodeMetricsDocument extends K8sNodeDocument { + 'kubernetes.node.cpu.allocatable.cores': number; + 'kubernetes.node.cpu.usage.nanocores': number; + 'kubernetes.node.memory.allocatable.bytes': number; + 'kubernetes.node.memory.usage.bytes': number; + 'kubernetes.node.fs.capacity.bytes': number; + 'kubernetes.node.fs.used.bytes': number; + 'kubernetes.node.pod.allocatable.total': number; +} + +class K8sNodeMetrics extends Serializable {} + +export function k8sNode(name: string, podUid: string) { + return new K8sNode({ + 'kubernetes.node.name': name, + 'kubernetes.pod.uid': podUid, + 'agent.id': 'synthtrace', + 'host.hostname': name, + 'host.name': name, + 'event.dataset': 'kubernetes.node', + }); +} 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 35ebe94ba6ee1..b885fd1aeb606 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/infra/pod.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/pod.ts @@ -12,6 +12,9 @@ import { Serializable } from '../serializable'; import { k8sContainer } from './k8s_container'; interface PodDocument extends Fields { + 'agent.id': string; + 'host.hostname': string; + 'host.name': string; 'kubernetes.pod.uid': string; 'kubernetes.node.name': string; 'metricset.name'?: string; @@ -40,5 +43,8 @@ export function pod(uid: string, nodeName: string) { return new Pod({ 'kubernetes.pod.uid': uid, 'kubernetes.node.name': nodeName, + 'agent.id': 'synthtrace', + 'host.hostname': nodeName, + 'host.name': nodeName, }); } diff --git a/packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts b/packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts index 4e7ab744d8ecd..a649189de47a5 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts @@ -6,9 +6,20 @@ * Side Public License, v 1. */ +import { randomInt } from 'crypto'; import { Fields } from '../entity'; import { Serializable } from '../serializable'; +const LOGSDB_DATASET_PREFIX = 'logsdb.'; + +interface LogsOptions { + isLogsDb: boolean; +} + +const defaultLogsOptions: LogsOptions = { + isLogsDb: false, +}; + export type LogDocument = Fields & Partial<{ 'input.type': string; @@ -45,9 +56,22 @@ export type LogDocument = Fields & 'error.exception.stacktrace'?: string; 'error.log.stacktrace'?: string; 'log.custom': Record; + 'host.geo.location': number[]; + 'host.ip': string; + 'network.bytes': number; + 'tls.established': boolean; + 'event.duration': number; + 'event.start': Date; + 'event.end': Date; }>; class Log extends Serializable { + constructor(fields: LogDocument, private logsOptions: LogsOptions) { + super({ + ...fields, + }); + } + service(name: string) { this.fields['service.name'] = name; return this; @@ -69,8 +93,9 @@ class Log extends Serializable { } dataset(value: string) { - this.fields['data_stream.dataset'] = value; - this.fields['event.dataset'] = value; + const dataset = `${this.logsOptions.isLogsDb ? LOGSDB_DATASET_PREFIX : ''}${value}`; + this.fields['data_stream.dataset'] = dataset; + this.fields['event.dataset'] = dataset; return this; } @@ -83,17 +108,35 @@ class Log extends Serializable { this.fields.message = message; return this; } + + setGeoLocation(geoCoordinates: number[]) { + this.fields['host.geo.location'] = geoCoordinates; + return this; + } + + setHostIp(hostIp: string) { + this.fields['host.ip'] = hostIp; + return this; + } + + timestamp(time: number) { + super.timestamp(time); + return this; + } } -function create(): Log { - return new Log({ - 'input.type': 'logs', - 'data_stream.namespace': 'default', - 'data_stream.type': 'logs', - 'data_stream.dataset': 'synth', - 'event.dataset': 'synth', - 'host.name': 'synth-host', - }); +function create(logsOptions: LogsOptions = defaultLogsOptions): Log { + return new Log( + { + 'input.type': 'logs', + 'data_stream.namespace': 'default', + 'data_stream.type': 'logs', + 'host.name': 'synth-host', + 'network.bytes': randomInt(500, 10000), + 'tls.established': Math.random() < 0.5, + }, + logsOptions + ).dataset('synth'); } export const log = { diff --git a/packages/kbn-apm-synthtrace/src/cli/scenario.ts b/packages/kbn-apm-synthtrace/src/cli/scenario.ts index 990682cb65aee..c12d8333071c6 100644 --- a/packages/kbn-apm-synthtrace/src/cli/scenario.ts +++ b/packages/kbn-apm-synthtrace/src/cli/scenario.ts @@ -13,22 +13,19 @@ import { Logger } from '../lib/utils/create_logger'; import { ScenarioReturnType } from '../lib/utils/with_client'; import { RunOptions } from './utils/parse_run_cli_flags'; +interface EsClients { + apmEsClient: ApmSynthtraceEsClient; + logsEsClient: LogsSynthtraceEsClient; + infraEsClient: InfraSynthtraceEsClient; + assetsEsClient: AssetsSynthtraceEsClient; +} + type Generate = (options: { range: Timerange; - clients: { - apmEsClient: ApmSynthtraceEsClient; - logsEsClient: LogsSynthtraceEsClient; - infraEsClient: InfraSynthtraceEsClient; - assetsEsClient: AssetsSynthtraceEsClient; - }; + clients: EsClients; }) => ScenarioReturnType | Array>; export type Scenario = (options: RunOptions & { logger: Logger }) => Promise<{ - bootstrap?: (options: { - apmEsClient: ApmSynthtraceEsClient; - logsEsClient: LogsSynthtraceEsClient; - infraEsClient: InfraSynthtraceEsClient; - assetsEsClient: AssetsSynthtraceEsClient; - }) => Promise; + bootstrap?: (options: EsClients) => Promise; generate: Generate; }>; diff --git a/packages/kbn-apm-synthtrace/src/cli/utils/get_apm_es_client.ts b/packages/kbn-apm-synthtrace/src/cli/utils/get_apm_es_client.ts index ee350ab3c56d8..b876f89fa38e0 100644 --- a/packages/kbn-apm-synthtrace/src/cli/utils/get_apm_es_client.ts +++ b/packages/kbn-apm-synthtrace/src/cli/utils/get_apm_es_client.ts @@ -10,6 +10,7 @@ import { Client } from '@elastic/elasticsearch'; import { ApmSynthtraceEsClient } from '../../..'; import { Logger } from '../../lib/utils/create_logger'; import { RunOptions } from './parse_run_cli_flags'; +import { getEsClientTlsSettings } from './ssl'; export function getApmEsClient({ target, @@ -23,6 +24,7 @@ export function getApmEsClient({ }) { const client = new Client({ node: target, + tls: getEsClientTlsSettings(target), }); const apmEsClient = new ApmSynthtraceEsClient({ diff --git a/packages/kbn-apm-synthtrace/src/cli/utils/get_assets_es_client.ts b/packages/kbn-apm-synthtrace/src/cli/utils/get_assets_es_client.ts index 059a837492699..fa44bcbe3b2de 100644 --- a/packages/kbn-apm-synthtrace/src/cli/utils/get_assets_es_client.ts +++ b/packages/kbn-apm-synthtrace/src/cli/utils/get_assets_es_client.ts @@ -10,6 +10,7 @@ import { Client } from '@elastic/elasticsearch'; import { AssetsSynthtraceEsClient } from '../../lib/assets/assets_synthtrace_es_client'; import { Logger } from '../../lib/utils/create_logger'; import { RunOptions } from './parse_run_cli_flags'; +import { getEsClientTlsSettings } from './ssl'; export function getAssetsEsClient({ target, @@ -21,6 +22,7 @@ export function getAssetsEsClient({ }) { const client = new Client({ node: target, + tls: getEsClientTlsSettings(target), }); return new AssetsSynthtraceEsClient({ diff --git a/packages/kbn-apm-synthtrace/src/cli/utils/get_infra_es_client.ts b/packages/kbn-apm-synthtrace/src/cli/utils/get_infra_es_client.ts index 82a714dc8f244..a0f651d8f3185 100644 --- a/packages/kbn-apm-synthtrace/src/cli/utils/get_infra_es_client.ts +++ b/packages/kbn-apm-synthtrace/src/cli/utils/get_infra_es_client.ts @@ -10,6 +10,7 @@ import { Client } from '@elastic/elasticsearch'; import { InfraSynthtraceEsClient } from '../../lib/infra/infra_synthtrace_es_client'; import { Logger } from '../../lib/utils/create_logger'; import { RunOptions } from './parse_run_cli_flags'; +import { getEsClientTlsSettings } from './ssl'; export function getInfraEsClient({ target, @@ -21,6 +22,7 @@ export function getInfraEsClient({ }) { const client = new Client({ node: target, + tls: getEsClientTlsSettings(target), }); return new InfraSynthtraceEsClient({ diff --git a/packages/kbn-apm-synthtrace/src/cli/utils/get_logs_es_client.ts b/packages/kbn-apm-synthtrace/src/cli/utils/get_logs_es_client.ts index 8bfcdaef90839..863cf2c9964d4 100644 --- a/packages/kbn-apm-synthtrace/src/cli/utils/get_logs_es_client.ts +++ b/packages/kbn-apm-synthtrace/src/cli/utils/get_logs_es_client.ts @@ -10,6 +10,7 @@ import { Client } from '@elastic/elasticsearch'; import { LogsSynthtraceEsClient } from '../../lib/logs/logs_synthtrace_es_client'; import { Logger } from '../../lib/utils/create_logger'; import { RunOptions } from './parse_run_cli_flags'; +import { getEsClientTlsSettings } from './ssl'; export function getLogsEsClient({ target, @@ -21,6 +22,7 @@ export function getLogsEsClient({ }) { const client = new Client({ node: target, + tls: getEsClientTlsSettings(target), }); return new LogsSynthtraceEsClient({ diff --git a/packages/kbn-apm-synthtrace/src/cli/utils/get_service_urls.ts b/packages/kbn-apm-synthtrace/src/cli/utils/get_service_urls.ts index 3967040a569af..d8c11af6b41a9 100644 --- a/packages/kbn-apm-synthtrace/src/cli/utils/get_service_urls.ts +++ b/packages/kbn-apm-synthtrace/src/cli/utils/get_service_urls.ts @@ -10,6 +10,7 @@ import fetch from 'node-fetch'; import { format, parse, Url } from 'url'; import { Logger } from '../../lib/utils/create_logger'; import { RunOptions } from './parse_run_cli_flags'; +import { getFetchAgent } from './ssl'; async function discoverAuth(parsedTarget: Url) { const possibleCredentials = [`admin:changeme`, `elastic:changeme`, `elastic_serverless:changeme`]; @@ -20,7 +21,9 @@ async function discoverAuth(parsedTarget: Url) { }); let status: number; try { - const response = await fetch(url); + const response = await fetch(url, { + agent: getFetchAgent(url), + }); status = response.status; } catch (err) { status = 0; @@ -43,6 +46,7 @@ async function getKibanaUrl({ target, logger }: { target: string; logger: Logger method: 'HEAD', follow: 1, redirect: 'manual', + agent: getFetchAgent(target), }); const discoveredKibanaUrl = @@ -62,6 +66,7 @@ async function getKibanaUrl({ target, logger }: { target: string; logger: Logger const redirectedResponse = await fetch(discoveredKibanaUrlWithAuth, { method: 'HEAD', + agent: getFetchAgent(discoveredKibanaUrlWithAuth), }); if (redirectedResponse.status !== 200) { diff --git a/packages/kbn-apm-synthtrace/src/cli/utils/ssl.ts b/packages/kbn-apm-synthtrace/src/cli/utils/ssl.ts new file mode 100644 index 0000000000000..22ad438323e6b --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/cli/utils/ssl.ts @@ -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 * as Fs from 'fs'; +import { CA_CERT_PATH } from '@kbn/dev-utils'; +import https from 'https'; + +export function getFetchAgent(url: string) { + const isHTTPS = new URL(url).protocol === 'https:'; + const isLocalhost = new URL(url).hostname === 'localhost'; + return isHTTPS && isLocalhost ? new https.Agent({ rejectUnauthorized: false }) : undefined; +} + +export function getEsClientTlsSettings(url: string) { + const isHTTPS = new URL(url).protocol === 'https:'; + // load the CA cert from disk if necessary + const caCert = isHTTPS ? Fs.readFileSync(CA_CERT_PATH) : null; + const isLocalhost = new URL(url).hostname === 'localhost'; + + return caCert && isLocalhost + ? { + ca: caCert, + rejectUnauthorized: true, + } + : undefined; +} diff --git a/packages/kbn-apm-synthtrace/src/cli/utils/start_live_data_upload.ts b/packages/kbn-apm-synthtrace/src/cli/utils/start_live_data_upload.ts index 74468dbaa1569..fd7ddc6b42b36 100644 --- a/packages/kbn-apm-synthtrace/src/cli/utils/start_live_data_upload.ts +++ b/packages/kbn-apm-synthtrace/src/cli/utils/start_live_data_upload.ts @@ -10,11 +10,11 @@ import { timerange } from '@kbn/apm-synthtrace-client'; import { castArray } from 'lodash'; import { PassThrough, Readable, Writable } from 'stream'; import { isGeneratorObject } from 'util/types'; +import { SynthtraceEsClient } from '../../lib/shared/base_client'; import { awaitStream } from '../../lib/utils/wait_until_stream_finished'; import { bootstrap } from './bootstrap'; import { getScenario } from './get_scenario'; import { RunOptions } from './parse_run_cli_flags'; -import { SynthtraceEsClient } from '../../lib/utils/with_client'; export async function startLiveDataUpload({ runOptions, @@ -36,6 +36,7 @@ export async function startLiveDataUpload({ let requestedUntil = start; let currentStreams: PassThrough[] = []; + // @ts-expect-error upgrade typescript v4.9.5 const cachedStreams: WeakMap = new WeakMap(); process.on('SIGINT', () => closeStreams()); diff --git a/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_kibana_client.ts b/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_kibana_client.ts index caf6f47be45ce..56b3b92d287d4 100644 --- a/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_kibana_client.ts +++ b/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_kibana_client.ts @@ -10,6 +10,7 @@ import fetch from 'node-fetch'; import pRetry from 'p-retry'; import { Logger } from '../../utils/create_logger'; import { kibanaHeaders } from '../../shared/client_headers'; +import { getFetchAgent } from '../../../cli/utils/ssl'; export class ApmSynthtraceKibanaClient { private readonly logger: Logger; @@ -34,6 +35,7 @@ export class ApmSynthtraceKibanaClient { const response = await fetch(url, { method: 'GET', headers: kibanaHeaders(), + agent: getFetchAgent(url), }); const responseJson = await response.json(); @@ -62,6 +64,7 @@ export class ApmSynthtraceKibanaClient { method: 'POST', headers: kibanaHeaders(), body: '{"force":true}', + agent: getFetchAgent(url), }); if (!res.ok) { @@ -109,6 +112,7 @@ export class ApmSynthtraceKibanaClient { method: 'DELETE', headers: kibanaHeaders(), body: '{"force":true}', + agent: getFetchAgent(url), }); if (!res.ok) { diff --git a/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_es_client.ts b/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_es_client.ts index 6c42d7051a9b0..dcd5e6da2d261 100644 --- a/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_es_client.ts +++ b/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_es_client.ts @@ -22,7 +22,14 @@ export class InfraSynthtraceEsClient extends SynthtraceEsClient { ...options, pipeline: infraPipeline(), }); - this.dataStreams = ['metrics-*', 'logs-*']; + this.dataStreams = [ + 'metrics-system*', + 'metrics-kubernetes*', + 'metrics-docker*', + 'metrics-aws*', + 'metricbeat-*', + 'logs-*', + ]; } } @@ -60,7 +67,10 @@ function getRoutingTransform() { document._index = 'metrics-system.filesystem-default'; } else if (metricset === 'diskio') { document._index = 'metrics-system.diskio-default'; + } else if (metricset === 'core') { + document._index = 'metrics-system.core-default'; } else if ('container.id' in document) { + document._index = 'metrics-docker.container-default'; document._index = 'metrics-kubernetes.container-default'; } else if ('kubernetes.pod.uid' in document) { document._index = 'metrics-kubernetes.pod-default'; diff --git a/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts b/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts index c1ac555276a66..5c6e02aaedc3a 100644 --- a/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts +++ b/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts @@ -11,6 +11,7 @@ import fetch from 'node-fetch'; import pRetry from 'p-retry'; import { Logger } from '../utils/create_logger'; import { kibanaHeaders } from '../shared/client_headers'; +import { getFetchAgent } from '../../cli/utils/ssl'; export class InfraSynthtraceKibanaClient { private readonly logger: Logger; @@ -30,6 +31,7 @@ export class InfraSynthtraceKibanaClient { const response = await fetch(fleetPackageApiUrl, { method: 'GET', headers: kibanaHeaders(), + agent: getFetchAgent(fleetPackageApiUrl), }); const responseJson = await response.json(); @@ -54,6 +56,7 @@ export class InfraSynthtraceKibanaClient { method: 'POST', headers: kibanaHeaders(), body: '{"force":true}', + agent: getFetchAgent(url), }); }); @@ -67,4 +70,27 @@ export class InfraSynthtraceKibanaClient { this.logger.info(`Installed System package ${packageVersion}`); } + + async uninstallSystemPackage(packageVersion: string) { + this.logger.debug(`Uninstalling System package ${packageVersion}`); + + const url = join(this.target, `/api/fleet/epm/packages/system/${packageVersion}`); + const response = await pRetry(() => { + return fetch(url, { + method: 'DELETE', + headers: kibanaHeaders(), + body: '{"force":true}', + }); + }); + + const responseJson = await response.json(); + + if (!responseJson.items) { + throw new Error( + `Failed to uninstall System package version ${packageVersion}, received HTTP ${response.status} and message: ${responseJson.message} for url ${url}` + ); + } + + this.logger.info(`System package ${packageVersion} uninstalled`); + } } diff --git a/packages/kbn-apm-synthtrace/src/lib/logs/custom_logsdb_index_templates.ts b/packages/kbn-apm-synthtrace/src/lib/logs/custom_logsdb_index_templates.ts new file mode 100644 index 0000000000000..0e1003244eeef --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/lib/logs/custom_logsdb_index_templates.ts @@ -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 type { IndicesPutIndexTemplateRequest } from '@elastic/elasticsearch/lib/api/types'; + +export enum IndexTemplateName { + LogsDb = 'logsdb', +} + +export const indexTemplates: { + [key in IndexTemplateName]: IndicesPutIndexTemplateRequest; +} = { + [IndexTemplateName.LogsDb]: { + name: IndexTemplateName.LogsDb, + _meta: { + managed: false, + description: 'custom logsdb template created by synthtrace tool.', + }, + template: { + settings: { + mode: 'logsdb', + }, + }, + priority: 500, + index_patterns: ['logs-logsdb.*-*'], + composed_of: ['logs@mappings', 'logs@settings', 'ecs@mappings'], + allow_auto_create: true, + data_stream: { + hidden: false, + }, + }, +}; diff --git a/packages/kbn-apm-synthtrace/src/lib/logs/logs_synthtrace_es_client.ts b/packages/kbn-apm-synthtrace/src/lib/logs/logs_synthtrace_es_client.ts index 8d2b32849bd8f..13002dec07f3d 100644 --- a/packages/kbn-apm-synthtrace/src/lib/logs/logs_synthtrace_es_client.ts +++ b/packages/kbn-apm-synthtrace/src/lib/logs/logs_synthtrace_es_client.ts @@ -13,6 +13,7 @@ import { LogDocument } from '@kbn/apm-synthtrace-client/src/lib/logs'; import { SynthtraceEsClient, SynthtraceEsClientOptions } from '../shared/base_client'; import { getSerializeTransform } from '../shared/get_serialize_transform'; import { Logger } from '../utils/create_logger'; +import { indexTemplates, IndexTemplateName } from './custom_logsdb_index_templates'; export type LogsSynthtraceEsClientOptions = Omit; @@ -24,6 +25,21 @@ export class LogsSynthtraceEsClient extends SynthtraceEsClient { }); this.dataStreams = ['logs-*-*']; } + + async createIndexTemplate(name: IndexTemplateName) { + const isTemplateExisting = await this.client.indices.existsIndexTemplate({ name }); + + if (isTemplateExisting) return this.logger.info(`Index template already exists: ${name}`); + + const template = indexTemplates[name]; + + try { + await this.client.indices.putIndexTemplate(template); + this.logger.info(`Index template successfully created: ${name}`); + } catch (err) { + this.logger.error(`Index template creation failed: ${name} - ${err.message}`); + } + } } function logsPipeline() { diff --git a/packages/kbn-apm-synthtrace/src/lib/utils/with_client.ts b/packages/kbn-apm-synthtrace/src/lib/utils/with_client.ts index 5acbcdfbbd9f3..3427c293ec4ec 100644 --- a/packages/kbn-apm-synthtrace/src/lib/utils/with_client.ts +++ b/packages/kbn-apm-synthtrace/src/lib/utils/with_client.ts @@ -8,9 +8,8 @@ import { SynthtraceGenerator } from '@kbn/apm-synthtrace-client'; import { Readable } from 'stream'; -import { ApmSynthtraceEsClient, LogsSynthtraceEsClient } from '../../..'; +import { SynthtraceEsClient } from '../shared/base_client'; -export type SynthtraceEsClient = ApmSynthtraceEsClient | LogsSynthtraceEsClient; export type SynthGenerator = // @ts-expect-error upgrade typescript v4.9.5 | SynthtraceGenerator @@ -19,6 +18,7 @@ export type SynthGenerator = | Readable; export const withClient = ( + // @ts-expect-error upgrade typescript v4.9.5 client: SynthtraceEsClient, generator: SynthGenerator ) => { diff --git a/packages/kbn-apm-synthtrace/src/scenarios/degraded_logs.ts b/packages/kbn-apm-synthtrace/src/scenarios/degraded_logs.ts index cb5313ac70795..f33e43e0e11ec 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/degraded_logs.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/degraded_logs.ts @@ -7,110 +7,121 @@ */ import { LogDocument, log, generateShortId, generateLongId } from '@kbn/apm-synthtrace-client'; import { Scenario } from '../cli/scenario'; +import { IndexTemplateName } from '../lib/logs/custom_logsdb_index_templates'; import { withClient } from '../lib/utils/with_client'; +import { + getServiceName, + getCluster, + getCloudRegion, + getCloudProvider, +} from './helpers/logs_mock_data'; +import { parseLogsScenarioOpts } from './helpers/logs_scenario_opts_parser'; const MORE_THAN_1024_CHARS = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?'; +// Logs Data logic +const MESSAGE_LOG_LEVELS = [ + { message: 'A simple log', level: 'info' }, + { + message: 'Another log message', + level: 'debug', + }, + { message: 'Error with certificate: "ca_trusted_fingerprint"', level: 'error' }, +]; + const scenario: Scenario = async (runOptions) => { + const { isLogsDb } = parseLogsScenarioOpts(runOptions.scenarioOpts); return { + bootstrap: async ({ logsEsClient }) => { + if (isLogsDb) await logsEsClient.createIndexTemplate(IndexTemplateName.LogsDb); + }, generate: ({ range, clients: { logsEsClient } }) => { const { logger } = runOptions; - // Logs Data logic - const MESSAGE_LOG_LEVELS = [ - { message: 'A simple log', level: 'info' }, - { - message: 'Another log message', - level: 'debug', - }, - { message: 'Error with certificate: "ca_trusted_fingerprint"', level: 'error' }, - ]; - const CLOUD_PROVIDERS = ['gcp', 'aws', 'azure']; - const CLOUD_REGION = ['eu-central-1', 'us-east-1', 'area-51']; + const constructLogsCommonData = () => { + const index = Math.floor(Math.random() * 3); + const serviceName = getServiceName(index); + const logMessage = MESSAGE_LOG_LEVELS[index]; + const { clusterId, clusterName } = getCluster(index); + const cloudRegion = getCloudRegion(index); - const CLUSTER = [ - { clusterId: generateShortId(), clusterName: 'synth-cluster-1' }, - { clusterId: generateShortId(), clusterName: 'synth-cluster-2' }, - { clusterId: generateShortId(), clusterName: 'synth-cluster-3' }, - ]; + const commonLongEntryFields: LogDocument = { + 'trace.id': generateShortId(), + 'agent.name': 'synth-agent', + 'orchestrator.cluster.name': clusterName, + 'orchestrator.cluster.id': clusterId, + 'orchestrator.resource.id': generateShortId(), + 'cloud.provider': getCloudProvider(), + 'cloud.region': cloudRegion, + 'cloud.availability_zone': `${cloudRegion}a`, + 'cloud.project.id': generateShortId(), + 'cloud.instance.id': generateShortId(), + 'log.file.path': `/logs/${generateLongId()}/error.txt`, + }; - const SERVICE_NAMES = Array(3) - .fill(null) - .map((_, idx) => `synth-service-${idx}`); + return { + index, + serviceName, + logMessage, + cloudRegion, + commonLongEntryFields, + }; + }; const datasetSynth1Logs = (timestamp: number) => { - const index = Math.floor(Math.random() * 3); + const { + serviceName, + logMessage: { level, message }, + commonLongEntryFields, + } = constructLogsCommonData(); + return log - .create() + .create({ isLogsDb }) .dataset('synth.1') - .message(MESSAGE_LOG_LEVELS[index].message as string) - .logLevel(MESSAGE_LOG_LEVELS[index].level) - .service(SERVICE_NAMES[index]) - .defaults({ - 'trace.id': generateShortId(), - 'agent.name': 'synth-agent', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.resource.id': generateShortId(), - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], - 'cloud.availability_zone': `${CLOUD_REGION[index]}a`, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, - }) + .message(message) + .logLevel(level) + .service(serviceName) + .defaults(commonLongEntryFields) .timestamp(timestamp); }; const datasetSynth2Logs = (i: number, timestamp: number) => { - const index = Math.floor(Math.random() * 3); + const { + serviceName, + logMessage: { level, message }, + commonLongEntryFields, + } = constructLogsCommonData(); const isMalformed = i % 60 === 0; return log - .create() + .create({ isLogsDb }) .dataset('synth.2') - .message(MESSAGE_LOG_LEVELS[index].message as string) - .logLevel(isMalformed ? MORE_THAN_1024_CHARS : MESSAGE_LOG_LEVELS[index].level) // "ignore_above": 1024 in mapping - .service(SERVICE_NAMES[index]) - .defaults({ - 'trace.id': generateShortId(), - 'agent.name': 'synth-agent', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.resource.id': generateShortId(), - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], - 'cloud.availability_zone': `${CLOUD_REGION[index]}a`, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, - }) + .message(message) + .logLevel(isMalformed ? MORE_THAN_1024_CHARS : level) // "ignore_above": 1024 in mapping + .service(serviceName) + .defaults(commonLongEntryFields) .timestamp(timestamp); }; const datasetSynth3Logs = (i: number, timestamp: number) => { - const index = Math.floor(Math.random() * 3); + const { + serviceName, + logMessage: { level, message }, + cloudRegion, + commonLongEntryFields, + } = constructLogsCommonData(); const isMalformed = i % 10 === 0; return log - .create() + .create({ isLogsDb }) .dataset('synth.3') - .message(MESSAGE_LOG_LEVELS[index].message as string) - .logLevel(isMalformed ? MORE_THAN_1024_CHARS : MESSAGE_LOG_LEVELS[index].level) // "ignore_above": 1024 in mapping - .service(SERVICE_NAMES[index]) + .message(message) + .logLevel(isMalformed ? MORE_THAN_1024_CHARS : level) // "ignore_above": 1024 in mapping + .service(serviceName) .defaults({ - 'trace.id': generateShortId(), - 'agent.name': 'synth-agent', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.resource.id': generateShortId(), - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], + ...commonLongEntryFields, 'cloud.availability_zone': isMalformed ? MORE_THAN_1024_CHARS // "ignore_above": 1024 in mapping - : `${CLOUD_REGION[index]}a`, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, + : `${cloudRegion}a`, }) .timestamp(timestamp); }; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_mock_data.ts b/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_mock_data.ts new file mode 100644 index 0000000000000..052ccce76499f --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_mock_data.ts @@ -0,0 +1,80 @@ +/* + * 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 { generateShortId } from '@kbn/apm-synthtrace-client'; +import { faker } from '@faker-js/faker'; +import { randomInt } from 'crypto'; +import moment from 'moment'; + +const { + internet: { ipv4, userAgent, httpMethod, httpStatusCode }, + word: { noun, verb }, +} = faker; + +// Utility function to get a random element from an array +const getAtIndexOrRandom = (values: T[], index?: number) => + values[index ?? randomInt(values.length)]; + +// Arrays for data +const LOG_LEVELS: string[] = ['FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE']; + +const JAVA_LOG_MESSAGES = [ + '[main] com.example1.core.ApplicationCore - Critical failure: NullPointerException encountered during startup', + '[main] com.example.service.UserService - User registration completed for userId: 12345', + '[main] com.example3.util.JsonParser - Parsing JSON response from external API', + '[main] com.example4.security.AuthManager - Unauthorized access attempt detected for userId: 67890', + '[main] com.example5.dao.UserDao - Database query failed: java.sql.SQLException: Timeout expired', +]; + +const IP_ADDRESSES = [ + '223.72.43.22', + '20.24.184.101', + '178.173.228.103', + '147.161.184.179', + '34.136.92.88', +]; + +const GEO_COORDINATES = [ + [116.3861, 39.9143], + [103.8554, 1.3036], + [139.7425, 35.6164], + [2.4075, 48.8323], + [-95.8517, 41.2591], +]; + +const CLOUD_PROVIDERS = ['gcp', 'aws', 'azure']; +const CLOUD_REGION = ['eu-central-1', 'us-east-1', 'area-51']; + +const CLUSTER = [ + { clusterId: generateShortId(), clusterName: 'synth-cluster-1', namespace: 'default' }, + { clusterId: generateShortId(), clusterName: 'synth-cluster-2', namespace: 'production' }, + { clusterId: generateShortId(), clusterName: 'synth-cluster-3', namespace: 'kube' }, +]; + +const SERVICE_NAMES = Array(3) + .fill(null) + .map((_, idx) => `synth-service-${idx}`); + +// Functions to get random elements +export const getCluster = (index?: number) => getAtIndexOrRandom(CLUSTER, index); +export const getIpAddress = (index?: number) => getAtIndexOrRandom(IP_ADDRESSES, index); +export const getGeoCoordinate = (index?: number) => getAtIndexOrRandom(GEO_COORDINATES, index); +export const getCloudProvider = (index?: number) => getAtIndexOrRandom(CLOUD_PROVIDERS, index); +export const getCloudRegion = (index?: number) => getAtIndexOrRandom(CLOUD_REGION, index); +export const getServiceName = (index?: number) => getAtIndexOrRandom(SERVICE_NAMES, index); +export const getJavaLog = () => + `${moment().format('YYYY-MM-DD HH:mm:ss,SSS')} ${getAtIndexOrRandom( + LOG_LEVELS + )} ${getAtIndexOrRandom(JAVA_LOG_MESSAGES)}`; + +export const getWebLog = () => { + const path = `/api/${noun()}/${verb()}`; + const bytes = randomInt(100, 4000); + + return `${ipv4()} - - [${moment().toISOString()}] "${httpMethod()} ${path} HTTP/1.1" ${httpStatusCode()} ${bytes} "-" "${userAgent()}"`; +}; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_scenario_opts_parser.ts b/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_scenario_opts_parser.ts new file mode 100644 index 0000000000000..73608100944de --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_scenario_opts_parser.ts @@ -0,0 +1,34 @@ +/* + * 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 parseStringToBoolean = (value: string, defaultValue?: boolean): boolean => { + if (!value) return defaultValue ?? false; + + switch (value.trim().toLowerCase()) { + case 'true': + return true; + case 'false': + return false; + default: + return defaultValue ?? /true/i.test(value); + } +}; + +export interface LogsScenarioOpts { + isLogsDb: boolean; +} + +export const parseLogsScenarioOpts = ( + scenarioOpts: Record | undefined +): LogsScenarioOpts => { + const isLogsDb = parseStringToBoolean(scenarioOpts?.logsdb); + + return { + isLogsDb, + }; +}; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/infra_hosts_with_apm_hosts.ts b/packages/kbn-apm-synthtrace/src/scenarios/infra_hosts_with_apm_hosts.ts index cbb4ad1b7cf6c..7d77f4bded599 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/infra_hosts_with_apm_hosts.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/infra_hosts_with_apm_hosts.ts @@ -6,29 +6,30 @@ * Side Public License, v 1. */ import { InfraDocument, apm, Instance, infra, ApmFields } from '@kbn/apm-synthtrace-client'; +import { random, times } from 'lodash'; import { Scenario } from '../cli/scenario'; import { withClient } from '../lib/utils/with_client'; import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; const ENVIRONMENT = getSynthtraceEnvironment(__filename); -const scenario: Scenario = async (runOptions) => { +const scenario: Scenario = async ({ + logger, + scenarioOpts = { numInstances: 10 }, +}) => { return { generate: ({ range, clients: { infraEsClient, apmEsClient } }) => { - const { numServices = 3, numHosts = 10 } = runOptions.scenarioOpts || {}; - const { logger } = runOptions; + const { numInstances } = scenarioOpts; + const transactionName = 'GET /host/{id}'; - // Infra hosts Data logic - - const HOSTS = Array(numHosts) - .fill(0) - .map((_, idx) => infra.host(`my-host-${idx}`)); + // Only half of the hosts will have system metrics + const hostList = times(numInstances / 2).map((index) => infra.host(`host-${index}`)); const hosts = range .interval('30s') .rate(1) .generator((timestamp) => - HOSTS.flatMap((host) => [ + hostList.flatMap((host) => [ host.cpu().timestamp(timestamp), host.memory().timestamp(timestamp), host.network().timestamp(timestamp), @@ -39,28 +40,46 @@ const scenario: Scenario = async (runOptions) => { ); // APM Simple Trace + const instances = times(numInstances).map((index) => { + return apm + .service({ + name: `synth-node-${index % 3}`, + environment: ENVIRONMENT, + agentName: 'node-js', + }) + .instance(`host-${index}`); + }); - const instances = [...Array(numServices).keys()].map((index) => - apm - .service({ name: `synth-node-${index}`, environment: ENVIRONMENT, agentName: 'nodejs' }) - .instance('instance') - ); const instanceSpans = (instance: Instance) => { + const hasHighDuration = Math.random() > 0.5; + const throughput = random(1, 10); + + const traces = range.ratePerMinute(throughput).generator((timestamp) => { + const parentDuration = hasHighDuration ? random(1000, 5000) : random(100, 1000); + return instance + .transaction({ transactionName }) + .timestamp(timestamp) + .duration(parentDuration) + .success(); + }); + + const cpuPct = random(0, 1); + const memoryFree = random(0, 1000); const metricsets = range .interval('30s') .rate(1) .generator((timestamp) => instance .appMetrics({ - 'system.memory.actual.free': 800, + 'system.memory.actual.free': memoryFree, 'system.memory.total': 1000, - 'system.cpu.total.norm.pct': 0.6, + 'system.cpu.total.norm.pct': cpuPct, 'system.process.cpu.total.norm.pct': 0.7, }) .timestamp(timestamp) ); - return [metricsets]; + return [traces, metricsets]; }; return [ diff --git a/packages/kbn-apm-synthtrace/src/scenarios/logs_and_metrics.ts b/packages/kbn-apm-synthtrace/src/scenarios/logs_and_metrics.ts index 4227f003771ef..42552b86b77e4 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/logs_and_metrics.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/logs_and_metrics.ts @@ -16,30 +16,30 @@ import { import { Scenario } from '../cli/scenario'; import { withClient } from '../lib/utils/with_client'; import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; +import { parseLogsScenarioOpts } from './helpers/logs_scenario_opts_parser'; +import { IndexTemplateName } from '../lib/logs/custom_logsdb_index_templates'; +import { getCluster, getCloudRegion, getCloudProvider } from './helpers/logs_mock_data'; const ENVIRONMENT = getSynthtraceEnvironment(__filename); +// Logs Data logic +const MESSAGE_LOG_LEVELS = [ + { message: 'A simple log', level: 'info' }, + { message: 'Yet another debug log', level: 'debug' }, + { message: 'Error with certificate: "ca_trusted_fingerprint"', level: 'error' }, +]; + const scenario: Scenario = async (runOptions) => { + const { isLogsDb } = parseLogsScenarioOpts(runOptions.scenarioOpts); + return { + bootstrap: async ({ logsEsClient }) => { + if (isLogsDb) await logsEsClient.createIndexTemplate(IndexTemplateName.LogsDb); + }, generate: ({ range, clients: { logsEsClient, apmEsClient } }) => { const { numServices = 3 } = runOptions.scenarioOpts || {}; const { logger } = runOptions; - // Logs Data logic - const MESSAGE_LOG_LEVELS = [ - { message: 'A simple log', level: 'info' }, - { message: 'Yet another debug log', level: 'debug' }, - { message: 'Error with certificate: "ca_trusted_fingerprint"', level: 'error' }, - ]; - const CLOUD_PROVIDERS = ['gcp', 'aws', 'azure']; - const CLOUD_REGION = ['eu-central-1', 'us-east-1', 'area-51']; - - const CLUSTER = [ - { clusterId: generateShortId(), clusterName: 'synth-cluster-1' }, - { clusterId: generateShortId(), clusterName: 'synth-cluster-2' }, - { clusterId: generateShortId(), clusterName: 'synth-cluster-3' }, - ]; - const SERVICE_NAMES = Array(3) .fill(null) .map((_, idx) => `synth-service-${idx}`); @@ -52,20 +52,22 @@ const scenario: Scenario = async (runOptions) => { .fill(0) .map(() => { const index = Math.floor(Math.random() * 3); + const { clusterId, clusterName } = getCluster(index); + const cloudRegion = getCloudRegion(index); return log - .create() + .create({ isLogsDb }) .message(MESSAGE_LOG_LEVELS[index].message) .logLevel(MESSAGE_LOG_LEVELS[index].level) .service(SERVICE_NAMES[index]) .defaults({ 'trace.id': generateShortId(), 'agent.name': 'synth-agent', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, + 'orchestrator.cluster.name': clusterName, + 'orchestrator.cluster.id': clusterId, 'orchestrator.resource.id': generateShortId(), - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], - 'cloud.availability_zone': `${CLOUD_REGION[index]}a`, + 'cloud.provider': getCloudProvider(), + 'cloud.region': cloudRegion, + 'cloud.availability_zone': `${cloudRegion}a`, 'cloud.project.id': generateShortId(), 'cloud.instance.id': generateShortId(), 'log.file.path': `/logs/${generateLongId()}/error.txt`, diff --git a/packages/kbn-apm-synthtrace/src/scenarios/logs_traces_hosts.ts b/packages/kbn-apm-synthtrace/src/scenarios/logs_traces_hosts.ts index a745ef6d2bca2..2c569985e87eb 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/logs_traces_hosts.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/logs_traces_hosts.ts @@ -20,6 +20,8 @@ import { Scenario } from '../cli/scenario'; import { Logger } from '../lib/utils/create_logger'; import { withClient } from '../lib/utils/with_client'; import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; +import { parseLogsScenarioOpts, parseStringToBoolean } from './helpers/logs_scenario_opts_parser'; +import { IndexTemplateName } from '../lib/logs/custom_logsdb_index_templates'; const ENVIRONMENT = getSynthtraceEnvironment(__filename); @@ -38,10 +40,16 @@ const DEFAULT_SCENARIO_OPTS = { logsRate: 1, ingestHosts: true, ingestTraces: true, + logsdb: false, }; const scenario: Scenario = async (runOptions) => { + const { isLogsDb } = parseLogsScenarioOpts(runOptions.scenarioOpts); + return { + bootstrap: async ({ logsEsClient }) => { + if (isLogsDb) await logsEsClient.createIndexTemplate(IndexTemplateName.LogsDb); + }, generate: ({ range, clients: { logsEsClient, infraEsClient, apmEsClient } }) => { const { numSpaces, @@ -58,6 +66,10 @@ const scenario: Scenario = async (runOp ingestHosts, ingestTraces, } = { ...DEFAULT_SCENARIO_OPTS, ...(runOptions.scenarioOpts || {}) }; + + const parsedIngestHosts = parseStringToBoolean(`${ingestHosts}`); + const parsedIngestTraces = parseStringToBoolean(`${ingestTraces}`); + const { logger } = runOptions; killIfUnknownScenarioOptions(logger, runOptions.scenarioOpts || {}); @@ -189,7 +201,7 @@ const scenario: Scenario = async (runOp const customFields = getExtraFields(numCustomFields, isMalformed, customFieldPrefix); return log - .create() + .create({ isLogsDb }) .dataset(dataset) .message(message) .logLevel(logLevel) @@ -220,7 +232,7 @@ const scenario: Scenario = async (runOp }); return [ - ...(ingestHosts + ...(parsedIngestHosts ? [ withClient( infraEsClient, @@ -228,7 +240,7 @@ const scenario: Scenario = async (runOp ), ] : []), - ...(ingestTraces + ...(parsedIngestTraces ? [ withClient( apmEsClient, diff --git a/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts b/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts index d617bbe54d3c4..a7f89216d0ee4 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts @@ -6,36 +6,72 @@ * Side Public License, v 1. */ import { LogDocument, log, generateShortId, generateLongId } from '@kbn/apm-synthtrace-client'; +import moment from 'moment'; import { Scenario } from '../cli/scenario'; +import { IndexTemplateName } from '../lib/logs/custom_logsdb_index_templates'; import { withClient } from '../lib/utils/with_client'; +import { + getServiceName, + getGeoCoordinate, + getIpAddress, + getCluster, + getCloudProvider, + getCloudRegion, +} from './helpers/logs_mock_data'; +import { parseLogsScenarioOpts } from './helpers/logs_scenario_opts_parser'; + +// Logs Data logic +const MESSAGE_LOG_LEVELS = [ + { message: 'A simple log with something random in the middle', level: 'info' }, + { message: 'Yet another debug log', level: 'debug' }, + { message: 'Error with certificate: "ca_trusted_fingerprint"', level: 'error' }, +]; const MORE_THAN_1024_CHARS = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?'; const scenario: Scenario = async (runOptions) => { + const { isLogsDb } = parseLogsScenarioOpts(runOptions.scenarioOpts); + + const constructLogsCommonData = () => { + const index = Math.floor(Math.random() * 3); + const serviceName = getServiceName(index); + const logMessage = MESSAGE_LOG_LEVELS[index]; + const { clusterId, clusterName, namespace } = getCluster(index); + const cloudRegion = getCloudRegion(index); + + const commonLongEntryFields: LogDocument = { + 'trace.id': generateShortId(), + 'agent.name': 'nodejs', + 'orchestrator.cluster.name': clusterName, + 'orchestrator.cluster.id': clusterId, + 'orchestrator.namespace': namespace, + 'container.name': `${serviceName}-${generateShortId()}`, + 'orchestrator.resource.id': generateShortId(), + 'cloud.provider': getCloudProvider(), + 'cloud.region': cloudRegion, + 'cloud.availability_zone': `${cloudRegion}a`, + 'cloud.project.id': generateShortId(), + 'cloud.instance.id': generateShortId(), + 'log.file.path': `/logs/${generateLongId()}/error.txt`, + }; + + return { + index, + serviceName, + logMessage, + cloudRegion, + commonLongEntryFields, + }; + }; + return { + bootstrap: async ({ logsEsClient }) => { + if (isLogsDb) await logsEsClient.createIndexTemplate(IndexTemplateName.LogsDb); + }, generate: ({ range, clients: { logsEsClient } }) => { const { logger } = runOptions; - // Logs Data logic - const MESSAGE_LOG_LEVELS = [ - { message: 'A simple log with something random in the middle', level: 'info' }, - { message: 'Yet another debug log', level: 'debug' }, - { message: 'Error with certificate: "ca_trusted_fingerprint"', level: 'error' }, - ]; - const CLOUD_PROVIDERS = ['gcp', 'aws', 'azure']; - const CLOUD_REGION = ['eu-central-1', 'us-east-1', 'area-51']; - - const CLUSTER = [ - { clusterId: generateShortId(), clusterName: 'synth-cluster-1', namespace: 'default' }, - { clusterId: generateShortId(), clusterName: 'synth-cluster-2', namespace: 'production' }, - { clusterId: generateShortId(), clusterName: 'synth-cluster-3', namespace: 'kube' }, - ]; - - const SERVICE_NAMES = Array(3) - .fill(null) - .map((_, idx) => `synth-service-${idx}`); - const logs = range .interval('1m') .rate(1) @@ -43,30 +79,20 @@ const scenario: Scenario = async (runOptions) => { return Array(3) .fill(0) .map(() => { - const index = Math.floor(Math.random() * 3); - const { message, level } = MESSAGE_LOG_LEVELS[index]; - const serviceName = SERVICE_NAMES[index]; + const { + serviceName, + logMessage: { level, message }, + commonLongEntryFields, + } = constructLogsCommonData(); return log - .create() + .create({ isLogsDb }) .message(message.replace('', generateShortId())) .logLevel(level) .service(serviceName) - .defaults({ - 'trace.id': generateShortId(), - 'agent.name': 'nodejs', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.namespace': CLUSTER[index].namespace, - 'container.name': `${SERVICE_NAMES[index]}-${generateShortId()}`, - 'orchestrator.resource.id': generateShortId(), - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], - 'cloud.availability_zone': `${CLOUD_REGION[index]}a`, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, - }) + .setGeoLocation(getGeoCoordinate()) + .setHostIp(getIpAddress()) + .defaults(commonLongEntryFields) .timestamp(timestamp); }); }); @@ -78,25 +104,20 @@ const scenario: Scenario = async (runOptions) => { return Array(3) .fill(0) .map(() => { - const index = Math.floor(Math.random() * 3); + const { + serviceName, + logMessage: { message }, + commonLongEntryFields, + } = constructLogsCommonData(); + return log - .create() - .service(SERVICE_NAMES[index]) + .create({ isLogsDb }) + .service(serviceName) + .setGeoLocation(getGeoCoordinate()) + .setHostIp(getIpAddress()) .defaults({ - 'trace.id': generateShortId(), - 'error.message': MESSAGE_LOG_LEVELS[index].message, - 'agent.name': 'nodejs', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.resource.id': generateShortId(), - 'orchestrator.namespace': CLUSTER[index].namespace, - 'container.name': `${SERVICE_NAMES[index]}-${generateShortId()}`, - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], - 'cloud.availability_zone': `${CLOUD_REGION[index]}a`, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, + ...commonLongEntryFields, + 'error.message': message, }) .timestamp(timestamp); }); @@ -109,27 +130,22 @@ const scenario: Scenario = async (runOptions) => { return Array(3) .fill(0) .map(() => { - const index = Math.floor(Math.random() * 3); + const { + serviceName, + logMessage: { level, message }, + commonLongEntryFields, + } = constructLogsCommonData(); + return log - .create() - .logLevel(MESSAGE_LOG_LEVELS[index].level) - .service(SERVICE_NAMES[index]) + .create({ isLogsDb }) + .logLevel(level) + .service(serviceName) + .setGeoLocation(getGeoCoordinate()) + .setHostIp(getIpAddress()) .defaults({ - 'trace.id': generateShortId(), - 'error.message': MESSAGE_LOG_LEVELS[index].message, + ...commonLongEntryFields, + 'error.message': message, 'error.exception.stacktrace': 'Error message in error.exception.stacktrace', - 'agent.name': 'nodejs', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.resource.id': generateShortId(), - 'orchestrator.namespace': CLUSTER[index].namespace, - 'container.name': `${SERVICE_NAMES[index]}-${generateShortId()}`, - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], - 'cloud.availability_zone': `${CLOUD_REGION[index]}a`, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, }) .timestamp(timestamp); }); @@ -142,27 +158,26 @@ const scenario: Scenario = async (runOptions) => { return Array(3) .fill(0) .map(() => { - const index = Math.floor(Math.random() * 3); + const { + serviceName, + logMessage: { level, message }, + commonLongEntryFields, + } = constructLogsCommonData(); + + const eventDate = moment().toDate(); + return log - .create() - .logLevel(MESSAGE_LOG_LEVELS[index].level) - .service(SERVICE_NAMES[index]) + .create({ isLogsDb }) + .logLevel(level) + .service(serviceName) + .setGeoLocation(getGeoCoordinate()) + .setHostIp(getIpAddress()) .defaults({ - 'trace.id': generateShortId(), - 'event.original': MESSAGE_LOG_LEVELS[index].message, + ...commonLongEntryFields, + 'event.original': message, 'error.log.stacktrace': 'Error message in error.log.stacktrace', - 'agent.name': 'nodejs', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.resource.id': generateShortId(), - 'orchestrator.namespace': CLUSTER[index].namespace, - 'container.name': `${SERVICE_NAMES[index]}-${generateShortId()}`, - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], - 'cloud.availability_zone': `${CLOUD_REGION[index]}a`, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, + 'event.start': eventDate, + 'event.end': moment(eventDate).add(1, 'm').toDate(), }) .timestamp(timestamp); }); @@ -175,25 +190,20 @@ const scenario: Scenario = async (runOptions) => { return Array(3) .fill(0) .map(() => { - const index = Math.floor(Math.random() * 3); + const { + serviceName, + logMessage: { level }, + commonLongEntryFields, + } = constructLogsCommonData(); + return log - .create() - .logLevel(MESSAGE_LOG_LEVELS[index].level) - .service(SERVICE_NAMES[index]) + .create({ isLogsDb }) + .logLevel(level) + .service(serviceName) + .setGeoLocation(getGeoCoordinate()) + .setHostIp(getIpAddress()) .defaults({ - 'trace.id': generateShortId(), - 'agent.name': 'nodejs', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.resource.id': generateShortId(), - 'orchestrator.namespace': CLUSTER[index].namespace, - 'container.name': `${SERVICE_NAMES[index]}-${generateShortId()}`, - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], - 'cloud.availability_zone': `${CLOUD_REGION[index]}a`, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, + ...commonLongEntryFields, 'error.stack_trace': 'Error message in error.stack_trace', }) .timestamp(timestamp); @@ -207,26 +217,24 @@ const scenario: Scenario = async (runOptions) => { return Array(3) .fill(0) .map(() => { - const index = Math.floor(Math.random() * 3); + const { + serviceName, + logMessage: { message }, + cloudRegion, + commonLongEntryFields, + } = constructLogsCommonData(); + return log - .create() - .message(MESSAGE_LOG_LEVELS[index].message) + .create({ isLogsDb }) + .message(message) .logLevel(MORE_THAN_1024_CHARS) - .service(SERVICE_NAMES[index]) + .setGeoLocation(getGeoCoordinate()) + .setHostIp(getIpAddress()) + .service(serviceName) .defaults({ - 'trace.id': generateShortId(), - 'agent.name': 'nodejs', - 'orchestrator.cluster.name': CLUSTER[index].clusterName, - 'orchestrator.cluster.id': CLUSTER[index].clusterId, - 'orchestrator.namespace': CLUSTER[index].namespace, - 'container.name': `${SERVICE_NAMES[index]}-${generateShortId()}`, - 'orchestrator.resource.id': generateShortId(), - 'cloud.provider': CLOUD_PROVIDERS[Math.floor(Math.random() * 3)], - 'cloud.region': CLOUD_REGION[index], + ...commonLongEntryFields, + 'cloud.region': cloudRegion, 'cloud.availability_zone': MORE_THAN_1024_CHARS, - 'cloud.project.id': generateShortId(), - 'cloud.instance.id': generateShortId(), - 'log.file.path': `/logs/${generateLongId()}/error.txt`, }) .timestamp(timestamp); }); diff --git a/packages/kbn-apm-synthtrace/src/scenarios/spiked_latency.ts b/packages/kbn-apm-synthtrace/src/scenarios/spiked_latency.ts index 13eb4dcd3f6d6..69394a9688231 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/spiked_latency.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/spiked_latency.ts @@ -18,13 +18,20 @@ import { import { Scenario } from '../cli/scenario'; import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; import { withClient } from '../lib/utils/with_client'; +import { parseLogsScenarioOpts } from './helpers/logs_scenario_opts_parser'; +import { IndexTemplateName } from '../lib/logs/custom_logsdb_index_templates'; const ENVIRONMENT = getSynthtraceEnvironment(__filename); const alwaysSpikeTransactionName = 'GET /always-spike'; const sometimesSpikeTransactionName = 'GET /sometimes-spike'; -const scenario: Scenario = async ({ logger }) => { +const scenario: Scenario = async ({ logger, ...runOptions }) => { + const { isLogsDb } = parseLogsScenarioOpts(runOptions.scenarioOpts); + return { + bootstrap: async ({ logsEsClient }) => { + if (isLogsDb) await logsEsClient.createIndexTemplate(IndexTemplateName.LogsDb); + }, generate: ({ range, clients: { apmEsClient, logsEsClient } }) => { const serviceNames = ['spikey-frontend', 'spikey-backend']; @@ -63,7 +70,7 @@ const scenario: Scenario = async ({ logger }) => { } = clusters[clusterIndex]; return log - .create() + .create({ isLogsDb }) .message(`Error message #${generateShortId()} from ${serviceName}`) .logLevel('error') .service(serviceName) diff --git a/packages/kbn-apm-synthtrace/src/scenarios/traces_logs_assets.ts b/packages/kbn-apm-synthtrace/src/scenarios/traces_logs_assets.ts index 5b3e6fcf4b350..66bfb2db54e13 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/traces_logs_assets.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/traces_logs_assets.ts @@ -18,16 +18,22 @@ import { import { random } from 'lodash'; import { Readable } from 'stream'; import { Scenario } from '../cli/scenario'; +import { IndexTemplateName } from '../lib/logs/custom_logsdb_index_templates'; import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; import { withClient } from '../lib/utils/with_client'; +import { parseLogsScenarioOpts } from './helpers/logs_scenario_opts_parser'; const ENVIRONMENT = getSynthtraceEnvironment(__filename); const scenario: Scenario = async (runOptions) => { - const { logger } = runOptions; + const { logger, scenarioOpts } = runOptions; const { numServices = 3, numHosts = 10 } = runOptions.scenarioOpts || {}; + const { isLogsDb } = parseLogsScenarioOpts(scenarioOpts); return { + bootstrap: async ({ logsEsClient }) => { + if (isLogsDb) await logsEsClient.createIndexTemplate(IndexTemplateName.LogsDb); + }, generate: ({ range, clients: { apmEsClient, assetsEsClient, logsEsClient, infraEsClient }, @@ -142,7 +148,7 @@ const scenario: Scenario = async (runOptions) => { }; return log - .create() + .create({ isLogsDb }) .message(message.replace('', generateShortId())) .logLevel(level) .service('multi-signal-service') @@ -182,7 +188,7 @@ const scenario: Scenario = async (runOptions) => { }; return log - .create() + .create({ isLogsDb }) .message(message.replace('', generateShortId())) .logLevel(level) .service('logs-only-services') diff --git a/packages/kbn-apm-synthtrace/src/scenarios/unstructured_logs.ts b/packages/kbn-apm-synthtrace/src/scenarios/unstructured_logs.ts new file mode 100644 index 0000000000000..fe9eee2ae1f32 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/unstructured_logs.ts @@ -0,0 +1,47 @@ +/* + * 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 { LogDocument, log } from '@kbn/apm-synthtrace-client'; +import { Scenario } from '../cli/scenario'; +import { IndexTemplateName } from '../lib/logs/custom_logsdb_index_templates'; +import { withClient } from '../lib/utils/with_client'; +import { parseLogsScenarioOpts } from './helpers/logs_scenario_opts_parser'; +import { getJavaLog, getWebLog } from './helpers/logs_mock_data'; + +const scenario: Scenario = async (runOptions) => { + const { isLogsDb } = parseLogsScenarioOpts(runOptions.scenarioOpts); + return { + bootstrap: async ({ logsEsClient }) => { + if (isLogsDb) await logsEsClient.createIndexTemplate(IndexTemplateName.LogsDb); + }, + generate: ({ range, clients: { logsEsClient } }) => { + const { logger } = runOptions; + + const datasetJavaLogs = (timestamp: number) => + log.create({ isLogsDb }).dataset('java').message(getJavaLog()).timestamp(timestamp); + + const datasetWebLogs = (timestamp: number) => + log.create({ isLogsDb }).dataset('web').message(getWebLog()).timestamp(timestamp); + + const logs = range + .interval('1m') + .rate(1) + .generator((timestamp) => { + return Array(200) + .fill(0) + .flatMap((_, index) => [datasetJavaLogs(timestamp), datasetWebLogs(timestamp)]); + }); + + return withClient( + logsEsClient, + logger.perf('generating_logs', () => logs) + ); + }, + }; +}; + +export default scenario; diff --git a/packages/kbn-apm-synthtrace/tsconfig.json b/packages/kbn-apm-synthtrace/tsconfig.json index 22ff0442879ab..e5ca7beabd45c 100644 --- a/packages/kbn-apm-synthtrace/tsconfig.json +++ b/packages/kbn-apm-synthtrace/tsconfig.json @@ -8,6 +8,7 @@ "kbn_references": [ "@kbn/datemath", "@kbn/apm-synthtrace-client", + "@kbn/dev-utils", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-babel-transform/fast_async_transformer.js b/packages/kbn-babel-transform/fast_async_transformer.js index fad1a1762ba4d..a9793e9faa0d9 100644 --- a/packages/kbn-babel-transform/fast_async_transformer.js +++ b/packages/kbn-babel-transform/fast_async_transformer.js @@ -39,6 +39,8 @@ async function withFastAsyncTransform(config, block) { try { await block(transform); success = true; + } catch (e) { + console.error('Error during transformation', e); } finally { try { await pool.destroy(); diff --git a/packages/kbn-cbor/README.md b/packages/kbn-cbor/README.md new file mode 100644 index 0000000000000..3f28f45253e80 --- /dev/null +++ b/packages/kbn-cbor/README.md @@ -0,0 +1,3 @@ +# @kbn/cbor + +Simple wrapper around borc to expose CBOR encode and decode methods with reasonable performance and no native modules \ No newline at end of file diff --git a/packages/kbn-cbor/index.test.ts b/packages/kbn-cbor/index.test.ts new file mode 100644 index 0000000000000..706fd691e4731 --- /dev/null +++ b/packages/kbn-cbor/index.test.ts @@ -0,0 +1,40 @@ +/* + * 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 { encode, decode } from '.'; + +describe('KbnCbor', () => { + it('should correctly encode and decode data', () => { + const data = { hello: 'world', count: 123, isValid: true }; + + // encoding + const encoded = encode(data); + expect(encoded).toBeInstanceOf(Buffer); + expect(encoded.length).toBeGreaterThan(0); + + // decoding + const decoded = decode(encoded); + expect(decoded).toEqual(data); + }); + + it('should encode data to Buffer', () => { + const data = { foo: 'bar' }; + + const encoded = encode(data); + expect(Buffer.isBuffer(encoded)).toBe(true); + }); + + it('should decode Buffer to original data', () => { + const data = { foo: 'bar', num: 42, arr: [1, 2, 3] }; + + const encoded = encode(data); + const decoded = decode(encoded); + + expect(decoded).toEqual(data); + }); +}); diff --git a/packages/kbn-cbor/index.ts b/packages/kbn-cbor/index.ts new file mode 100644 index 0000000000000..6b55b931e7852 --- /dev/null +++ b/packages/kbn-cbor/index.ts @@ -0,0 +1,25 @@ +/* + * 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. + */ + +// NOTE: This can possibly be replaced with node-cbor using encode, and decodeFirstSync if we do need +// to change into something better maintained but for now we are going to stick with borc as it is +// a little faster +import { encode as encodeJS, decode as decodeJS } from 'borc'; + +export class KbnCbor { + static encode(data: unknown) { + return encodeJS(data); + } + + static decode(uint8: any) { + return decodeJS(uint8); + } +} + +export const encode = KbnCbor.encode; +export const decode = KbnCbor.decode; diff --git a/packages/kbn-cbor/jest.config.js b/packages/kbn-cbor/jest.config.js new file mode 100644 index 0000000000000..e804d351d8d9d --- /dev/null +++ b/packages/kbn-cbor/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../..', + roots: ['/packages/kbn-cbor'], +}; diff --git a/packages/kbn-cbor/kibana.jsonc b/packages/kbn-cbor/kibana.jsonc new file mode 100644 index 0000000000000..91ecbb2d27def --- /dev/null +++ b/packages/kbn-cbor/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/cbor", + "owner": "@elastic/kibana-operations" +} diff --git a/packages/kbn-cbor/package.json b/packages/kbn-cbor/package.json new file mode 100644 index 0000000000000..20d13f0f907fa --- /dev/null +++ b/packages/kbn-cbor/package.json @@ -0,0 +1,7 @@ +{ + "name": "@kbn/cbor", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0", + "main": "./index.ts" +} diff --git a/packages/kbn-cbor/tsconfig.json b/packages/kbn-cbor/tsconfig.json new file mode 100644 index 0000000000000..f4b12f8b2de2b --- /dev/null +++ b/packages/kbn-cbor/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + "../../typings/borc.d.ts" + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [] +} diff --git a/packages/kbn-check-mappings-update-cli/current_fields.json b/packages/kbn-check-mappings-update-cli/current_fields.json index d891c7ae5d095..aa84c709c655b 100644 --- a/packages/kbn-check-mappings-update-cli/current_fields.json +++ b/packages/kbn-check-mappings-update-cli/current_fields.json @@ -436,6 +436,7 @@ "updated_by", "version" ], + "favorites": [], "file": [ "FileKind", "Meta", @@ -459,6 +460,36 @@ "token", "valid_until" ], + "fleet-agent-policies": [ + "advanced_settings", + "agent_features", + "agent_features.enabled", + "agent_features.name", + "data_output_id", + "description", + "download_source_id", + "fleet_server_host_id", + "global_data_tags", + "inactivity_timeout", + "is_default", + "is_default_fleet_server", + "is_managed", + "is_preconfigured", + "is_protected", + "keep_monitoring_alive", + "monitoring_enabled", + "monitoring_output_id", + "name", + "namespace", + "overrides", + "revision", + "schema_version", + "status", + "supports_agentless", + "unenroll_timeout", + "updated_at", + "updated_by" + ], "fleet-fleet-server-host": [ "host_urls", "is_default", @@ -468,6 +499,32 @@ "proxy_id" ], "fleet-message-signing-keys": [], + "fleet-package-policies": [ + "created_at", + "created_by", + "description", + "elasticsearch", + "enabled", + "inputs", + "is_managed", + "name", + "namespace", + "output_id", + "overrides", + "package", + "package.name", + "package.requires_root", + "package.title", + "package.version", + "policy_id", + "policy_ids", + "revision", + "secret_references", + "secret_references.id", + "updated_at", + "updated_by", + "vars" + ], "fleet-preconfiguration-deletion-record": [ "id" ], @@ -629,6 +686,7 @@ "is_managed", "name", "namespace", + "output_id", "overrides", "package", "package.name", @@ -649,7 +707,9 @@ "has_seen_add_data_notice", "output_secret_storage_requirements_met", "prerelease_integrations_enabled", - "secret_storage_requirements_met" + "secret_storage_requirements_met", + "use_space_awareness_migration_started_at", + "use_space_awareness_migration_status" ], "inventory-view": [], "kql-telemetry": [], diff --git a/packages/kbn-check-mappings-update-cli/current_mappings.json b/packages/kbn-check-mappings-update-cli/current_mappings.json index 8bec33bcda085..97e34c9b29341 100644 --- a/packages/kbn-check-mappings-update-cli/current_mappings.json +++ b/packages/kbn-check-mappings-update-cli/current_mappings.json @@ -1482,6 +1482,10 @@ } } }, + "favorites": { + "dynamic": false, + "properties": {} + }, "file": { "dynamic": false, "properties": { @@ -1549,6 +1553,99 @@ } } }, + "fleet-agent-policies": { + "properties": { + "advanced_settings": { + "index": false, + "type": "flattened" + }, + "agent_features": { + "properties": { + "enabled": { + "type": "boolean" + }, + "name": { + "type": "keyword" + } + } + }, + "data_output_id": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "download_source_id": { + "type": "keyword" + }, + "fleet_server_host_id": { + "type": "keyword" + }, + "global_data_tags": { + "index": false, + "type": "flattened" + }, + "inactivity_timeout": { + "type": "integer" + }, + "is_default": { + "type": "boolean" + }, + "is_default_fleet_server": { + "type": "boolean" + }, + "is_managed": { + "type": "boolean" + }, + "is_preconfigured": { + "type": "keyword" + }, + "is_protected": { + "type": "boolean" + }, + "keep_monitoring_alive": { + "type": "boolean" + }, + "monitoring_enabled": { + "index": false, + "type": "keyword" + }, + "monitoring_output_id": { + "type": "keyword" + }, + "name": { + "type": "keyword" + }, + "namespace": { + "type": "keyword" + }, + "overrides": { + "index": false, + "type": "flattened" + }, + "revision": { + "type": "integer" + }, + "schema_version": { + "type": "version" + }, + "status": { + "type": "keyword" + }, + "supports_agentless": { + "type": "boolean" + }, + "unenroll_timeout": { + "type": "integer" + }, + "updated_at": { + "type": "date" + }, + "updated_by": { + "type": "keyword" + } + } + }, "fleet-fleet-server-host": { "properties": { "host_urls": { @@ -1577,6 +1674,87 @@ "dynamic": false, "properties": {} }, + "fleet-package-policies": { + "properties": { + "created_at": { + "type": "date" + }, + "created_by": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "elasticsearch": { + "dynamic": false, + "properties": {} + }, + "enabled": { + "type": "boolean" + }, + "inputs": { + "dynamic": false, + "properties": {} + }, + "is_managed": { + "type": "boolean" + }, + "name": { + "type": "keyword" + }, + "namespace": { + "type": "keyword" + }, + "output_id": { + "type": "keyword" + }, + "overrides": { + "index": false, + "type": "flattened" + }, + "package": { + "properties": { + "name": { + "type": "keyword" + }, + "requires_root": { + "type": "boolean" + }, + "title": { + "type": "keyword" + }, + "version": { + "type": "keyword" + } + } + }, + "policy_id": { + "type": "keyword" + }, + "policy_ids": { + "type": "keyword" + }, + "revision": { + "type": "integer" + }, + "secret_references": { + "properties": { + "id": { + "type": "keyword" + } + } + }, + "updated_at": { + "type": "date" + }, + "updated_by": { + "type": "keyword" + }, + "vars": { + "type": "flattened" + } + } + }, "fleet-preconfiguration-deletion-record": { "properties": { "id": { @@ -2097,6 +2275,9 @@ "namespace": { "type": "keyword" }, + "output_id": { + "type": "keyword" + }, "overrides": { "index": false, "type": "flattened" @@ -2161,6 +2342,14 @@ }, "secret_storage_requirements_met": { "type": "boolean" + }, + "use_space_awareness_migration_started_at": { + "index": false, + "type": "date" + }, + "use_space_awareness_migration_status": { + "index": false, + "type": "keyword" } } }, diff --git a/packages/kbn-check-prod-native-modules-cli/README.md b/packages/kbn-check-prod-native-modules-cli/README.md new file mode 100644 index 0000000000000..4a5749a699ffa --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/README.md @@ -0,0 +1,3 @@ +# @kbn/check-prod-native-modules-cli + +Simple and straightforward CLI for searching for native modules installed as prod dependencies or as a result of any prod dependency. \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/check_prod_native_modules.test.ts b/packages/kbn-check-prod-native-modules-cli/check_prod_native_modules.test.ts new file mode 100644 index 0000000000000..ff795bf5a0b2d --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/check_prod_native_modules.test.ts @@ -0,0 +1,243 @@ +/* + * 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 { promises as fs, existsSync } from 'fs'; +import { ToolingLog } from '@kbn/tooling-log'; +import { findProductionDependencies, readYarnLock } from '@kbn/yarn-lock-validator'; +import { + checkProdNativeModules, + checkDependencies, + isNativeModule, +} from './check_prod_native_modules'; + +jest.mock('fs', () => ({ + promises: { + readdir: jest.fn(), + }, + existsSync: jest.fn(), +})); + +jest.mock('@kbn/repo-info', () => ({ + REPO_ROOT: '/mocked/repo/root', +})); + +jest.mock('@kbn/tooling-log', () => ({ + ToolingLog: jest.fn().mockImplementation(() => ({ + info: jest.fn(), + error: jest.fn(), + success: jest.fn(), + })), +})); + +jest.mock('@kbn/yarn-lock-validator', () => ({ + findProductionDependencies: jest.fn(), + readYarnLock: jest.fn(), +})); + +jest.mock( + // eslint-disable-next-line @kbn/imports/no_unresolvable_imports + '/test/node_modules/test-package/package.json', + () => ({ + name: 'test-package', + version: '1.0.0', + }), + { virtual: true } +); + +jest.mock( + // eslint-disable-next-line @kbn/imports/no_unresolvable_imports + '/test/node_modules/@scope/package/package.json', + () => ({ + name: '@scope/package', + version: '1.0.0', + }), + { virtual: true } +); + +describe('Check Prod Native Modules', () => { + let mockLog: jest.Mocked; + + beforeEach(() => { + jest.clearAllMocks(); + mockLog = new ToolingLog() as jest.Mocked; + }); + + describe('isNativeModule', () => { + it('should return true if binding.gyp is found', async () => { + (fs.readdir as jest.Mock).mockResolvedValueOnce([ + { name: 'binding.gyp', isDirectory: () => false }, + ]); + + const result = await isNativeModule('/test/path', mockLog); + expect(result).toBe(true); + }); + + it('should return true if .node file is found', async () => { + (fs.readdir as jest.Mock).mockResolvedValueOnce([ + { name: 'test.node', isDirectory: () => false }, + ]); + + const result = await isNativeModule('/test/path', mockLog); + expect(result).toBe(true); + }); + + it('should return false if no native module indicators are found', async () => { + (fs.readdir as jest.Mock).mockResolvedValueOnce([ + { name: 'regular.js', isDirectory: () => false }, + ]); + + const result = await isNativeModule('/test/path', mockLog); + expect(result).toBe(false); + }); + + it('should log an error if there is an issue reading the directory', async () => { + (fs.readdir as jest.Mock).mockRejectedValueOnce(new Error('Read error')); + + await isNativeModule('/test/path', mockLog); + expect(mockLog.error).toHaveBeenCalledWith('Error when reading /test/path: Read error'); + }); + }); + + describe('checkDependencies', () => { + it('should identify native modules in production dependencies', async () => { + const mockProductionDependencies = new Map([['test-package@1.0.0', true]]); + const mockProdNativeModulesFound: Array<{ name: string; version: string; path: string }> = []; + + (fs.readdir as jest.Mock).mockResolvedValueOnce([ + { name: 'test-package', isDirectory: () => true }, + ]); + (fs.readdir as jest.Mock) + .mockResolvedValueOnce([{ name: 'binding.gyp', isDirectory: () => false }]) + .mockResolvedValueOnce([]); + (existsSync as jest.Mock).mockReturnValue(true); + jest + // eslint-disable-next-line @typescript-eslint/no-var-requires + .spyOn(require('./check_prod_native_modules'), 'isNativeModule') + .mockResolvedValueOnce(true); + + await checkDependencies( + '/test/node_modules', + mockProductionDependencies, + mockProdNativeModulesFound, + mockLog + ); + + expect(mockProdNativeModulesFound).toEqual([ + { name: 'test-package', version: '1.0.0', path: '/test/node_modules/test-package' }, + ]); + }); + + it('should handle scoped packages', async () => { + const mockProductionDependencies = new Map([['@scope/package@1.0.0', true]]); + const mockProdNativeModulesFound: Array<{ name: string; version: string; path: string }> = []; + + (fs.readdir as jest.Mock) + .mockResolvedValueOnce([{ name: '@scope', isDirectory: () => true }]) + .mockResolvedValueOnce([{ name: 'package', isDirectory: () => true }]); + (fs.readdir as jest.Mock) + .mockResolvedValueOnce([{ name: 'binding.gyp', isDirectory: () => false }]) + .mockResolvedValueOnce([]); + (existsSync as jest.Mock).mockReturnValue(true); + (existsSync as jest.Mock).mockReturnValue(true); + jest + // eslint-disable-next-line @typescript-eslint/no-var-requires + .spyOn(require('./check_prod_native_modules'), 'isNativeModule') + .mockResolvedValueOnce(true); + + await checkDependencies( + '/test/node_modules', + mockProductionDependencies, + mockProdNativeModulesFound, + mockLog + ); + + expect(mockProdNativeModulesFound).toEqual([ + { name: '@scope/package', version: '1.0.0', path: '/test/node_modules/@scope/package' }, + ]); + }); + }); + + describe('checkProdNativeModules', () => { + it('should return false when no native modules are found', async () => { + (existsSync as jest.Mock).mockReturnValue(true); + (findProductionDependencies as jest.Mock).mockReturnValue(new Map()); + (readYarnLock as jest.Mock).mockResolvedValueOnce({}); + (fs.readdir as jest.Mock).mockResolvedValue([]); + jest + // eslint-disable-next-line @typescript-eslint/no-var-requires + .spyOn(require('./check_prod_native_modules'), 'checkDependencies') + .mockResolvedValue(undefined); + + const result = await checkProdNativeModules(mockLog); + + expect(result).toBe(false); + expect(mockLog.success).toHaveBeenCalledWith( + 'No production native modules installed were found' + ); + }); + + it('should return true and log errors when native modules are found', async () => { + (existsSync as jest.Mock).mockReturnValueOnce(true).mockReturnValueOnce(true); + (findProductionDependencies as jest.Mock).mockReturnValue( + new Map([['native-module@1.0.0', { name: 'native-module', version: '1.0.0' }]]) + ); + (readYarnLock as jest.Mock).mockResolvedValueOnce({}); + + // Mock loadPackageJson to return a mock package JSON object + jest + // eslint-disable-next-line @typescript-eslint/no-var-requires + .spyOn(require('./helpers'), 'loadPackageJson') + .mockImplementation((packageJsonPath: any) => { + return { + name: 'native-module', + version: '1.0.0', + }; + }); + + (fs.readdir as jest.Mock) + .mockResolvedValueOnce([{ name: 'native-module', isDirectory: () => true }]) + // .mockResolvedValueOnce([{ name: 'package.json', isDirectory: () => false }]) + .mockResolvedValueOnce([{ name: 'binding.gyp', isDirectory: () => false }]); + jest + // eslint-disable-next-line @typescript-eslint/no-var-requires + .spyOn(require('./check_prod_native_modules'), 'checkDependencies') + .mockImplementationOnce((_, __, prodNativeModulesFound: any) => { + prodNativeModulesFound.push({ + name: 'native-module', + version: '1.0.0', + path: '/path/to/native-module', + }); + }); + + const result = await checkProdNativeModules(mockLog); + + expect(result).toBe(true); + expect(mockLog.error).toHaveBeenNthCalledWith( + 1, + 'Production native module detected: node_modules/native-module' + ); + expect(mockLog.error).toHaveBeenNthCalledWith( + 2, + 'Production native modules were detected and logged above' + ); + }); + + it('should throw an error if root node_modules folder is not found', async () => { + (existsSync as jest.Mock).mockReturnValue(false); + (findProductionDependencies as jest.Mock).mockReturnValue(new Map()); + (readYarnLock as jest.Mock).mockResolvedValueOnce({}); + + const result = await checkProdNativeModules(mockLog); + + expect(result).toBe(true); + expect(mockLog.error).toHaveBeenCalledWith( + 'No root node_modules folder was found in the project. Impossible to continue' + ); + }); + }); +}); diff --git a/packages/kbn-check-prod-native-modules-cli/check_prod_native_modules.ts b/packages/kbn-check-prod-native-modules-cli/check_prod_native_modules.ts new file mode 100644 index 0000000000000..df188401abdd6 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/check_prod_native_modules.ts @@ -0,0 +1,150 @@ +/* + * 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 path from 'path'; +import { promises as fs, existsSync } from 'fs'; +import { REPO_ROOT } from '@kbn/repo-info'; +import type { ToolingLog } from '@kbn/tooling-log'; +import { findProductionDependencies, readYarnLock } from '@kbn/yarn-lock-validator'; +import { loadPackageJson } from './helpers'; + +// Checks if a given path contains a native module or not recursively +async function isNativeModule(modulePath: string, log: ToolingLog): Promise { + const stack: string[] = [modulePath]; + + while (stack.length > 0) { + const currentPath = stack.pop() as string; + + // Skip processing if the current directory is a node_modules folder + if (path.basename(currentPath) === 'node_modules') { + continue; + } + + try { + const entries = await fs.readdir(currentPath, { withFileTypes: true }); + + for (const entry of entries) { + const entryPath = path.join(currentPath, entry.name); + + if (entry.isDirectory()) { + stack.push(entryPath); + } else if (entry.name === 'binding.gyp' || entry.name.endsWith('.node')) { + return true; + } + } + } catch (err) { + log.error(`Error when reading ${currentPath}: ${err.message}`); + } + } + return false; +} + +// Searches through node_modules and for each module which is a prod dep (or a direct result of one) checks recursively for native modules +async function checkDependencies( + rootNodeModulesDir: string, + productionDependencies: Map, + prodNativeModulesFound: Array<{ name: string; version: string; path: string }>, + log: ToolingLog +) { + const stack: string[] = [rootNodeModulesDir]; + + while (stack.length > 0) { + const currentDir = stack.pop() as string; + + try { + const entries = await fs.readdir(currentDir, { withFileTypes: true }); + + for (const entry of entries) { + if (!entry.isDirectory()) continue; + + const entryPath = path.join(currentDir, entry.name); + if (entry.name.startsWith('@')) { + // Handle scoped packages (e.g., @scope/package) + stack.push(entryPath); + continue; + } + + const packageJsonPath = path.join(entryPath, 'package.json'); + if (existsSync(packageJsonPath)) { + const packageJson = loadPackageJson(packageJsonPath); + const dependencyKey = `${packageJson.name}@${packageJson.version}`; + + if (productionDependencies.has(dependencyKey)) { + const isNative = await isNativeModule(entryPath, log); + if (isNative) { + prodNativeModulesFound.push({ + name: packageJson.name, + version: packageJson.version, + path: entryPath, + }); + } + } + } + + // Adds nested node_modules to the stack to check for further dependencies + const nestedNodeModulesPath = path.join(entryPath, 'node_modules'); + if (existsSync(nestedNodeModulesPath)) { + stack.push(nestedNodeModulesPath); + } + } + } catch (err) { + throw new Error(`Error processing directory ${currentDir}: ${err.message}`); + } + } +} + +// Checks if there are native modules in the production dependencies +async function checkProdNativeModules(log: ToolingLog) { + log.info('Checking for native modules on production dependencies...'); + const rootNodeModulesDir = path.join(REPO_ROOT, 'node_modules'); + const prodNativeModulesFound: Array<{ name: string; version: string; path: string }> = []; + + try { + // Gets all production dependencies based on package.json and then searches across transient dependencies using lock file + const rawProductionDependencies = findProductionDependencies(log, await readYarnLock()); + + // Converts rawProductionDependencies into a simple Map of production dependencies + const productionDependencies: Map = new Map(); + rawProductionDependencies.forEach((depInfo, depKey) => { + productionDependencies.set(`${depInfo.name}@${depInfo.version}`, true); + }); + + // Fail if no root node_modules folder + if (!existsSync(rootNodeModulesDir)) { + throw new Error( + 'No root node_modules folder was found in the project. Impossible to continue' + ); + } + + // Goes into the node_modules folder and for each node_module which is a production dependency (or a result of one) checks recursively if there are native modules + await checkDependencies( + rootNodeModulesDir, + productionDependencies, + prodNativeModulesFound, + log + ); + + // In that case no prod native modules were found + if (!prodNativeModulesFound.length) { + log.success('No production native modules installed were found'); + return false; + } + + // Logs every detected native module at once + prodNativeModulesFound.forEach((dep) => { + log.error(`Production native module detected: ${path.relative(REPO_ROOT, dep.path)}`); + }); + + throw new Error('Production native modules were detected and logged above'); + } catch (err) { + log.error(err.message); + return true; + } +} + +export { checkProdNativeModules, checkDependencies, isNativeModule }; diff --git a/packages/kbn-check-prod-native-modules-cli/helpers.ts b/packages/kbn-check-prod-native-modules-cli/helpers.ts new file mode 100644 index 0000000000000..6efccaac6ad68 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/helpers.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. + */ + +// helper function to load package.json +function loadPackageJson(packageJsonPath: string) { + return require(packageJsonPath); +} + +export { loadPackageJson }; diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/node_modules/package-a/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/node_modules/package-a/package.json new file mode 100644 index 0000000000000..785a76c07d76f --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/node_modules/package-a/package.json @@ -0,0 +1,4 @@ +{ + "name": "package-a", + "version": "1.0.0" +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/node_modules/package-b/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/node_modules/package-b/package.json new file mode 100644 index 0000000000000..62a888ea46a01 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/node_modules/package-b/package.json @@ -0,0 +1,4 @@ +{ + "name": "package-b", + "version": "2.0.0" +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/package.json new file mode 100644 index 0000000000000..17cf802f22889 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/package.json @@ -0,0 +1,8 @@ +{ + "name": "no-native-modules-project", + "version": "1.0.0", + "dependencies": { + "package-a": "^1.0.0", + "package-b": "^2.0.0" + } +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/yarn.lock b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/yarn.lock new file mode 100644 index 0000000000000..e44b1d1767019 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_native_modules/yarn.lock @@ -0,0 +1,11 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +package-a@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-a/-/package-a-1.0.0.tgz" + integrity sha1-example123 + +package-b@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/package-b/-/package-b-2.0.0.tgz" + integrity sha1-example456 diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_node_modules/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_node_modules/package.json new file mode 100644 index 0000000000000..b8478fdabc03c --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_node_modules/package.json @@ -0,0 +1,8 @@ +{ + "name": "no-node-modules-project", + "version": "1.0.0", + "dependencies": { + "package-a": "^1.0.0", + "package-b": "^2.0.0" + } +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_node_modules/yarn.lock b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_node_modules/yarn.lock new file mode 100644 index 0000000000000..e44b1d1767019 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/no_node_modules/yarn.lock @@ -0,0 +1,11 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +package-a@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-a/-/package-a-1.0.0.tgz" + integrity sha1-example123 + +package-b@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/package-b/-/package-b-2.0.0.tgz" + integrity sha1-example456 diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/native-module/binding.gyp b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/native-module/binding.gyp new file mode 100644 index 0000000000000..4d850b6b74fdf --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/native-module/binding.gyp @@ -0,0 +1,8 @@ +{ + "targets": [ + { + "target_name": "native_module", + "sources": [ "" ] + } + ] +} diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/native-module/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/native-module/package.json new file mode 100644 index 0000000000000..2d11f7b6c542e --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/native-module/package.json @@ -0,0 +1,5 @@ +{ + "name": "native-module", + "version": "1.0.0", + "gypfile": true +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/package-b/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/package-b/package.json new file mode 100644 index 0000000000000..62a888ea46a01 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/node_modules/package-b/package.json @@ -0,0 +1,4 @@ +{ + "name": "package-b", + "version": "2.0.0" +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/package.json new file mode 100644 index 0000000000000..bf04488f0b8f6 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/package.json @@ -0,0 +1,10 @@ +{ + "name": "with-native-modules-project", + "version": "1.0.0", + "devDependencies": { + "native-module": "^1.0.0" + }, + "dependencies": { + "package-b": "^2.0.0" + } +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/yarn.lock b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/yarn.lock new file mode 100644 index 0000000000000..2dcb949a3fe54 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_dev_native_modules/yarn.lock @@ -0,0 +1,11 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +native-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/native-module/-/native-module-1.0.0.tgz" + integrity sha1-example789 + +package-b@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/package-b/-/package-b-2.0.0.tgz" + integrity sha1-example456 diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module/binding.gyp b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module/binding.gyp new file mode 100644 index 0000000000000..4d850b6b74fdf --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module/binding.gyp @@ -0,0 +1,8 @@ +{ + "targets": [ + { + "target_name": "native_module", + "sources": [ "" ] + } + ] +} diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module/package.json new file mode 100644 index 0000000000000..2d11f7b6c542e --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module/package.json @@ -0,0 +1,5 @@ +{ + "name": "native-module", + "version": "1.0.0", + "gypfile": true +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module2/a.node b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module2/a.node new file mode 100644 index 0000000000000..573541ac9702d --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module2/a.node @@ -0,0 +1 @@ +0 diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module2/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module2/package.json new file mode 100644 index 0000000000000..49afa2f226630 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/native-module2/package.json @@ -0,0 +1,4 @@ +{ + "name": "native-module2", + "version": "1.0.0" +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/package-b/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/package-b/package.json new file mode 100644 index 0000000000000..62a888ea46a01 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/node_modules/package-b/package.json @@ -0,0 +1,4 @@ +{ + "name": "package-b", + "version": "2.0.0" +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/package.json new file mode 100644 index 0000000000000..1f3541823693f --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/package.json @@ -0,0 +1,9 @@ +{ + "name": "with-native-modules-project", + "version": "1.0.0", + "dependencies": { + "native-module": "^1.0.0", + "native-module2": "^1.0.0", + "package-b": "^2.0.0" + } +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/yarn.lock b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/yarn.lock new file mode 100644 index 0000000000000..96e286d5b03cf --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_native_modules/yarn.lock @@ -0,0 +1,16 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +native-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/native-module/-/native-module-1.0.0.tgz" + integrity sha1-example789 + +native-module2@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/native-module/-/native-module2-1.0.0.tgz" + integrity sha1-example789 + +package-b@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/package-b/-/package-b-2.0.0.tgz" + integrity sha1-example456 diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/native-module/binding.gyp b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/native-module/binding.gyp new file mode 100644 index 0000000000000..4d850b6b74fdf --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/native-module/binding.gyp @@ -0,0 +1,8 @@ +{ + "targets": [ + { + "target_name": "native_module", + "sources": [ "" ] + } + ] +} diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/native-module/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/native-module/package.json new file mode 100644 index 0000000000000..2d11f7b6c542e --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/native-module/package.json @@ -0,0 +1,5 @@ +{ + "name": "native-module", + "version": "1.0.0", + "gypfile": true +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/package-a/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/package-a/package.json new file mode 100644 index 0000000000000..127ebe036ed37 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/package-a/package.json @@ -0,0 +1,7 @@ +{ + "name": "packaga-a", + "version": "1.0.0", + "dependencies": { + "native-module": "^1.0.0" + } +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/package-b/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/package-b/package.json new file mode 100644 index 0000000000000..62a888ea46a01 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/node_modules/package-b/package.json @@ -0,0 +1,4 @@ +{ + "name": "package-b", + "version": "2.0.0" +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/package.json b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/package.json new file mode 100644 index 0000000000000..22f67d7fdce96 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/package.json @@ -0,0 +1,8 @@ +{ + "name": "with-native-modules-project", + "version": "1.0.0", + "dependencies": { + "package-a": "^1.0.0", + "package-b": "^2.0.0" + } +} \ No newline at end of file diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/yarn.lock b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/yarn.lock new file mode 100644 index 0000000000000..61adb1a8b22b3 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/with_transient_native_modules/yarn.lock @@ -0,0 +1,18 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +native-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/native-module/-/native-module-1.0.0.tgz" + integrity sha1-example789 + +package-a@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-a/-/package-a-1.0.0.tgz" + integrity sha1-example789 + dependencies: + native-module "^1.0.0" + +package-b@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/package-b/-/package-b-2.0.0.tgz" + integrity sha1-example456 diff --git a/packages/kbn-check-prod-native-modules-cli/integration_tests/run_check_prod_native_modules.cli.test.ts b/packages/kbn-check-prod-native-modules-cli/integration_tests/run_check_prod_native_modules.cli.test.ts new file mode 100644 index 0000000000000..1df0501a544fe --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/integration_tests/run_check_prod_native_modules.cli.test.ts @@ -0,0 +1,151 @@ +/* + * 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 path from 'path'; +import fs from 'fs'; +import { ToolingLog } from '@kbn/tooling-log'; +import { checkProdNativeModules } from '../check_prod_native_modules'; + +describe('checkProdNativeModules', () => { + let mockLog: jest.Mocked; + const fixturesDir = path.join(__dirname, '__fixtures__'); + + beforeEach(() => { + mockLog = { + info: jest.fn(), + success: jest.fn(), + error: jest.fn(), + } as unknown as jest.Mocked; + + jest.clearAllMocks(); + }); + + it('should return false when no native modules are found', async () => { + // Use a fixture without native modules + const noNativeModulesDir = path.join(fixturesDir, 'no_native_modules'); + const noNativeModulesPkgJsonPath = path.join(noNativeModulesDir, 'package.json'); + jest.spyOn(process, 'cwd').mockReturnValue(noNativeModulesDir); + // eslint-disable-next-line @typescript-eslint/no-var-requires + jest.replaceProperty(require('@kbn/repo-info'), 'REPO_ROOT', noNativeModulesDir); + + const noNativeModulesPkgJson = JSON.parse(fs.readFileSync(noNativeModulesPkgJsonPath, 'utf8')); + // eslint-disable-next-line @typescript-eslint/no-var-requires + jest.replaceProperty(require('@kbn/repo-info'), 'kibanaPackageJson', noNativeModulesPkgJson); + + const result = await checkProdNativeModules(mockLog); + + expect(result).toBe(false); + expect(mockLog.success).toHaveBeenCalledWith( + 'No production native modules installed were found' + ); + }); + + it('should return true and log errors when native modules are found', async () => { + // Use a fixture with native modules + const withNativeModulesDir = path.join(fixturesDir, 'with_native_modules'); + const withNativeModulesPkgJsonPath = path.join(withNativeModulesDir, 'package.json'); + jest.spyOn(process, 'cwd').mockReturnValue(withNativeModulesDir); + // eslint-disable-next-line @typescript-eslint/no-var-requires + jest.replaceProperty(require('@kbn/repo-info'), 'REPO_ROOT', withNativeModulesDir); + + const withNativeModulesPkgJson = JSON.parse( + fs.readFileSync(withNativeModulesPkgJsonPath, 'utf8') + ); + // eslint-disable-next-line @typescript-eslint/no-var-requires + jest.replaceProperty(require('@kbn/repo-info'), 'kibanaPackageJson', withNativeModulesPkgJson); + + const result = await checkProdNativeModules(mockLog); + + expect(result).toBe(true); + expect(mockLog.error).toHaveBeenCalledWith( + expect.stringContaining('Production native module detected:') + ); + expect(mockLog.error).toHaveBeenCalledWith( + 'Production native modules were detected and logged above' + ); + }); + + it('should throw an error when root node_modules folder is not found', async () => { + // Use a fixture without node_modules + const noNodeModulesDir = path.join(fixturesDir, 'no_node_modules'); + const noNodeModulesPkgJsonPath = path.join(noNodeModulesDir, 'package.json'); + jest.spyOn(process, 'cwd').mockReturnValue(noNodeModulesDir); + + // eslint-disable-next-line @typescript-eslint/no-var-requires + jest.replaceProperty(require('@kbn/repo-info'), 'REPO_ROOT', noNodeModulesDir); + + const noNodeModulesPkgJson = JSON.parse(fs.readFileSync(noNodeModulesPkgJsonPath, 'utf8')); + // eslint-disable-next-line @typescript-eslint/no-var-requires + jest.replaceProperty(require('@kbn/repo-info'), 'kibanaPackageJson', noNodeModulesPkgJson); + + expect(await checkProdNativeModules(mockLog)).toBe(true); + expect(mockLog.error).toHaveBeenCalledWith( + 'No root node_modules folder was found in the project. Impossible to continue' + ); + }); + + it('should return false when no prod native modules are found', async () => { + // Use a fixture without native modules + const withDevNativeModulesDir = path.join(fixturesDir, 'with_dev_native_modules'); + const withDevNativeModulesPkgJsonPath = path.join(withDevNativeModulesDir, 'package.json'); + jest.spyOn(process, 'cwd').mockReturnValue(withDevNativeModulesDir); + // eslint-disable-next-line @typescript-eslint/no-var-requires + jest.replaceProperty(require('@kbn/repo-info'), 'REPO_ROOT', withDevNativeModulesDir); + + const withDevNativeModulesPkgJson = JSON.parse( + fs.readFileSync(withDevNativeModulesPkgJsonPath, 'utf8') + ); + + jest.replaceProperty( + // eslint-disable-next-line @typescript-eslint/no-var-requires + require('@kbn/repo-info'), + 'kibanaPackageJson', + withDevNativeModulesPkgJson + ); + + const result = await checkProdNativeModules(mockLog); + + expect(result).toBe(false); + expect(mockLog.success).toHaveBeenCalledWith( + 'No production native modules installed were found' + ); + }); + + it('should return true and log errors when prod transient native modules are found', async () => { + // Use a fixture with native modules + const withTransientNativeModulesDir = path.join(fixturesDir, 'with_transient_native_modules'); + const withTransientNativeModulesPkgJsonPath = path.join( + withTransientNativeModulesDir, + 'package.json' + ); + jest.spyOn(process, 'cwd').mockReturnValue(withTransientNativeModulesDir); + // eslint-disable-next-line @typescript-eslint/no-var-requires + jest.replaceProperty(require('@kbn/repo-info'), 'REPO_ROOT', withTransientNativeModulesDir); + + const withTransientNativeModulesPkgJson = JSON.parse( + fs.readFileSync(withTransientNativeModulesPkgJsonPath, 'utf8') + ); + + jest.replaceProperty( + // eslint-disable-next-line @typescript-eslint/no-var-requires + require('@kbn/repo-info'), + 'kibanaPackageJson', + withTransientNativeModulesPkgJson + ); + + const result = await checkProdNativeModules(mockLog); + + expect(result).toBe(true); + expect(mockLog.error).toHaveBeenCalledWith( + expect.stringContaining('Production native module detected:') + ); + expect(mockLog.error).toHaveBeenCalledWith( + 'Production native modules were detected and logged above' + ); + }); +}); diff --git a/packages/kbn-check-prod-native-modules-cli/jest.config.js b/packages/kbn-check-prod-native-modules-cli/jest.config.js new file mode 100644 index 0000000000000..3a0fc2e1c98d5 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../..', + roots: ['/packages/kbn-check-prod-native-modules-cli'], +}; diff --git a/packages/kbn-check-prod-native-modules-cli/jest.integration.config.js b/packages/kbn-check-prod-native-modules-cli/jest.integration.config.js new file mode 100644 index 0000000000000..17aa3994d5763 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/jest.integration.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test/jest_integration_node', + rootDir: '../..', + roots: ['/packages/kbn-check-prod-native-modules-cli'], +}; diff --git a/packages/kbn-check-prod-native-modules-cli/kibana.jsonc b/packages/kbn-check-prod-native-modules-cli/kibana.jsonc new file mode 100644 index 0000000000000..6daa5ddb876ff --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/kibana.jsonc @@ -0,0 +1,6 @@ +{ + "type": "shared-server", + "id": "@kbn/check-prod-native-modules-cli", + "owner": "@elastic/kibana-operations", + "devOnly": true +} diff --git a/packages/kbn-check-prod-native-modules-cli/package.json b/packages/kbn-check-prod-native-modules-cli/package.json new file mode 100644 index 0000000000000..68af62072eba6 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/package.json @@ -0,0 +1,7 @@ +{ + "name": "@kbn/check-prod-native-modules-cli", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0", + "main": "./run_check_prod_native_modules_cli" +} diff --git a/packages/kbn-check-prod-native-modules-cli/run_check_prod_native_modules_cli.ts b/packages/kbn-check-prod-native-modules-cli/run_check_prod_native_modules_cli.ts new file mode 100644 index 0000000000000..7850dc09f06c8 --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/run_check_prod_native_modules_cli.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 { run } from '@kbn/dev-cli-runner'; +import { createFailError } from '@kbn/dev-cli-errors'; +import { checkProdNativeModules } from './check_prod_native_modules'; + +run( + async ({ log }) => { + const foundProdNativeModules = await checkProdNativeModules(log); + if (foundProdNativeModules) { + throw createFailError( + 'Failed: check all previous errors before continuing. Chat with the Kibana Operations Team if you do need help.' + ); + } + }, + { + usage: `node scripts/check_prod_native_modules`, + description: + 'Check if there are production dependencies that contains or installs dependencies that contain native modules and errors out on those cases', + } +); diff --git a/packages/kbn-check-prod-native-modules-cli/tsconfig.json b/packages/kbn-check-prod-native-modules-cli/tsconfig.json new file mode 100644 index 0000000000000..1ced58536098e --- /dev/null +++ b/packages/kbn-check-prod-native-modules-cli/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/repo-info", + "@kbn/tooling-log", + "@kbn/dev-cli-runner", + "@kbn/dev-cli-errors", + "@kbn/yarn-lock-validator", + ] +} diff --git a/packages/kbn-cli-dev-mode/src/optimizer.ts b/packages/kbn-cli-dev-mode/src/optimizer.ts index f81f6ec7fb2a4..f82f152dd7e49 100644 --- a/packages/kbn-cli-dev-mode/src/optimizer.ts +++ b/packages/kbn-cli-dev-mode/src/optimizer.ts @@ -92,7 +92,7 @@ export class Optimizer { ); const log = new ToolingLog(); - const has = (obj: T, x: any): x is keyof T => obj.hasOwnProperty(x); + const has = (obj: T, x: any): x is keyof T => Object.hasOwn(obj, x); log.setWriters([ { diff --git a/packages/kbn-config-schema/index.ts b/packages/kbn-config-schema/index.ts index e0adf545f454f..32fd90cf4713c 100644 --- a/packages/kbn-config-schema/index.ts +++ b/packages/kbn-config-schema/index.ts @@ -146,6 +146,23 @@ function recordOf( return new RecordOfType(keyType, valueType, options); } +function oneOf( + types: [ + Type
, + Type, + Type, + Type, + Type, + Type, + Type, + Type, + Type, + Type, + Type, + Type + ], + options?: UnionTypeOptions +): Type; function oneOf( types: [ Type, diff --git a/packages/kbn-config-schema/src/types/object_type.test.ts b/packages/kbn-config-schema/src/types/object_type.test.ts index d12688fa04099..d8828f566d007 100644 --- a/packages/kbn-config-schema/src/types/object_type.test.ts +++ b/packages/kbn-config-schema/src/types/object_type.test.ts @@ -8,7 +8,7 @@ import { get } from 'lodash'; import { expectType } from 'tsd'; -import { schema } from '../..'; +import { offeringBasedSchema, schema } from '../..'; import { TypeOf } from './object_type'; test('returns value by default', () => { @@ -682,6 +682,10 @@ test('returns schema structure', () => { boolean: schema.boolean(), buffer: schema.buffer(), byteSize: schema.byteSize(), + svlConditional: offeringBasedSchema({ + serverless: schema.literal('serverless'), + traditional: schema.literal('stateful'), + }), conditional: schema.conditional( schema.contextRef('context_value_1'), schema.contextRef('context_value_2'), @@ -699,8 +703,9 @@ test('returns schema structure', () => { record: schema.recordOf(schema.string(), schema.string()), stream: schema.stream(), string: schema.string(), - union: schema.oneOf([schema.string()]), + union: schema.oneOf([schema.string(), schema.number(), schema.boolean()]), uri: schema.uri(), + null: schema.literal(null), }); const type = objSchema.extends({ nested: objSchema, @@ -711,39 +716,43 @@ test('returns schema structure', () => { { path: ['boolean'], type: 'boolean' }, { path: ['buffer'], type: 'binary' }, { path: ['byteSize'], type: 'bytes' }, - { path: ['conditional'], type: 'any' }, + { path: ['svlConditional'], type: 'serverless|stateful' }, + { path: ['conditional'], type: 'string' }, { path: ['duration'], type: 'duration' }, { path: ['ip'], type: 'string' }, - { path: ['literal'], type: 'any' }, + { path: ['literal'], type: 'foo' }, { path: ['map'], type: 'map' }, - { path: ['maybe'], type: 'string' }, - { path: ['never'], type: 'any' }, - { path: ['nullable'], type: 'alternatives' }, + { path: ['maybe'], type: 'string?' }, + { path: ['never'], type: 'never' }, + { path: ['nullable'], type: 'string?|null' }, { path: ['number'], type: 'number' }, { path: ['record'], type: 'record' }, { path: ['stream'], type: 'stream' }, { path: ['string'], type: 'string' }, - { path: ['union'], type: 'alternatives' }, + { path: ['union'], type: 'string|number|boolean' }, { path: ['uri'], type: 'string' }, + { path: ['null'], type: 'null' }, { path: ['nested', 'any'], type: 'any' }, { path: ['nested', 'array'], type: 'array' }, { path: ['nested', 'boolean'], type: 'boolean' }, { path: ['nested', 'buffer'], type: 'binary' }, { path: ['nested', 'byteSize'], type: 'bytes' }, - { path: ['nested', 'conditional'], type: 'any' }, + { path: ['nested', 'svlConditional'], type: 'serverless|stateful' }, + { path: ['nested', 'conditional'], type: 'string' }, { path: ['nested', 'duration'], type: 'duration' }, { path: ['nested', 'ip'], type: 'string' }, - { path: ['nested', 'literal'], type: 'any' }, + { path: ['nested', 'literal'], type: 'foo' }, { path: ['nested', 'map'], type: 'map' }, - { path: ['nested', 'maybe'], type: 'string' }, - { path: ['nested', 'never'], type: 'any' }, - { path: ['nested', 'nullable'], type: 'alternatives' }, + { path: ['nested', 'maybe'], type: 'string?' }, + { path: ['nested', 'never'], type: 'never' }, + { path: ['nested', 'nullable'], type: 'string?|null' }, { path: ['nested', 'number'], type: 'number' }, { path: ['nested', 'record'], type: 'record' }, { path: ['nested', 'stream'], type: 'stream' }, { path: ['nested', 'string'], type: 'string' }, - { path: ['nested', 'union'], type: 'alternatives' }, + { path: ['nested', 'union'], type: 'string|number|boolean' }, { path: ['nested', 'uri'], type: 'string' }, + { path: ['nested', 'null'], type: 'null' }, ]); }); diff --git a/packages/kbn-config-schema/src/types/type.ts b/packages/kbn-config-schema/src/types/type.ts index d7e02e439ae3b..eee480723c623 100644 --- a/packages/kbn-config-schema/src/types/type.ts +++ b/packages/kbn-config-schema/src/types/type.ts @@ -6,7 +6,15 @@ * Side Public License, v 1. */ -import type { AnySchema, CustomValidator, ErrorReport } from 'joi'; +import { + isSchema, + type CustomValidator, + type ErrorReport, + type Schema, + type SchemaLike, + type WhenOptions, + CustomHelpers, +} from 'joi'; import { META_FIELD_X_OAS_DEPRECATED } from '../oas_meta_fields'; import { SchemaTypeError, ValidationError } from '../errors'; import { Reference } from '../references'; @@ -91,9 +99,9 @@ export abstract class Type { * Internal "schema" backed by Joi. * @type {Schema} */ - protected readonly internalSchema: AnySchema; + protected readonly internalSchema: Schema; - protected constructor(schema: AnySchema, options: TypeOptions = {}) { + protected constructor(schema: Schema, options: TypeOptions = {}) { if (options.defaultValue !== undefined) { schema = schema.optional(); @@ -214,7 +222,7 @@ export abstract class Type { } } -function recursiveGetSchemaStructure(internalSchema: AnySchema, path: string[] = []) { +function recursiveGetSchemaStructure(internalSchema: Schema, path: string[] = []) { const array: SchemaStructureEntry[] = []; // Note: we are relying on Joi internals to obtain the schema structure (recursive keys). // This is not ideal, but it works for now and we only need it for some integration test assertions. @@ -222,8 +230,69 @@ function recursiveGetSchemaStructure(internalSchema: AnySchema, path: string[] = for (const [key, val] of (internalSchema as any)._ids._byKey.entries()) { array.push(...recursiveGetSchemaStructure(val.schema, [...path, key])); } + if (!array.length) { - array.push({ path, type: internalSchema.type ?? 'unknown' }); + let type: string; + try { + type = prettyPrintType(internalSchema, path); + } catch (error) { + // failed to find special type, might need to update for new joi versions or type usages + type = internalSchema.type || 'unknown'; + } + + array.push({ + path, + type, + }); } return array; } + +/** + * Returns a more accurate type from complex schema definitions. + * + * For example, conditional values resolve to type `any` when the nested value is only ever a `string`. + * + * @param internalSchema + * @param path of current schema + * @returns schema type + */ +function prettyPrintType(schema?: SchemaLike, path: string[] = []): string { + // takes array of possible values and de-dups and joins + return [...new Set([prettyPrintTypeParts(schema, false, path)].flat())].filter(Boolean).join('|'); +} + +/** + * Recursively collects all possible nested schema types. + */ +function prettyPrintTypeParts( + schema?: SchemaLike, + optional = false, + path: string[] = [] +): string | string[] { + if (!isSchema(schema)) { + if (schema === null) return 'null'; + return `${schema ?? 'unknown'}${optional ? '?' : ''}`; + } + + const isOptionalType = optional || schema._flags?.presence === 'optional'; + // For explicit custom schema.never + if (schema._flags?.presence === 'forbidden') return 'never'; + // For offeringBasedSchema, schema.when, schema.conditional + if (schema.$_terms?.whens?.length > 0) + return (schema.$_terms.whens as WhenOptions[]).flatMap((when) => + [when?.then, when?.otherwise].flatMap((s) => prettyPrintTypeParts(s, isOptionalType, path)) + ); + // schema.oneOf, schema.allOf, etc. + if (schema.$_terms?.matches?.length > 0) + return (schema.$_terms.matches as CustomHelpers[]).flatMap((s) => + prettyPrintTypeParts(s.schema, isOptionalType, path) + ); + // schema.literal + if (schema._flags?.only && (schema as any)._valids?._values?.size > 0) + return [...(schema as any)._valids._values.keys()].flatMap((v) => + prettyPrintTypeParts(v, isOptionalType, path) + ); + + return `${schema?.type || 'unknown'}${isOptionalType ? '?' : ''}`; +} diff --git a/packages/kbn-config/src/__fixtures__/unsplittable_3.yml b/packages/kbn-config/src/__fixtures__/unsplittable_3.yml new file mode 100644 index 0000000000000..8e206af4b0228 --- /dev/null +++ b/packages/kbn-config/src/__fixtures__/unsplittable_3.yml @@ -0,0 +1,7 @@ + +'[foo.bar]': "foobar" +list: + - id: "id1" + '[a.b]': ['foo', 'bar'] + test.this.out: ['foo', 'bar'] + diff --git a/packages/kbn-config/src/raw/read_config.test.ts b/packages/kbn-config/src/raw/read_config.test.ts index 4a3754def8ae7..b7beb85d47147 100644 --- a/packages/kbn-config/src/raw/read_config.test.ts +++ b/packages/kbn-config/src/raw/read_config.test.ts @@ -131,6 +131,33 @@ test('supports unsplittable key syntax on nested list', () => { `); }); +test('supports unsplittable key syntax on nested list with splittable subkeys', () => { + const config = getConfigFromFiles([fixtureFile('/unsplittable_3.yml')]); + + expect(config).toMatchInlineSnapshot(` + Object { + "foo.bar": "foobar", + "list": Array [ + Object { + "a.b": Array [ + "foo", + "bar", + ], + "id": "id1", + "test": Object { + "this": Object { + "out": Array [ + "foo", + "bar", + ], + }, + }, + }, + ], + } + `); +}); + test('supports var:default syntax', () => { process.env.KBN_ENV_VAR1 = 'val1'; diff --git a/packages/kbn-config/src/raw/read_config.ts b/packages/kbn-config/src/raw/read_config.ts index 1126ac1bc3f81..8836c16664e5e 100644 --- a/packages/kbn-config/src/raw/read_config.ts +++ b/packages/kbn-config/src/raw/read_config.ts @@ -59,7 +59,9 @@ function processEntryValue(value: any) { delete value[subKey]; set(value, [unsplitKey], processEntryValue(subVal)); } else { - set(value, subKey, processEntryValue(subVal)); + const subKeySplits = splitKey(subKey); + if (subKeySplits.length > 1) delete value[subKey]; + set(value, subKeySplits, processEntryValue(subVal)); } } } else if (typeof value === 'string') { diff --git a/packages/kbn-data-service/src/search/tabify/tabify_docs.ts b/packages/kbn-data-service/src/search/tabify/tabify_docs.ts index ceb60b7492d92..5f8912c32ae20 100644 --- a/packages/kbn-data-service/src/search/tabify/tabify_docs.ts +++ b/packages/kbn-data-service/src/search/tabify/tabify_docs.ts @@ -48,7 +48,7 @@ function flattenAccum( params?: TabifyDocsOptions ) { for (const k in obj) { - if (!obj.hasOwnProperty(k)) { + if (!Object.hasOwn(obj, k)) { continue; } const val = obj[k]; @@ -114,7 +114,7 @@ export function flattenHit(hit: Hit, indexPattern?: DataView, params?: TabifyDoc // merged, since we would otherwise duplicate values, since ignore_field_values and _source // contain the same values. for (const fieldName in hit.ignored_field_values) { - if (!hit.ignored_field_values.hasOwnProperty(fieldName)) { + if (!Object.hasOwn(hit.ignored_field_values, fieldName)) { continue; } const fieldValue = hit.ignored_field_values[fieldName]; diff --git a/packages/kbn-dev-cli-runner/src/run.ts b/packages/kbn-dev-cli-runner/src/run.ts index d84c7b9a4edf2..8440bd9ea6b57 100644 --- a/packages/kbn-dev-cli-runner/src/run.ts +++ b/packages/kbn-dev-cli-runner/src/run.ts @@ -31,18 +31,24 @@ export interface RunOptions { description?: string; log?: { defaultLevel?: LogLevel; + context?: string; }; flags?: FlagOptions; } export async function run(fn: RunFn, options: RunOptions = {}): Promise { const flags = getFlags(process.argv.slice(2), options.flags, options.log?.defaultLevel); - const log = new ToolingLog({ - level: pickLevelFromFlags(flags, { - default: options.log?.defaultLevel, - }), - writeTo: process.stdout, - }); + const log = new ToolingLog( + { + level: pickLevelFromFlags(flags, { + default: options.log?.defaultLevel, + }), + writeTo: process.stdout, + }, + { + context: options.log?.context, + } + ); const metrics = new Metrics(log); const helpText = getHelp({ diff --git a/packages/kbn-discover-utils/index.ts b/packages/kbn-discover-utils/index.ts index 8194b8ddfc3a3..d494955d8d644 100644 --- a/packages/kbn-discover-utils/index.ts +++ b/packages/kbn-discover-utils/index.ts @@ -28,6 +28,7 @@ export { SHOW_MULTIFIELDS, SORT_DEFAULT_ORDER_SETTING, TRUNCATE_MAX_HEIGHT, + TRUNCATE_MAX_HEIGHT_DEFAULT_VALUE, IgnoredReason, buildDataTableRecord, buildDataTableRecordList, @@ -43,11 +44,13 @@ export { isNestedFieldParent, isLegacyTableEnabled, usePager, + calcFieldCounts, getLogLevelColor, getLogLevelCoalescedValue, getLogLevelCoalescedValueLabel, LogLevelCoalescedValue, LogLevelBadge, + getFieldValue, } from './src'; export type { LogsContextService } from './src'; diff --git a/packages/kbn-discover-utils/src/constants.ts b/packages/kbn-discover-utils/src/constants.ts index acd34290d29de..133621720aaf5 100644 --- a/packages/kbn-discover-utils/src/constants.ts +++ b/packages/kbn-discover-utils/src/constants.ts @@ -26,3 +26,4 @@ export const SHOW_FIELD_STATISTICS = 'discover:showFieldStatistics'; export const SHOW_MULTIFIELDS = 'discover:showMultiFields'; export const SORT_DEFAULT_ORDER_SETTING = 'discover:sort:defaultOrder'; export const TRUNCATE_MAX_HEIGHT = 'truncate:maxHeight'; +export const TRUNCATE_MAX_HEIGHT_DEFAULT_VALUE = 115; diff --git a/src/plugins/discover/public/application/main/utils/calc_field_counts.test.ts b/packages/kbn-discover-utils/src/utils/calc_field_counts.test.ts similarity index 95% rename from src/plugins/discover/public/application/main/utils/calc_field_counts.test.ts rename to packages/kbn-discover-utils/src/utils/calc_field_counts.test.ts index c1740cf3a4fd4..d9ab0a2e14bb8 100644 --- a/src/plugins/discover/public/application/main/utils/calc_field_counts.test.ts +++ b/packages/kbn-discover-utils/src/utils/calc_field_counts.test.ts @@ -7,7 +7,7 @@ */ import { calcFieldCounts } from './calc_field_counts'; -import { buildDataTableRecord } from '@kbn/discover-utils'; +import { buildDataTableRecord } from './build_data_record'; describe('calcFieldCounts', () => { test('returns valid field count data', async () => { diff --git a/src/plugins/discover/public/application/main/utils/calc_field_counts.ts b/packages/kbn-discover-utils/src/utils/calc_field_counts.ts similarity index 92% rename from src/plugins/discover/public/application/main/utils/calc_field_counts.ts rename to packages/kbn-discover-utils/src/utils/calc_field_counts.ts index 8f4fe80762795..5d218c17eff34 100644 --- a/src/plugins/discover/public/application/main/utils/calc_field_counts.ts +++ b/packages/kbn-discover-utils/src/utils/calc_field_counts.ts @@ -5,7 +5,7 @@ * 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/types'; +import type { DataTableRecord } from '../types'; /** * This function is calculating stats of the available fields, for usage in sidebar and sharing diff --git a/packages/kbn-discover-utils/src/utils/get_field_value.test.ts b/packages/kbn-discover-utils/src/utils/get_field_value.test.ts new file mode 100644 index 0000000000000..fcdc151f54947 --- /dev/null +++ b/packages/kbn-discover-utils/src/utils/get_field_value.test.ts @@ -0,0 +1,33 @@ +/* + * 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 { DataTableRecord } from '../types'; +import { getFieldValue } from './get_field_value'; + +const dataTableRecord: DataTableRecord = { + id: '1', + raw: {}, + flattened: { + 'field1.value': 'value1', + 'field2.value': ['value2'], + }, +}; + +describe('getFieldValue', () => { + it('should return the value of field correctly', () => { + expect(getFieldValue(dataTableRecord, 'field1.value')).toBe('value1'); + }); + + it('should return the first value of field correctly if field has a value of Array type', () => { + expect(getFieldValue(dataTableRecord, 'field2.value')).toBe('value2'); + }); + + it('should return undefined when field is not available', () => { + expect(getFieldValue(dataTableRecord, 'field3.value')).toBeUndefined(); + }); +}); diff --git a/packages/kbn-discover-utils/src/utils/get_field_value.ts b/packages/kbn-discover-utils/src/utils/get_field_value.ts new file mode 100644 index 0000000000000..043b5f2458a7a --- /dev/null +++ b/packages/kbn-discover-utils/src/utils/get_field_value.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. + */ + +import { DataTableRecord } from '../types'; + +export const getFieldValue = (record: DataTableRecord, field: string) => { + const value = record.flattened[field]; + return Array.isArray(value) ? value[0] : value; +}; diff --git a/packages/kbn-discover-utils/src/utils/index.ts b/packages/kbn-discover-utils/src/utils/index.ts index 399d4e8ba298e..6c719f74dfa7a 100644 --- a/packages/kbn-discover-utils/src/utils/index.ts +++ b/packages/kbn-discover-utils/src/utils/index.ts @@ -15,4 +15,6 @@ export * from './get_log_document_overview'; export * from './get_message_field_with_fallbacks'; export * from './get_should_show_field_handler'; export * from './nested_fields'; +export * from './get_field_value'; +export * from './calc_field_counts'; export { isLegacyTableEnabled } from './is_legacy_table_enabled'; diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index dec15cf568e98..99c72660f0b27 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -506,6 +506,7 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D percolate: `${ELASTICSEARCH_DOCS}query-dsl-percolate-query.html`, queryDsl: `${ELASTICSEARCH_DOCS}query-dsl.html`, queryESQL: `${ELASTICSEARCH_DOCS}esql.html`, + queryESQLExamples: `${ELASTICSEARCH_DOCS}esql-examples.html`, }, search: { sessions: `${KIBANA_DOCS}search-sessions.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index b92c59a624880..5e1f4abd92906 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -377,6 +377,7 @@ export interface DocLinks { readonly percolate: string; readonly queryDsl: string; readonly queryESQL: string; + readonly queryESQLExamples: string; }; readonly date: { readonly dateMath: string; diff --git a/packages/kbn-es-archiver/src/lib/indices/__mocks__/stubs.ts b/packages/kbn-es-archiver/src/lib/indices/__mocks__/stubs.ts index 1bfbc80f52a19..f6b602b734bd0 100644 --- a/packages/kbn-es-archiver/src/lib/indices/__mocks__/stubs.ts +++ b/packages/kbn-es-archiver/src/lib/indices/__mocks__/stubs.ts @@ -121,7 +121,7 @@ export const createStubClient = ( return { body: { ok: true } }; }), create: sinon.spy(async ({ index }) => { - if (existingIndices.includes(index) || aliases.hasOwnProperty(index)) { + if (existingIndices.includes(index) || Object.hasOwn(aliases, index)) { throw createEsClientError('resource_already_exists_exception'); } else { existingIndices.push(index); diff --git a/packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts b/packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts index 485a10fddb038..63ff39e467aef 100644 --- a/packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts +++ b/packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts @@ -37,7 +37,7 @@ export type ScriptedPhraseFilter = Filter & { meta: PhraseFilterMeta; query: { script: { - script: estypes.InlineScript; + script: estypes.Script; }; }; }; @@ -134,7 +134,7 @@ export const getPhraseScript = (field: DataViewFieldBase, value: PhraseFilterVal params: { value: convertedValue, }, - } as estypes.InlineScript, + } as estypes.Script, }; }; diff --git a/packages/kbn-es-query/src/filters/build_filters/range_filter.ts b/packages/kbn-es-query/src/filters/build_filters/range_filter.ts index f80fce31cb8ae..46a36b5c49994 100644 --- a/packages/kbn-es-query/src/filters/build_filters/range_filter.ts +++ b/packages/kbn-es-query/src/filters/build_filters/range_filter.ts @@ -65,7 +65,7 @@ export type ScriptedRangeFilter = Filter & { meta: RangeFilterMeta; query: { script: { - script: estypes.InlineScript; + script: estypes.Script; }; }; }; @@ -189,7 +189,7 @@ export const buildRangeFilter = ( * @internal */ export const getRangeScript = (field: DataViewFieldBase, params: RangeFilterParams) => { - const knownParams: estypes.InlineScript['params'] = mapValues( + const knownParams: estypes.Script['params'] = mapValues( pickBy(params, (val, key) => key in operators), (value) => (field.type === 'number' && typeof value === 'string' ? parseFloat(value) : value) ); diff --git a/packages/kbn-es/src/cluster.ts b/packages/kbn-es/src/cluster.ts index 65e232a9bbd48..6644e6828f41b 100644 --- a/packages/kbn-es/src/cluster.ts +++ b/packages/kbn-es/src/cluster.ts @@ -18,6 +18,7 @@ import { promisify } from 'util'; import { CA_CERT_PATH, ES_NOPASSWORD_P12_PATH, extract } from '@kbn/dev-utils'; import { ToolingLog } from '@kbn/tooling-log'; import treeKill from 'tree-kill'; +import { MOCK_IDP_REALM_NAME, ensureSAMLRoleMapping } from '@kbn/mock-idp-utils'; import { downloadSnapshot, installSnapshot, installSource, installArchive } from './install'; import { ES_BIN, ES_PLUGIN_BIN, ES_KEYSTORE_BIN } from './paths'; import { @@ -312,7 +313,7 @@ export class Cluster { */ private exec(installPath: string, opts: EsClusterExecOptions) { const { - skipNativeRealmSetup = false, + skipSecuritySetup = false, reportTime = () => {}, startTime, skipReadyCheck, @@ -437,8 +438,8 @@ export class Cluster { }); } - // once the cluster is ready setup the native realm - if (!skipNativeRealmSetup) { + // once the cluster is ready setup the realm + if (!skipSecuritySetup) { const nativeRealm = new NativeRealm({ log: this.log, elasticPassword: options.password, @@ -446,8 +447,12 @@ export class Cluster { }); await nativeRealm.setPasswords(options); - } + const samlRealmConfigPrefix = `authc.realms.saml.${MOCK_IDP_REALM_NAME}.`; + if (args.some((arg) => arg.includes(samlRealmConfigPrefix))) { + await ensureSAMLRoleMapping(client); + } + } this.log.success('kbn/es setup complete'); }); diff --git a/packages/kbn-es/src/cluster_exec_options.ts b/packages/kbn-es/src/cluster_exec_options.ts index 362af62c57954..2cbefe06095e1 100644 --- a/packages/kbn-es/src/cluster_exec_options.ts +++ b/packages/kbn-es/src/cluster_exec_options.ts @@ -7,7 +7,7 @@ */ export interface EsClusterExecOptions { - skipNativeRealmSetup?: boolean; + skipSecuritySetup?: boolean; reportTime?: (...args: any[]) => void; startTime?: number; esArgs?: string[] | string; diff --git a/packages/kbn-es/src/install/install_archive.ts b/packages/kbn-es/src/install/install_archive.ts index 2bfef3ab7abef..c9f3ab3cc274c 100644 --- a/packages/kbn-es/src/install/install_archive.ts +++ b/packages/kbn-es/src/install/install_archive.ts @@ -18,7 +18,7 @@ import { ToolingLog } from '@kbn/tooling-log'; import { BASE_PATH, ES_CONFIG, ES_KEYSTORE_BIN } from '../paths'; import { Artifact } from '../artifact'; import { parseSettings, SettingsFilter } from '../settings'; -import { log as defaultLog } from '../utils/log'; +import { log as defaultLog, isFile, copyFileSync } from '../utils'; import { InstallArchiveOptions } from './types'; const isHttpUrl = (str: string) => { @@ -41,6 +41,7 @@ export async function installArchive(archive: string, options?: InstallArchiveOp log = defaultLog, esArgs = [], disableEsTmpDir = process.env.FTR_DISABLE_ES_TMPDIR?.toLowerCase() === 'true', + resources, } = options || {}; let dest = archive; @@ -84,6 +85,23 @@ export async function installArchive(archive: string, options?: InstallArchiveOp ...parseSettings(esArgs, { filter: SettingsFilter.SecureOnly }), ]); + // copy resources to ES config directory + if (resources) { + resources.forEach((resource) => { + if (!isFile(resource)) { + throw new Error( + `Invalid resource: '${resource}'.\nOnly valid files can be copied to ES config directory` + ); + } + + const filename = path.basename(resource); + const destPath = path.resolve(installPath, 'config', filename); + + copyFileSync(resource, destPath); + log.info('moved %s in config to %s', resource, destPath); + }); + } + return { installPath, disableEsTmpDir }; } diff --git a/packages/kbn-es/src/install/install_snapshot.ts b/packages/kbn-es/src/install/install_snapshot.ts index e4a7fbd678f78..49f5d26df4ad6 100644 --- a/packages/kbn-es/src/install/install_snapshot.ts +++ b/packages/kbn-es/src/install/install_snapshot.ts @@ -51,6 +51,7 @@ export async function installSnapshot({ log = defaultLog, esArgs, useCached = false, + resources, }: InstallSnapshotOptions) { const { downloadPath } = await downloadSnapshot({ license, @@ -68,5 +69,6 @@ export async function installSnapshot({ installPath, log, esArgs, + resources, }); } diff --git a/packages/kbn-es/src/install/install_source.ts b/packages/kbn-es/src/install/install_source.ts index b3fca2b2ac046..6bec4a5d764d9 100644 --- a/packages/kbn-es/src/install/install_source.ts +++ b/packages/kbn-es/src/install/install_source.ts @@ -33,6 +33,7 @@ export async function installSource({ installPath = path.resolve(basePath, 'source'), log = defaultLog, esArgs, + resources, }: InstallSourceOptions) { log.info('source path: %s', chalk.bold(sourcePath)); log.info('install path: %s', chalk.bold(installPath)); @@ -59,6 +60,7 @@ export async function installSource({ installPath, log, esArgs, + resources, }); } diff --git a/packages/kbn-es/src/install/types.ts b/packages/kbn-es/src/install/types.ts index 6217f5b93c7f6..6db62b28eae70 100644 --- a/packages/kbn-es/src/install/types.ts +++ b/packages/kbn-es/src/install/types.ts @@ -17,6 +17,7 @@ export interface InstallSourceOptions { installPath?: string; log?: ToolingLog; esArgs?: string[]; + resources?: string[]; } export interface DownloadSnapshotOptions { @@ -26,6 +27,7 @@ export interface DownloadSnapshotOptions { installPath?: string; log?: ToolingLog; useCached?: boolean; + resources?: string[]; } export interface InstallSnapshotOptions extends DownloadSnapshotOptions { @@ -42,4 +44,5 @@ export interface InstallArchiveOptions { esArgs?: string[]; /** Disable creating a temp directory, allowing ES to write to OS's /tmp directory */ disableEsTmpDir?: boolean; + resources?: string[]; } diff --git a/packages/kbn-es/src/integration_tests/cluster.test.ts b/packages/kbn-es/src/integration_tests/cluster.test.ts index 0ef9803539fdd..d63b81c9a771e 100644 --- a/packages/kbn-es/src/integration_tests/cluster.test.ts +++ b/packages/kbn-es/src/integration_tests/cluster.test.ts @@ -311,6 +311,7 @@ describe('#installArchive()', () => { esArgs: ['foo=true'], log, disableEsTmpDir: true, + resources: ['path/to/resource'], }; const cluster = new Cluster({ log }); await cluster.installArchive('bar', options); diff --git a/packages/kbn-es/src/serverless_resources/project_roles/security/roles.yml b/packages/kbn-es/src/serverless_resources/project_roles/security/roles.yml index b05bb0de2f2c8..3c008407d5c46 100644 --- a/packages/kbn-es/src/serverless_resources/project_roles/security/roles.yml +++ b/packages/kbn-es/src/serverless_resources/project_roles/security/roles.yml @@ -47,6 +47,7 @@ viewer: - feature_siem.endpoint_list_read - feature_securitySolutionCases.read - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.read - feature_builtInAlerts.read - feature_osquery.read @@ -124,6 +125,7 @@ editor: - feature_siem.file_operations_all - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.read - feature_builtInAlerts.all - feature_osquery.all @@ -171,6 +173,7 @@ t1_analyst: - feature_siem.endpoint_list_read - feature_securitySolutionCases.read - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.read - feature_builtInAlerts.read - feature_osquery.read @@ -224,6 +227,7 @@ t2_analyst: - feature_siem.endpoint_list_read - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.read - feature_builtInAlerts.read - feature_osquery.read @@ -292,6 +296,7 @@ t3_analyst: - feature_siem.scan_operations_all - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.read - feature_builtInAlerts.all - feature_osquery.all @@ -352,6 +357,7 @@ threat_intelligence_analyst: - feature_siem.blocklist_all - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.read - feature_builtInAlerts.read - feature_osquery.all @@ -418,6 +424,7 @@ rule_author: - feature_siem.actions_log_management_read - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.read - feature_builtInAlerts.all - feature_osquery.all @@ -488,6 +495,7 @@ soc_manager: - feature_siem.scan_operations_all - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.all - feature_builtInAlerts.all - feature_osquery.all @@ -546,6 +554,7 @@ detections_admin: - feature_siem.crud_alerts - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.all - feature_builtInAlerts.all - feature_dev_tools.all @@ -603,6 +612,7 @@ platform_engineer: - feature_siem.actions_log_management_read - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.all - feature_builtInAlerts.all - feature_fleet.all @@ -674,6 +684,7 @@ endpoint_operations_analyst: - feature_siem.scan_operations_all - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.all - feature_builtInAlerts.all - feature_osquery.all @@ -747,6 +758,7 @@ endpoint_policy_manager: - feature_siem.blocklist_all # Elastic Defend Policy Management - feature_securitySolutionCases.all - feature_securitySolutionAssistant.all + - feature_securitySolutionAttackDiscovery.all - feature_actions.all - feature_builtInAlerts.all - feature_osquery.all diff --git a/packages/kbn-es/src/serverless_resources/security_roles.json b/packages/kbn-es/src/serverless_resources/security_roles.json index 8ba9dc4c6bc73..0554853b82df9 100644 --- a/packages/kbn-es/src/serverless_resources/security_roles.json +++ b/packages/kbn-es/src/serverless_resources/security_roles.json @@ -34,6 +34,7 @@ "ml": ["read"], "siem": ["read", "read_alerts"], "securitySolutionAssistant": ["all"], + "securitySolutionAttackDiscovery": ["all"], "securitySolutionCases": ["read"], "actions": ["read"], "builtInAlerts": ["read"] @@ -80,6 +81,7 @@ "ml": ["read"], "siem": ["read", "read_alerts"], "securitySolutionAssistant": ["all"], + "securitySolutionAttackDiscovery": ["all"], "securitySolutionCases": ["read"], "actions": ["read"], "builtInAlerts": ["read"] @@ -145,6 +147,7 @@ ], "securitySolutionCases": ["all"], "securitySolutionAssistant": ["all"], + "securitySolutionAttackDiscovery": ["all"], "actions": ["read"], "builtInAlerts": ["all"], "osquery": ["all"], @@ -201,6 +204,7 @@ "ml": ["read"], "siem": ["all", "read_alerts", "crud_alerts"], "securitySolutionAssistant": ["all"], + "securitySolutionAttackDiscovery": ["all"], "securitySolutionCases": ["all"], "actions": ["read"], "builtInAlerts": ["all"] @@ -253,6 +257,7 @@ "ml": ["read"], "siem": ["all", "read_alerts", "crud_alerts"], "securitySolutionAssistant": ["all"], + "securitySolutionAttackDiscovery": ["all"], "securitySolutionCases": ["all"], "actions": ["all"], "builtInAlerts": ["all"] @@ -300,6 +305,7 @@ "ml": ["all"], "siem": ["all", "read_alerts", "crud_alerts"], "securitySolutionAssistant": ["all"], + "securitySolutionAttackDiscovery": ["all"], "securitySolutionCases": ["all"], "actions": ["read"], "builtInAlerts": ["all"], @@ -354,6 +360,7 @@ "ml": ["all"], "siem": ["all", "read_alerts", "crud_alerts"], "securitySolutionAssistant": ["all"], + "securitySolutionAttackDiscovery": ["all"], "securitySolutionCases": ["all"], "actions": ["all"], "builtInAlerts": ["all"] diff --git a/packages/kbn-es/src/utils/extract_config_files.ts b/packages/kbn-es/src/utils/extract_config_files.ts index 908005887dbc0..52e382a64fe8b 100644 --- a/packages/kbn-es/src/utils/extract_config_files.ts +++ b/packages/kbn-es/src/utils/extract_config_files.ts @@ -43,11 +43,11 @@ export function extractConfigFiles( return localConfig; } -function isFile(dest = '') { +export function isFile(dest = '') { return fs.existsSync(dest) && fs.statSync(dest).isFile(); } -function copyFileSync(src: string, dest: string) { +export function copyFileSync(src: string, dest: string) { const destPath = path.dirname(dest); if (!fs.existsSync(destPath)) { diff --git a/packages/kbn-es/src/utils/index.ts b/packages/kbn-es/src/utils/index.ts index 04e94d109f58f..f3457fc958b53 100644 --- a/packages/kbn-es/src/utils/index.ts +++ b/packages/kbn-es/src/utils/index.ts @@ -10,7 +10,7 @@ export { cache } from './cache'; export { log } from './log'; export { parseEsLog } from './parse_es_log'; export { findMostRecentlyChanged } from './find_most_recently_changed'; -export { extractConfigFiles } from './extract_config_files'; +export { extractConfigFiles, isFile, copyFileSync } from './extract_config_files'; // @ts-expect-error not typed yet export { NativeRealm, SYSTEM_INDICES_SUPERUSER } from './native_realm'; export { buildSnapshot } from './build_snapshot'; diff --git a/packages/kbn-es/src/utils/read_roles_from_resource.ts b/packages/kbn-es/src/utils/read_roles_from_resource.ts index c52e38308f54c..5ef7b9094b52c 100644 --- a/packages/kbn-es/src/utils/read_roles_from_resource.ts +++ b/packages/kbn-es/src/utils/read_roles_from_resource.ts @@ -7,7 +7,7 @@ */ import fs from 'fs'; import { extname } from 'path'; -import { load as loadYaml } from 'js-yaml'; +import { safeLoad as loadYaml } from 'js-yaml'; export const readRolesFromResource = (resourcePath: string) => { if (!fs.existsSync(resourcePath) || extname(resourcePath) !== '.yml') { diff --git a/packages/kbn-eslint-config/.eslintrc.js b/packages/kbn-eslint-config/.eslintrc.js index 1391c842b235a..de3bb8e313ccc 100644 --- a/packages/kbn-eslint-config/.eslintrc.js +++ b/packages/kbn-eslint-config/.eslintrc.js @@ -115,6 +115,12 @@ module.exports = { disallowedMessage: `import from @kbn/i18n-react instead`, exclude: [/packages[\/\\]kbn-i18n-react[\/\\]/], }, + { + from: 'zod', + to: '@kbn/zod', + disallowedMessage: `import from @kbn/zod instead`, + exclude: [/packages[\/\\]kbn-zod[\/\\]/], + }, { from: 'styled-components', to: false, @@ -308,9 +314,14 @@ module.exports = { '@kbn/eslint/no_constructor_args_in_property_initializers': 'error', '@kbn/eslint/no_this_in_property_initializers': 'error', '@kbn/eslint/no_unsafe_console': 'error', + '@kbn/eslint/no_unsafe_js_yaml': 'error', '@kbn/imports/no_unresolvable_imports': 'error', '@kbn/imports/uniform_imports': 'error', '@kbn/imports/no_unused_imports': 'error', '@kbn/imports/no_boundary_crossing': 'error', + + 'no-new-func': 'error', + 'no-implied-eval': 'error', + 'no-prototype-builtins': 'error', }, }; diff --git a/packages/kbn-eslint-plugin-eslint/index.js b/packages/kbn-eslint-plugin-eslint/index.js index 3d161ec33dda1..f54879b9e697e 100644 --- a/packages/kbn-eslint-plugin-eslint/index.js +++ b/packages/kbn-eslint-plugin-eslint/index.js @@ -18,5 +18,6 @@ module.exports = { no_constructor_args_in_property_initializers: require('./rules/no_constructor_args_in_property_initializers'), no_this_in_property_initializers: require('./rules/no_this_in_property_initializers'), no_unsafe_console: require('./rules/no_unsafe_console'), + no_unsafe_js_yaml: require('./rules/no_unsafe_js_yaml'), }, }; diff --git a/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_js_yaml.js b/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_js_yaml.js new file mode 100644 index 0000000000000..fcbb04a79fded --- /dev/null +++ b/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_js_yaml.js @@ -0,0 +1,90 @@ +/* + * 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. + */ + +module.exports = { + meta: { + fixable: 'code', + schema: [], + }, + create(context) { + const sourceCode = context.getSourceCode(); + const jsYamlIdentifiers = new Set(); + const isUnsafeMethod = (node) => node.name === 'load' || node.name === 'dump'; + + return { + ImportDeclaration(node) { + if (node.source.value === 'js-yaml') { + node.specifiers.forEach((specifier) => { + jsYamlIdentifiers.add(specifier.local.name); + + if (specifier.imported && isUnsafeMethod(specifier.imported)) { + context.report({ + node: specifier, + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + fix(fixer) { + const replacement = + specifier.imported.name === 'load' + ? fixer.replaceText(specifier.imported, 'safeLoad') + : fixer.replaceText(specifier.imported, 'safeDump'); + return replacement; + }, + }); + } + }); + } + }, + CallExpression(node) { + const callee = node.callee; + + if (isUnsafeMethod(callee)) { + const scope = sourceCode.getScope(node); + const variable = scope.variables.find((v) => v.name === callee.name); + + if (variable && variable.defs.length) { + const [def] = variable.defs; + + if (def?.parent?.source?.value === 'js-yaml') { + context.report({ + node: callee, + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + fix(fixer) { + const replacement = + callee.name === 'load' + ? fixer.replaceText(callee, 'safeLoad') + : fixer.replaceText(callee, 'safeDump'); + return replacement; + }, + }); + } + } + } + + if ( + callee.type === 'MemberExpression' && + isUnsafeMethod(callee.property) && + jsYamlIdentifiers.has(callee.object.name) + ) { + context.report({ + node: callee.property, + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + fix(fixer) { + const replacement = + callee.property.name === 'load' + ? fixer.replaceText(callee.property, 'safeLoad') + : fixer.replaceText(callee.property, 'safeDump'); + return replacement; + }, + }); + } + }, + }; + }, +}; diff --git a/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_js_yaml.test.js b/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_js_yaml.test.js new file mode 100644 index 0000000000000..d59c8e3e47e5f --- /dev/null +++ b/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_js_yaml.test.js @@ -0,0 +1,104 @@ +/* + * 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. + */ + +const { RuleTester } = require('eslint'); +const rule = require('./no_unsafe_js_yaml'); + +const ruleTester = new RuleTester({ + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + sourceType: 'module', + ecmaVersion: 2018, + }, +}); + +ruleTester.run('no_unsafe_js_yaml', rule, { + valid: [ + "import { safeLoad } from 'js-yaml'; const data = safeLoad(yamlString);", + "import { safeDump } from 'js-yaml'; const yaml = safeDump(data);", + "import * as yaml from 'js-yaml'; const data = yaml.safeLoad(yamlString);", + "import yaml from 'js-yaml'; yaml.safeLoad('yamlString');", + ], + invalid: [ + { + code: "import { load } from 'js-yaml'; const data = load(yamlString);", + errors: [ + { + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + line: 1, + column: 10, + endLine: 1, + endColumn: 14, + }, + { + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + line: 1, + column: 46, + endLine: 1, + endColumn: 50, + }, + ], + output: "import { safeLoad } from 'js-yaml'; const data = safeLoad(yamlString);", + }, + { + code: "import { dump } from 'js-yaml'; const yaml = dump(data);", + errors: [ + { + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + line: 1, + column: 10, + endLine: 1, + endColumn: 14, + }, + { + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + line: 1, + column: 46, + endLine: 1, + endColumn: 50, + }, + ], + output: "import { safeDump } from 'js-yaml'; const yaml = safeDump(data);", + }, + { + code: "import * as yaml from 'js-yaml'; const data = yaml.load(yamlString);", + errors: [ + { + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + }, + ], + output: "import * as yaml from 'js-yaml'; const data = yaml.safeLoad(yamlString);", + }, + { + code: "import yaml from 'js-yaml'; yaml.load('someYAMLContent')", + errors: [ + { + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + }, + ], + output: "import yaml from 'js-yaml'; yaml.safeLoad('someYAMLContent')", + }, + { + code: "import yaml, { safeDump } from 'js-yaml'; safeDump(data); yaml.load('someYAMLContent');", + errors: [ + { + message: + 'Use `safeLoad` instead of `load` and `safeDump` instead of `dump` from `js-yaml`.', + }, + ], + output: + "import yaml, { safeDump } from 'js-yaml'; safeDump(data); yaml.safeLoad('someYAMLContent');", + }, + ], +}); diff --git a/packages/kbn-esql-ast/src/__tests__/ast_parser.columns.test.ts b/packages/kbn-esql-ast/src/__tests__/ast_parser.columns.test.ts new file mode 100644 index 0000000000000..0a6dbe1f772a2 --- /dev/null +++ b/packages/kbn-esql-ast/src/__tests__/ast_parser.columns.test.ts @@ -0,0 +1,92 @@ +/* + * 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 { getAstAndSyntaxErrors as parse } from '../ast_parser'; + +describe('Column Identifier Expressions', () => { + it('can parse un-quoted identifiers', () => { + const text = 'ROW a, b.c'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + args: [ + { + type: 'column', + parts: ['a'], + }, + { + type: 'column', + parts: ['b', 'c'], + }, + ], + }, + ]); + }); + + it('can parse quoted identifiers', () => { + const text = 'ROW `a`, `b`.c, `d`.`👍`.`123``123`'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + args: [ + { + type: 'column', + parts: ['a'], + }, + { + type: 'column', + parts: ['b', 'c'], + }, + { + type: 'column', + parts: ['d', '👍', '123`123'], + }, + ], + }, + ]); + }); + + it('can mix quoted and un-quoted identifiers', () => { + const text = 'ROW part1.part2.`part``3️⃣`'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + args: [ + { + type: 'column', + parts: ['part1', 'part2', 'part`3️⃣'], + }, + ], + }, + ]); + }); + + it('in KEEP command', () => { + const text = 'FROM a | KEEP a.b'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + {}, + { + type: 'command', + args: [ + { + type: 'column', + parts: ['a', 'b'], + }, + ], + }, + ]); + }); +}); diff --git a/packages/kbn-esql-ast/src/__tests__/ast_parser.literal.test.ts b/packages/kbn-esql-ast/src/__tests__/ast_parser.literal.test.ts index 1f941c49f0fbe..cc03bd3db0a9d 100644 --- a/packages/kbn-esql-ast/src/__tests__/ast_parser.literal.test.ts +++ b/packages/kbn-esql-ast/src/__tests__/ast_parser.literal.test.ts @@ -22,4 +22,28 @@ describe('literal expression', () => { value: 1, }); }); + + it('decimals vs integers', () => { + const text = 'ROW a(1.0, 1)'; + const { ast } = parse(text); + + expect(ast[0]).toMatchObject({ + type: 'command', + args: [ + { + type: 'function', + args: [ + { + type: 'literal', + literalType: 'decimal', + }, + { + type: 'literal', + literalType: 'integer', + }, + ], + }, + ], + }); + }); }); diff --git a/packages/kbn-esql-ast/src/__tests__/ast_parser.rename.test.ts b/packages/kbn-esql-ast/src/__tests__/ast_parser.rename.test.ts new file mode 100644 index 0000000000000..0ad62b59b9cb8 --- /dev/null +++ b/packages/kbn-esql-ast/src/__tests__/ast_parser.rename.test.ts @@ -0,0 +1,26 @@ +/* + * 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 { getAstAndSyntaxErrors as parse } from '../ast_parser'; + +describe('RENAME', () => { + /** + * Enable this test once RENAME commands are fixed: + * https://github.com/elastic/kibana/discussions/182393#discussioncomment-10313313 + */ + it.skip('example from documentation', () => { + const text = ` +FROM kibana_sample_data_logs +| RENAME total_visits as \`Unique Visits (Total)\`, +`; + const { ast } = parse(text); + + // eslint-disable-next-line no-console + console.log(JSON.stringify(ast, null, 2)); + }); +}); diff --git a/packages/kbn-esql-ast/src/__tests__/ast_parser.source.test.ts b/packages/kbn-esql-ast/src/__tests__/ast_parser.source.test.ts new file mode 100644 index 0000000000000..8d01e655e6fff --- /dev/null +++ b/packages/kbn-esql-ast/src/__tests__/ast_parser.source.test.ts @@ -0,0 +1,265 @@ +/* + * 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 { getAstAndSyntaxErrors as parse } from '../ast_parser'; + +describe('source nodes', () => { + it('cluster vs quoted source', () => { + const text = 'FROM cluster:index, "cluster:index"'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'cluster:index', + cluster: 'cluster', + index: 'index', + }, + { + type: 'source', + name: 'cluster:index', + cluster: '', + index: 'cluster:index', + }, + ], + }, + ]); + }); + + it('date-math syntax', () => { + const text = 'FROM '; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: '', + cluster: '', + index: '', + }, + ], + }, + ]); + }); + + describe('unquoted', () => { + it('basic', () => { + const text = 'FROM a'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'a', + cluster: '', + index: 'a', + }, + ], + }, + ]); + }); + + it('with slash', () => { + const text = 'FROM a/b'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'a/b', + cluster: '', + index: 'a/b', + }, + ], + }, + ]); + }); + + it('dot and star', () => { + const text = 'FROM a.b-*'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'a.b-*', + cluster: '', + index: 'a.b-*', + }, + ], + }, + ]); + }); + }); + + describe('double quoted', () => { + it('basic', () => { + const text = 'FROM "a"'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'a', + cluster: '', + index: 'a', + }, + ], + }, + ]); + }); + + it('allows escaped chars', () => { + const text = 'FROM "a \\" \\r \\n \\t \\\\ b"'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: expect.any(String), + cluster: '', + index: 'a " \r \n \t \\ b', + }, + ], + }, + ]); + }); + }); + + describe('triple-double quoted', () => { + it('basic', () => { + const text = 'FROM """a"""'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'a', + cluster: '', + index: 'a', + }, + ], + }, + ]); + }); + + it('with double quote in the middle', () => { + const text = 'FROM """a"b"""'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'a"b', + cluster: '', + index: 'a"b', + }, + ], + }, + ]); + }); + + it('allows special chars', () => { + const text = 'FROM """a:\\/b"""'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'a:\\/b', + cluster: '', + index: 'a:\\/b', + }, + ], + }, + ]); + }); + + it('allows emojis', () => { + const text = 'FROM """a👍b"""'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'a👍b', + cluster: '', + index: 'a👍b', + }, + ], + }, + ]); + }); + }); + + describe('cluster string', () => { + it('basic', () => { + const text = 'FROM cluster:a'; + const { ast } = parse(text); + + expect(ast).toMatchObject([ + { + type: 'command', + name: 'from', + args: [ + { + type: 'source', + name: 'cluster:a', + cluster: 'cluster', + index: 'a', + }, + ], + }, + ]); + }); + }); +}); diff --git a/packages/kbn-esql-ast/src/antlr/esql_lexer.g4 b/packages/kbn-esql-ast/src/antlr/esql_lexer.g4 index f5d535e430b62..f9aa94252ee4d 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_lexer.g4 +++ b/packages/kbn-esql-ast/src/antlr/esql_lexer.g4 @@ -30,6 +30,7 @@ SHOW : 'show' -> pushMode(SHOW_MODE); SORT : 'sort' -> pushMode(EXPRESSION_MODE); STATS : 'stats' -> pushMode(EXPRESSION_MODE); WHERE : 'where' -> pushMode(EXPRESSION_MODE); +MATCH : 'match' -> pushMode(EXPRESSION_MODE); UNKNOWN_CMD : ~[ \r\n\t[\]/]+ -> pushMode(EXPRESSION_MODE); LINE_COMMENT @@ -145,7 +146,7 @@ IS: 'is'; LAST : 'last'; LIKE: 'like'; LP : '('; -MATCH: 'match'; +MATCH_OPERATOR: 'match'; NOT : 'not'; NULL : 'null'; NULLS : 'nulls'; diff --git a/packages/kbn-esql-ast/src/antlr/esql_lexer.interp b/packages/kbn-esql-ast/src/antlr/esql_lexer.interp index 2eb135a257955..079b01d721517 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_lexer.interp +++ b/packages/kbn-esql-ast/src/antlr/esql_lexer.interp @@ -28,6 +28,7 @@ null null null null +null '|' null null @@ -47,7 +48,7 @@ null 'last' 'like' '(' -'match' +null 'not' 'null' 'nulls' @@ -148,6 +149,7 @@ SHOW SORT STATS WHERE +MATCH UNKNOWN_CMD LINE_COMMENT MULTILINE_COMMENT @@ -175,7 +177,7 @@ IS LAST LIKE LP -MATCH +MATCH_OPERATOR NOT NULL NULLS @@ -275,6 +277,7 @@ SHOW SORT STATS WHERE +MATCH UNKNOWN_CMD LINE_COMMENT MULTILINE_COMMENT @@ -315,7 +318,7 @@ IS LAST LIKE LP -MATCH +MATCH_OPERATOR NOT NULL NULLS @@ -474,4 +477,4 @@ METRICS_MODE CLOSING_METRICS_MODE atn: -[4, 0, 125, 1458, 6, -1, 6, -1, 6, -1, 6, -1, 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, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 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, 10, 1, 10, 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, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 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, 14, 1, 14, 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, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 4, 20, 577, 8, 20, 11, 20, 12, 20, 578, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 587, 8, 21, 10, 21, 12, 21, 590, 9, 21, 1, 21, 3, 21, 593, 8, 21, 1, 21, 3, 21, 596, 8, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22, 605, 8, 22, 10, 22, 12, 22, 608, 9, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 4, 23, 616, 8, 23, 11, 23, 12, 23, 617, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 3, 24, 625, 8, 24, 1, 25, 4, 25, 628, 8, 25, 11, 25, 12, 25, 629, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36, 669, 8, 36, 1, 36, 4, 36, 672, 8, 36, 11, 36, 12, 36, 673, 1, 37, 1, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 3, 39, 683, 8, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 3, 41, 690, 8, 41, 1, 42, 1, 42, 1, 42, 5, 42, 695, 8, 42, 10, 42, 12, 42, 698, 9, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 706, 8, 42, 10, 42, 12, 42, 709, 9, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 716, 8, 42, 1, 42, 3, 42, 719, 8, 42, 3, 42, 721, 8, 42, 1, 43, 4, 43, 724, 8, 43, 11, 43, 12, 43, 725, 1, 44, 4, 44, 729, 8, 44, 11, 44, 12, 44, 730, 1, 44, 1, 44, 5, 44, 735, 8, 44, 10, 44, 12, 44, 738, 9, 44, 1, 44, 1, 44, 4, 44, 742, 8, 44, 11, 44, 12, 44, 743, 1, 44, 4, 44, 747, 8, 44, 11, 44, 12, 44, 748, 1, 44, 1, 44, 5, 44, 753, 8, 44, 10, 44, 12, 44, 756, 9, 44, 3, 44, 758, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 764, 8, 44, 11, 44, 12, 44, 765, 1, 44, 1, 44, 3, 44, 770, 8, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 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, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 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, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 77, 1, 77, 1, 78, 1, 78, 1, 79, 1, 79, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 5, 81, 898, 8, 81, 10, 81, 12, 81, 901, 9, 81, 1, 81, 1, 81, 4, 81, 905, 8, 81, 11, 81, 12, 81, 906, 3, 81, 909, 8, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 5, 84, 923, 8, 84, 10, 84, 12, 84, 926, 9, 84, 1, 84, 1, 84, 3, 84, 930, 8, 84, 1, 84, 4, 84, 933, 8, 84, 11, 84, 12, 84, 934, 3, 84, 937, 8, 84, 1, 85, 1, 85, 4, 85, 941, 8, 85, 11, 85, 12, 85, 942, 1, 85, 1, 85, 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, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 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, 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, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 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, 3, 105, 1032, 8, 105, 1, 106, 1, 106, 3, 106, 1036, 8, 106, 1, 106, 5, 106, 1039, 8, 106, 10, 106, 12, 106, 1042, 9, 106, 1, 106, 1, 106, 3, 106, 1046, 8, 106, 1, 106, 4, 106, 1049, 8, 106, 11, 106, 12, 106, 1050, 3, 106, 1053, 8, 106, 1, 107, 1, 107, 4, 107, 1057, 8, 107, 11, 107, 12, 107, 1058, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 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, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 125, 4, 125, 1134, 8, 125, 11, 125, 12, 125, 1135, 1, 125, 1, 125, 3, 125, 1140, 8, 125, 1, 125, 4, 125, 1143, 8, 125, 11, 125, 12, 125, 1144, 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, 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, 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, 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, 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, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 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, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 4, 176, 1367, 8, 176, 11, 176, 12, 176, 1368, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 2, 606, 707, 0, 195, 16, 1, 18, 2, 20, 3, 22, 4, 24, 5, 26, 6, 28, 7, 30, 8, 32, 9, 34, 10, 36, 11, 38, 12, 40, 13, 42, 14, 44, 15, 46, 16, 48, 17, 50, 18, 52, 19, 54, 20, 56, 21, 58, 22, 60, 23, 62, 24, 64, 0, 66, 25, 68, 0, 70, 0, 72, 26, 74, 27, 76, 28, 78, 29, 80, 0, 82, 0, 84, 0, 86, 0, 88, 0, 90, 0, 92, 0, 94, 0, 96, 0, 98, 0, 100, 30, 102, 31, 104, 32, 106, 33, 108, 34, 110, 35, 112, 36, 114, 37, 116, 38, 118, 39, 120, 40, 122, 41, 124, 42, 126, 43, 128, 44, 130, 45, 132, 46, 134, 47, 136, 48, 138, 49, 140, 50, 142, 51, 144, 52, 146, 53, 148, 54, 150, 55, 152, 56, 154, 57, 156, 58, 158, 59, 160, 60, 162, 61, 164, 62, 166, 63, 168, 64, 170, 65, 172, 66, 174, 67, 176, 68, 178, 69, 180, 70, 182, 71, 184, 72, 186, 0, 188, 73, 190, 74, 192, 75, 194, 76, 196, 0, 198, 0, 200, 0, 202, 0, 204, 0, 206, 0, 208, 77, 210, 0, 212, 0, 214, 78, 216, 79, 218, 80, 220, 0, 222, 0, 224, 0, 226, 0, 228, 0, 230, 81, 232, 82, 234, 83, 236, 84, 238, 0, 240, 0, 242, 0, 244, 0, 246, 85, 248, 0, 250, 86, 252, 87, 254, 88, 256, 0, 258, 0, 260, 89, 262, 90, 264, 0, 266, 91, 268, 0, 270, 92, 272, 93, 274, 94, 276, 0, 278, 0, 280, 0, 282, 0, 284, 0, 286, 0, 288, 0, 290, 95, 292, 96, 294, 97, 296, 0, 298, 0, 300, 0, 302, 0, 304, 0, 306, 0, 308, 0, 310, 98, 312, 99, 314, 100, 316, 0, 318, 0, 320, 0, 322, 0, 324, 101, 326, 102, 328, 103, 330, 0, 332, 0, 334, 0, 336, 0, 338, 104, 340, 105, 342, 106, 344, 0, 346, 107, 348, 108, 350, 109, 352, 110, 354, 0, 356, 111, 358, 112, 360, 113, 362, 114, 364, 0, 366, 115, 368, 116, 370, 117, 372, 118, 374, 119, 376, 0, 378, 0, 380, 0, 382, 120, 384, 121, 386, 122, 388, 0, 390, 0, 392, 123, 394, 124, 396, 125, 398, 0, 400, 0, 402, 0, 404, 0, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 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, 85, 85, 117, 117, 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, 11, 0, 9, 10, 13, 13, 32, 32, 34, 34, 44, 44, 47, 47, 58, 58, 61, 61, 91, 91, 93, 93, 124, 124, 2, 0, 42, 42, 47, 47, 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, 11, 0, 9, 10, 13, 13, 32, 32, 34, 35, 44, 44, 47, 47, 58, 58, 60, 60, 62, 63, 92, 92, 124, 124, 1484, 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, 0, 56, 1, 0, 0, 0, 0, 58, 1, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 66, 1, 0, 0, 0, 1, 68, 1, 0, 0, 0, 1, 70, 1, 0, 0, 0, 1, 72, 1, 0, 0, 0, 1, 74, 1, 0, 0, 0, 1, 76, 1, 0, 0, 0, 2, 78, 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, 170, 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, 2, 180, 1, 0, 0, 0, 2, 182, 1, 0, 0, 0, 2, 184, 1, 0, 0, 0, 2, 188, 1, 0, 0, 0, 2, 190, 1, 0, 0, 0, 2, 192, 1, 0, 0, 0, 2, 194, 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, 3, 204, 1, 0, 0, 0, 3, 206, 1, 0, 0, 0, 3, 208, 1, 0, 0, 0, 3, 210, 1, 0, 0, 0, 3, 212, 1, 0, 0, 0, 3, 214, 1, 0, 0, 0, 3, 216, 1, 0, 0, 0, 3, 218, 1, 0, 0, 0, 4, 220, 1, 0, 0, 0, 4, 222, 1, 0, 0, 0, 4, 224, 1, 0, 0, 0, 4, 230, 1, 0, 0, 0, 4, 232, 1, 0, 0, 0, 4, 234, 1, 0, 0, 0, 4, 236, 1, 0, 0, 0, 5, 238, 1, 0, 0, 0, 5, 240, 1, 0, 0, 0, 5, 242, 1, 0, 0, 0, 5, 244, 1, 0, 0, 0, 5, 246, 1, 0, 0, 0, 5, 248, 1, 0, 0, 0, 5, 250, 1, 0, 0, 0, 5, 252, 1, 0, 0, 0, 5, 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, 6, 266, 1, 0, 0, 0, 6, 268, 1, 0, 0, 0, 6, 270, 1, 0, 0, 0, 6, 272, 1, 0, 0, 0, 6, 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, 7, 284, 1, 0, 0, 0, 7, 286, 1, 0, 0, 0, 7, 288, 1, 0, 0, 0, 7, 290, 1, 0, 0, 0, 7, 292, 1, 0, 0, 0, 7, 294, 1, 0, 0, 0, 8, 296, 1, 0, 0, 0, 8, 298, 1, 0, 0, 0, 8, 300, 1, 0, 0, 0, 8, 302, 1, 0, 0, 0, 8, 304, 1, 0, 0, 0, 8, 306, 1, 0, 0, 0, 8, 308, 1, 0, 0, 0, 8, 310, 1, 0, 0, 0, 8, 312, 1, 0, 0, 0, 8, 314, 1, 0, 0, 0, 9, 316, 1, 0, 0, 0, 9, 318, 1, 0, 0, 0, 9, 320, 1, 0, 0, 0, 9, 322, 1, 0, 0, 0, 9, 324, 1, 0, 0, 0, 9, 326, 1, 0, 0, 0, 9, 328, 1, 0, 0, 0, 10, 330, 1, 0, 0, 0, 10, 332, 1, 0, 0, 0, 10, 334, 1, 0, 0, 0, 10, 336, 1, 0, 0, 0, 10, 338, 1, 0, 0, 0, 10, 340, 1, 0, 0, 0, 10, 342, 1, 0, 0, 0, 11, 344, 1, 0, 0, 0, 11, 346, 1, 0, 0, 0, 11, 348, 1, 0, 0, 0, 11, 350, 1, 0, 0, 0, 11, 352, 1, 0, 0, 0, 12, 354, 1, 0, 0, 0, 12, 356, 1, 0, 0, 0, 12, 358, 1, 0, 0, 0, 12, 360, 1, 0, 0, 0, 12, 362, 1, 0, 0, 0, 13, 364, 1, 0, 0, 0, 13, 366, 1, 0, 0, 0, 13, 368, 1, 0, 0, 0, 13, 370, 1, 0, 0, 0, 13, 372, 1, 0, 0, 0, 13, 374, 1, 0, 0, 0, 14, 376, 1, 0, 0, 0, 14, 378, 1, 0, 0, 0, 14, 380, 1, 0, 0, 0, 14, 382, 1, 0, 0, 0, 14, 384, 1, 0, 0, 0, 14, 386, 1, 0, 0, 0, 15, 388, 1, 0, 0, 0, 15, 390, 1, 0, 0, 0, 15, 392, 1, 0, 0, 0, 15, 394, 1, 0, 0, 0, 15, 396, 1, 0, 0, 0, 15, 398, 1, 0, 0, 0, 15, 400, 1, 0, 0, 0, 15, 402, 1, 0, 0, 0, 15, 404, 1, 0, 0, 0, 16, 406, 1, 0, 0, 0, 18, 416, 1, 0, 0, 0, 20, 423, 1, 0, 0, 0, 22, 432, 1, 0, 0, 0, 24, 439, 1, 0, 0, 0, 26, 449, 1, 0, 0, 0, 28, 456, 1, 0, 0, 0, 30, 463, 1, 0, 0, 0, 32, 477, 1, 0, 0, 0, 34, 484, 1, 0, 0, 0, 36, 492, 1, 0, 0, 0, 38, 501, 1, 0, 0, 0, 40, 508, 1, 0, 0, 0, 42, 518, 1, 0, 0, 0, 44, 530, 1, 0, 0, 0, 46, 539, 1, 0, 0, 0, 48, 545, 1, 0, 0, 0, 50, 552, 1, 0, 0, 0, 52, 559, 1, 0, 0, 0, 54, 567, 1, 0, 0, 0, 56, 576, 1, 0, 0, 0, 58, 582, 1, 0, 0, 0, 60, 599, 1, 0, 0, 0, 62, 615, 1, 0, 0, 0, 64, 624, 1, 0, 0, 0, 66, 627, 1, 0, 0, 0, 68, 631, 1, 0, 0, 0, 70, 636, 1, 0, 0, 0, 72, 641, 1, 0, 0, 0, 74, 645, 1, 0, 0, 0, 76, 649, 1, 0, 0, 0, 78, 653, 1, 0, 0, 0, 80, 657, 1, 0, 0, 0, 82, 659, 1, 0, 0, 0, 84, 661, 1, 0, 0, 0, 86, 664, 1, 0, 0, 0, 88, 666, 1, 0, 0, 0, 90, 675, 1, 0, 0, 0, 92, 677, 1, 0, 0, 0, 94, 682, 1, 0, 0, 0, 96, 684, 1, 0, 0, 0, 98, 689, 1, 0, 0, 0, 100, 720, 1, 0, 0, 0, 102, 723, 1, 0, 0, 0, 104, 769, 1, 0, 0, 0, 106, 771, 1, 0, 0, 0, 108, 774, 1, 0, 0, 0, 110, 778, 1, 0, 0, 0, 112, 782, 1, 0, 0, 0, 114, 784, 1, 0, 0, 0, 116, 787, 1, 0, 0, 0, 118, 789, 1, 0, 0, 0, 120, 794, 1, 0, 0, 0, 122, 796, 1, 0, 0, 0, 124, 802, 1, 0, 0, 0, 126, 808, 1, 0, 0, 0, 128, 811, 1, 0, 0, 0, 130, 814, 1, 0, 0, 0, 132, 819, 1, 0, 0, 0, 134, 824, 1, 0, 0, 0, 136, 826, 1, 0, 0, 0, 138, 832, 1, 0, 0, 0, 140, 836, 1, 0, 0, 0, 142, 841, 1, 0, 0, 0, 144, 847, 1, 0, 0, 0, 146, 850, 1, 0, 0, 0, 148, 852, 1, 0, 0, 0, 150, 858, 1, 0, 0, 0, 152, 860, 1, 0, 0, 0, 154, 865, 1, 0, 0, 0, 156, 868, 1, 0, 0, 0, 158, 871, 1, 0, 0, 0, 160, 874, 1, 0, 0, 0, 162, 876, 1, 0, 0, 0, 164, 879, 1, 0, 0, 0, 166, 881, 1, 0, 0, 0, 168, 884, 1, 0, 0, 0, 170, 886, 1, 0, 0, 0, 172, 888, 1, 0, 0, 0, 174, 890, 1, 0, 0, 0, 176, 892, 1, 0, 0, 0, 178, 908, 1, 0, 0, 0, 180, 910, 1, 0, 0, 0, 182, 915, 1, 0, 0, 0, 184, 936, 1, 0, 0, 0, 186, 938, 1, 0, 0, 0, 188, 946, 1, 0, 0, 0, 190, 948, 1, 0, 0, 0, 192, 952, 1, 0, 0, 0, 194, 956, 1, 0, 0, 0, 196, 960, 1, 0, 0, 0, 198, 965, 1, 0, 0, 0, 200, 969, 1, 0, 0, 0, 202, 973, 1, 0, 0, 0, 204, 977, 1, 0, 0, 0, 206, 981, 1, 0, 0, 0, 208, 985, 1, 0, 0, 0, 210, 994, 1, 0, 0, 0, 212, 998, 1, 0, 0, 0, 214, 1002, 1, 0, 0, 0, 216, 1006, 1, 0, 0, 0, 218, 1010, 1, 0, 0, 0, 220, 1014, 1, 0, 0, 0, 222, 1019, 1, 0, 0, 0, 224, 1023, 1, 0, 0, 0, 226, 1031, 1, 0, 0, 0, 228, 1052, 1, 0, 0, 0, 230, 1056, 1, 0, 0, 0, 232, 1060, 1, 0, 0, 0, 234, 1064, 1, 0, 0, 0, 236, 1068, 1, 0, 0, 0, 238, 1072, 1, 0, 0, 0, 240, 1077, 1, 0, 0, 0, 242, 1081, 1, 0, 0, 0, 244, 1085, 1, 0, 0, 0, 246, 1089, 1, 0, 0, 0, 248, 1092, 1, 0, 0, 0, 250, 1096, 1, 0, 0, 0, 252, 1100, 1, 0, 0, 0, 254, 1104, 1, 0, 0, 0, 256, 1108, 1, 0, 0, 0, 258, 1113, 1, 0, 0, 0, 260, 1118, 1, 0, 0, 0, 262, 1123, 1, 0, 0, 0, 264, 1130, 1, 0, 0, 0, 266, 1139, 1, 0, 0, 0, 268, 1146, 1, 0, 0, 0, 270, 1150, 1, 0, 0, 0, 272, 1154, 1, 0, 0, 0, 274, 1158, 1, 0, 0, 0, 276, 1162, 1, 0, 0, 0, 278, 1168, 1, 0, 0, 0, 280, 1172, 1, 0, 0, 0, 282, 1176, 1, 0, 0, 0, 284, 1180, 1, 0, 0, 0, 286, 1184, 1, 0, 0, 0, 288, 1188, 1, 0, 0, 0, 290, 1192, 1, 0, 0, 0, 292, 1196, 1, 0, 0, 0, 294, 1200, 1, 0, 0, 0, 296, 1204, 1, 0, 0, 0, 298, 1209, 1, 0, 0, 0, 300, 1213, 1, 0, 0, 0, 302, 1217, 1, 0, 0, 0, 304, 1221, 1, 0, 0, 0, 306, 1226, 1, 0, 0, 0, 308, 1230, 1, 0, 0, 0, 310, 1234, 1, 0, 0, 0, 312, 1238, 1, 0, 0, 0, 314, 1242, 1, 0, 0, 0, 316, 1246, 1, 0, 0, 0, 318, 1252, 1, 0, 0, 0, 320, 1256, 1, 0, 0, 0, 322, 1260, 1, 0, 0, 0, 324, 1264, 1, 0, 0, 0, 326, 1268, 1, 0, 0, 0, 328, 1272, 1, 0, 0, 0, 330, 1276, 1, 0, 0, 0, 332, 1281, 1, 0, 0, 0, 334, 1285, 1, 0, 0, 0, 336, 1289, 1, 0, 0, 0, 338, 1293, 1, 0, 0, 0, 340, 1297, 1, 0, 0, 0, 342, 1301, 1, 0, 0, 0, 344, 1305, 1, 0, 0, 0, 346, 1310, 1, 0, 0, 0, 348, 1315, 1, 0, 0, 0, 350, 1319, 1, 0, 0, 0, 352, 1323, 1, 0, 0, 0, 354, 1327, 1, 0, 0, 0, 356, 1332, 1, 0, 0, 0, 358, 1342, 1, 0, 0, 0, 360, 1346, 1, 0, 0, 0, 362, 1350, 1, 0, 0, 0, 364, 1354, 1, 0, 0, 0, 366, 1359, 1, 0, 0, 0, 368, 1366, 1, 0, 0, 0, 370, 1370, 1, 0, 0, 0, 372, 1374, 1, 0, 0, 0, 374, 1378, 1, 0, 0, 0, 376, 1382, 1, 0, 0, 0, 378, 1387, 1, 0, 0, 0, 380, 1393, 1, 0, 0, 0, 382, 1399, 1, 0, 0, 0, 384, 1403, 1, 0, 0, 0, 386, 1407, 1, 0, 0, 0, 388, 1411, 1, 0, 0, 0, 390, 1417, 1, 0, 0, 0, 392, 1423, 1, 0, 0, 0, 394, 1427, 1, 0, 0, 0, 396, 1431, 1, 0, 0, 0, 398, 1435, 1, 0, 0, 0, 400, 1441, 1, 0, 0, 0, 402, 1447, 1, 0, 0, 0, 404, 1453, 1, 0, 0, 0, 406, 407, 7, 0, 0, 0, 407, 408, 7, 1, 0, 0, 408, 409, 7, 2, 0, 0, 409, 410, 7, 2, 0, 0, 410, 411, 7, 3, 0, 0, 411, 412, 7, 4, 0, 0, 412, 413, 7, 5, 0, 0, 413, 414, 1, 0, 0, 0, 414, 415, 6, 0, 0, 0, 415, 17, 1, 0, 0, 0, 416, 417, 7, 0, 0, 0, 417, 418, 7, 6, 0, 0, 418, 419, 7, 7, 0, 0, 419, 420, 7, 8, 0, 0, 420, 421, 1, 0, 0, 0, 421, 422, 6, 1, 1, 0, 422, 19, 1, 0, 0, 0, 423, 424, 7, 3, 0, 0, 424, 425, 7, 9, 0, 0, 425, 426, 7, 6, 0, 0, 426, 427, 7, 1, 0, 0, 427, 428, 7, 4, 0, 0, 428, 429, 7, 10, 0, 0, 429, 430, 1, 0, 0, 0, 430, 431, 6, 2, 2, 0, 431, 21, 1, 0, 0, 0, 432, 433, 7, 3, 0, 0, 433, 434, 7, 11, 0, 0, 434, 435, 7, 12, 0, 0, 435, 436, 7, 13, 0, 0, 436, 437, 1, 0, 0, 0, 437, 438, 6, 3, 0, 0, 438, 23, 1, 0, 0, 0, 439, 440, 7, 3, 0, 0, 440, 441, 7, 14, 0, 0, 441, 442, 7, 8, 0, 0, 442, 443, 7, 13, 0, 0, 443, 444, 7, 12, 0, 0, 444, 445, 7, 1, 0, 0, 445, 446, 7, 9, 0, 0, 446, 447, 1, 0, 0, 0, 447, 448, 6, 4, 3, 0, 448, 25, 1, 0, 0, 0, 449, 450, 7, 15, 0, 0, 450, 451, 7, 6, 0, 0, 451, 452, 7, 7, 0, 0, 452, 453, 7, 16, 0, 0, 453, 454, 1, 0, 0, 0, 454, 455, 6, 5, 4, 0, 455, 27, 1, 0, 0, 0, 456, 457, 7, 17, 0, 0, 457, 458, 7, 6, 0, 0, 458, 459, 7, 7, 0, 0, 459, 460, 7, 18, 0, 0, 460, 461, 1, 0, 0, 0, 461, 462, 6, 6, 0, 0, 462, 29, 1, 0, 0, 0, 463, 464, 7, 1, 0, 0, 464, 465, 7, 9, 0, 0, 465, 466, 7, 13, 0, 0, 466, 467, 7, 1, 0, 0, 467, 468, 7, 9, 0, 0, 468, 469, 7, 3, 0, 0, 469, 470, 7, 2, 0, 0, 470, 471, 7, 5, 0, 0, 471, 472, 7, 12, 0, 0, 472, 473, 7, 5, 0, 0, 473, 474, 7, 2, 0, 0, 474, 475, 1, 0, 0, 0, 475, 476, 6, 7, 0, 0, 476, 31, 1, 0, 0, 0, 477, 478, 7, 18, 0, 0, 478, 479, 7, 3, 0, 0, 479, 480, 7, 3, 0, 0, 480, 481, 7, 8, 0, 0, 481, 482, 1, 0, 0, 0, 482, 483, 6, 8, 1, 0, 483, 33, 1, 0, 0, 0, 484, 485, 7, 13, 0, 0, 485, 486, 7, 1, 0, 0, 486, 487, 7, 16, 0, 0, 487, 488, 7, 1, 0, 0, 488, 489, 7, 5, 0, 0, 489, 490, 1, 0, 0, 0, 490, 491, 6, 9, 0, 0, 491, 35, 1, 0, 0, 0, 492, 493, 7, 13, 0, 0, 493, 494, 7, 7, 0, 0, 494, 495, 7, 7, 0, 0, 495, 496, 7, 18, 0, 0, 496, 497, 7, 19, 0, 0, 497, 498, 7, 8, 0, 0, 498, 499, 1, 0, 0, 0, 499, 500, 6, 10, 5, 0, 500, 37, 1, 0, 0, 0, 501, 502, 7, 16, 0, 0, 502, 503, 7, 3, 0, 0, 503, 504, 7, 5, 0, 0, 504, 505, 7, 12, 0, 0, 505, 506, 1, 0, 0, 0, 506, 507, 6, 11, 6, 0, 507, 39, 1, 0, 0, 0, 508, 509, 7, 16, 0, 0, 509, 510, 7, 3, 0, 0, 510, 511, 7, 5, 0, 0, 511, 512, 7, 6, 0, 0, 512, 513, 7, 1, 0, 0, 513, 514, 7, 4, 0, 0, 514, 515, 7, 2, 0, 0, 515, 516, 1, 0, 0, 0, 516, 517, 6, 12, 7, 0, 517, 41, 1, 0, 0, 0, 518, 519, 7, 16, 0, 0, 519, 520, 7, 11, 0, 0, 520, 521, 5, 95, 0, 0, 521, 522, 7, 3, 0, 0, 522, 523, 7, 14, 0, 0, 523, 524, 7, 8, 0, 0, 524, 525, 7, 12, 0, 0, 525, 526, 7, 9, 0, 0, 526, 527, 7, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 529, 6, 13, 8, 0, 529, 43, 1, 0, 0, 0, 530, 531, 7, 6, 0, 0, 531, 532, 7, 3, 0, 0, 532, 533, 7, 9, 0, 0, 533, 534, 7, 12, 0, 0, 534, 535, 7, 16, 0, 0, 535, 536, 7, 3, 0, 0, 536, 537, 1, 0, 0, 0, 537, 538, 6, 14, 9, 0, 538, 45, 1, 0, 0, 0, 539, 540, 7, 6, 0, 0, 540, 541, 7, 7, 0, 0, 541, 542, 7, 20, 0, 0, 542, 543, 1, 0, 0, 0, 543, 544, 6, 15, 0, 0, 544, 47, 1, 0, 0, 0, 545, 546, 7, 2, 0, 0, 546, 547, 7, 10, 0, 0, 547, 548, 7, 7, 0, 0, 548, 549, 7, 20, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 6, 16, 10, 0, 551, 49, 1, 0, 0, 0, 552, 553, 7, 2, 0, 0, 553, 554, 7, 7, 0, 0, 554, 555, 7, 6, 0, 0, 555, 556, 7, 5, 0, 0, 556, 557, 1, 0, 0, 0, 557, 558, 6, 17, 0, 0, 558, 51, 1, 0, 0, 0, 559, 560, 7, 2, 0, 0, 560, 561, 7, 5, 0, 0, 561, 562, 7, 12, 0, 0, 562, 563, 7, 5, 0, 0, 563, 564, 7, 2, 0, 0, 564, 565, 1, 0, 0, 0, 565, 566, 6, 18, 0, 0, 566, 53, 1, 0, 0, 0, 567, 568, 7, 20, 0, 0, 568, 569, 7, 10, 0, 0, 569, 570, 7, 3, 0, 0, 570, 571, 7, 6, 0, 0, 571, 572, 7, 3, 0, 0, 572, 573, 1, 0, 0, 0, 573, 574, 6, 19, 0, 0, 574, 55, 1, 0, 0, 0, 575, 577, 8, 21, 0, 0, 576, 575, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 576, 1, 0, 0, 0, 578, 579, 1, 0, 0, 0, 579, 580, 1, 0, 0, 0, 580, 581, 6, 20, 0, 0, 581, 57, 1, 0, 0, 0, 582, 583, 5, 47, 0, 0, 583, 584, 5, 47, 0, 0, 584, 588, 1, 0, 0, 0, 585, 587, 8, 22, 0, 0, 586, 585, 1, 0, 0, 0, 587, 590, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 588, 589, 1, 0, 0, 0, 589, 592, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 591, 593, 5, 13, 0, 0, 592, 591, 1, 0, 0, 0, 592, 593, 1, 0, 0, 0, 593, 595, 1, 0, 0, 0, 594, 596, 5, 10, 0, 0, 595, 594, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 598, 6, 21, 11, 0, 598, 59, 1, 0, 0, 0, 599, 600, 5, 47, 0, 0, 600, 601, 5, 42, 0, 0, 601, 606, 1, 0, 0, 0, 602, 605, 3, 60, 22, 0, 603, 605, 9, 0, 0, 0, 604, 602, 1, 0, 0, 0, 604, 603, 1, 0, 0, 0, 605, 608, 1, 0, 0, 0, 606, 607, 1, 0, 0, 0, 606, 604, 1, 0, 0, 0, 607, 609, 1, 0, 0, 0, 608, 606, 1, 0, 0, 0, 609, 610, 5, 42, 0, 0, 610, 611, 5, 47, 0, 0, 611, 612, 1, 0, 0, 0, 612, 613, 6, 22, 11, 0, 613, 61, 1, 0, 0, 0, 614, 616, 7, 23, 0, 0, 615, 614, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619, 620, 6, 23, 11, 0, 620, 63, 1, 0, 0, 0, 621, 625, 8, 24, 0, 0, 622, 623, 5, 47, 0, 0, 623, 625, 8, 25, 0, 0, 624, 621, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 625, 65, 1, 0, 0, 0, 626, 628, 3, 64, 24, 0, 627, 626, 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 67, 1, 0, 0, 0, 631, 632, 3, 180, 82, 0, 632, 633, 1, 0, 0, 0, 633, 634, 6, 26, 12, 0, 634, 635, 6, 26, 13, 0, 635, 69, 1, 0, 0, 0, 636, 637, 3, 78, 31, 0, 637, 638, 1, 0, 0, 0, 638, 639, 6, 27, 14, 0, 639, 640, 6, 27, 15, 0, 640, 71, 1, 0, 0, 0, 641, 642, 3, 62, 23, 0, 642, 643, 1, 0, 0, 0, 643, 644, 6, 28, 11, 0, 644, 73, 1, 0, 0, 0, 645, 646, 3, 58, 21, 0, 646, 647, 1, 0, 0, 0, 647, 648, 6, 29, 11, 0, 648, 75, 1, 0, 0, 0, 649, 650, 3, 60, 22, 0, 650, 651, 1, 0, 0, 0, 651, 652, 6, 30, 11, 0, 652, 77, 1, 0, 0, 0, 653, 654, 5, 124, 0, 0, 654, 655, 1, 0, 0, 0, 655, 656, 6, 31, 15, 0, 656, 79, 1, 0, 0, 0, 657, 658, 7, 26, 0, 0, 658, 81, 1, 0, 0, 0, 659, 660, 7, 27, 0, 0, 660, 83, 1, 0, 0, 0, 661, 662, 5, 92, 0, 0, 662, 663, 7, 28, 0, 0, 663, 85, 1, 0, 0, 0, 664, 665, 8, 29, 0, 0, 665, 87, 1, 0, 0, 0, 666, 668, 7, 3, 0, 0, 667, 669, 7, 30, 0, 0, 668, 667, 1, 0, 0, 0, 668, 669, 1, 0, 0, 0, 669, 671, 1, 0, 0, 0, 670, 672, 3, 80, 32, 0, 671, 670, 1, 0, 0, 0, 672, 673, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 673, 674, 1, 0, 0, 0, 674, 89, 1, 0, 0, 0, 675, 676, 5, 64, 0, 0, 676, 91, 1, 0, 0, 0, 677, 678, 5, 96, 0, 0, 678, 93, 1, 0, 0, 0, 679, 683, 8, 31, 0, 0, 680, 681, 5, 96, 0, 0, 681, 683, 5, 96, 0, 0, 682, 679, 1, 0, 0, 0, 682, 680, 1, 0, 0, 0, 683, 95, 1, 0, 0, 0, 684, 685, 5, 95, 0, 0, 685, 97, 1, 0, 0, 0, 686, 690, 3, 82, 33, 0, 687, 690, 3, 80, 32, 0, 688, 690, 3, 96, 40, 0, 689, 686, 1, 0, 0, 0, 689, 687, 1, 0, 0, 0, 689, 688, 1, 0, 0, 0, 690, 99, 1, 0, 0, 0, 691, 696, 5, 34, 0, 0, 692, 695, 3, 84, 34, 0, 693, 695, 3, 86, 35, 0, 694, 692, 1, 0, 0, 0, 694, 693, 1, 0, 0, 0, 695, 698, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 699, 1, 0, 0, 0, 698, 696, 1, 0, 0, 0, 699, 721, 5, 34, 0, 0, 700, 701, 5, 34, 0, 0, 701, 702, 5, 34, 0, 0, 702, 703, 5, 34, 0, 0, 703, 707, 1, 0, 0, 0, 704, 706, 8, 22, 0, 0, 705, 704, 1, 0, 0, 0, 706, 709, 1, 0, 0, 0, 707, 708, 1, 0, 0, 0, 707, 705, 1, 0, 0, 0, 708, 710, 1, 0, 0, 0, 709, 707, 1, 0, 0, 0, 710, 711, 5, 34, 0, 0, 711, 712, 5, 34, 0, 0, 712, 713, 5, 34, 0, 0, 713, 715, 1, 0, 0, 0, 714, 716, 5, 34, 0, 0, 715, 714, 1, 0, 0, 0, 715, 716, 1, 0, 0, 0, 716, 718, 1, 0, 0, 0, 717, 719, 5, 34, 0, 0, 718, 717, 1, 0, 0, 0, 718, 719, 1, 0, 0, 0, 719, 721, 1, 0, 0, 0, 720, 691, 1, 0, 0, 0, 720, 700, 1, 0, 0, 0, 721, 101, 1, 0, 0, 0, 722, 724, 3, 80, 32, 0, 723, 722, 1, 0, 0, 0, 724, 725, 1, 0, 0, 0, 725, 723, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 103, 1, 0, 0, 0, 727, 729, 3, 80, 32, 0, 728, 727, 1, 0, 0, 0, 729, 730, 1, 0, 0, 0, 730, 728, 1, 0, 0, 0, 730, 731, 1, 0, 0, 0, 731, 732, 1, 0, 0, 0, 732, 736, 3, 120, 52, 0, 733, 735, 3, 80, 32, 0, 734, 733, 1, 0, 0, 0, 735, 738, 1, 0, 0, 0, 736, 734, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 770, 1, 0, 0, 0, 738, 736, 1, 0, 0, 0, 739, 741, 3, 120, 52, 0, 740, 742, 3, 80, 32, 0, 741, 740, 1, 0, 0, 0, 742, 743, 1, 0, 0, 0, 743, 741, 1, 0, 0, 0, 743, 744, 1, 0, 0, 0, 744, 770, 1, 0, 0, 0, 745, 747, 3, 80, 32, 0, 746, 745, 1, 0, 0, 0, 747, 748, 1, 0, 0, 0, 748, 746, 1, 0, 0, 0, 748, 749, 1, 0, 0, 0, 749, 757, 1, 0, 0, 0, 750, 754, 3, 120, 52, 0, 751, 753, 3, 80, 32, 0, 752, 751, 1, 0, 0, 0, 753, 756, 1, 0, 0, 0, 754, 752, 1, 0, 0, 0, 754, 755, 1, 0, 0, 0, 755, 758, 1, 0, 0, 0, 756, 754, 1, 0, 0, 0, 757, 750, 1, 0, 0, 0, 757, 758, 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 760, 3, 88, 36, 0, 760, 770, 1, 0, 0, 0, 761, 763, 3, 120, 52, 0, 762, 764, 3, 80, 32, 0, 763, 762, 1, 0, 0, 0, 764, 765, 1, 0, 0, 0, 765, 763, 1, 0, 0, 0, 765, 766, 1, 0, 0, 0, 766, 767, 1, 0, 0, 0, 767, 768, 3, 88, 36, 0, 768, 770, 1, 0, 0, 0, 769, 728, 1, 0, 0, 0, 769, 739, 1, 0, 0, 0, 769, 746, 1, 0, 0, 0, 769, 761, 1, 0, 0, 0, 770, 105, 1, 0, 0, 0, 771, 772, 7, 32, 0, 0, 772, 773, 7, 33, 0, 0, 773, 107, 1, 0, 0, 0, 774, 775, 7, 12, 0, 0, 775, 776, 7, 9, 0, 0, 776, 777, 7, 0, 0, 0, 777, 109, 1, 0, 0, 0, 778, 779, 7, 12, 0, 0, 779, 780, 7, 2, 0, 0, 780, 781, 7, 4, 0, 0, 781, 111, 1, 0, 0, 0, 782, 783, 5, 61, 0, 0, 783, 113, 1, 0, 0, 0, 784, 785, 5, 58, 0, 0, 785, 786, 5, 58, 0, 0, 786, 115, 1, 0, 0, 0, 787, 788, 5, 44, 0, 0, 788, 117, 1, 0, 0, 0, 789, 790, 7, 0, 0, 0, 790, 791, 7, 3, 0, 0, 791, 792, 7, 2, 0, 0, 792, 793, 7, 4, 0, 0, 793, 119, 1, 0, 0, 0, 794, 795, 5, 46, 0, 0, 795, 121, 1, 0, 0, 0, 796, 797, 7, 15, 0, 0, 797, 798, 7, 12, 0, 0, 798, 799, 7, 13, 0, 0, 799, 800, 7, 2, 0, 0, 800, 801, 7, 3, 0, 0, 801, 123, 1, 0, 0, 0, 802, 803, 7, 15, 0, 0, 803, 804, 7, 1, 0, 0, 804, 805, 7, 6, 0, 0, 805, 806, 7, 2, 0, 0, 806, 807, 7, 5, 0, 0, 807, 125, 1, 0, 0, 0, 808, 809, 7, 1, 0, 0, 809, 810, 7, 9, 0, 0, 810, 127, 1, 0, 0, 0, 811, 812, 7, 1, 0, 0, 812, 813, 7, 2, 0, 0, 813, 129, 1, 0, 0, 0, 814, 815, 7, 13, 0, 0, 815, 816, 7, 12, 0, 0, 816, 817, 7, 2, 0, 0, 817, 818, 7, 5, 0, 0, 818, 131, 1, 0, 0, 0, 819, 820, 7, 13, 0, 0, 820, 821, 7, 1, 0, 0, 821, 822, 7, 18, 0, 0, 822, 823, 7, 3, 0, 0, 823, 133, 1, 0, 0, 0, 824, 825, 5, 40, 0, 0, 825, 135, 1, 0, 0, 0, 826, 827, 7, 16, 0, 0, 827, 828, 7, 12, 0, 0, 828, 829, 7, 5, 0, 0, 829, 830, 7, 4, 0, 0, 830, 831, 7, 10, 0, 0, 831, 137, 1, 0, 0, 0, 832, 833, 7, 9, 0, 0, 833, 834, 7, 7, 0, 0, 834, 835, 7, 5, 0, 0, 835, 139, 1, 0, 0, 0, 836, 837, 7, 9, 0, 0, 837, 838, 7, 19, 0, 0, 838, 839, 7, 13, 0, 0, 839, 840, 7, 13, 0, 0, 840, 141, 1, 0, 0, 0, 841, 842, 7, 9, 0, 0, 842, 843, 7, 19, 0, 0, 843, 844, 7, 13, 0, 0, 844, 845, 7, 13, 0, 0, 845, 846, 7, 2, 0, 0, 846, 143, 1, 0, 0, 0, 847, 848, 7, 7, 0, 0, 848, 849, 7, 6, 0, 0, 849, 145, 1, 0, 0, 0, 850, 851, 5, 63, 0, 0, 851, 147, 1, 0, 0, 0, 852, 853, 7, 6, 0, 0, 853, 854, 7, 13, 0, 0, 854, 855, 7, 1, 0, 0, 855, 856, 7, 18, 0, 0, 856, 857, 7, 3, 0, 0, 857, 149, 1, 0, 0, 0, 858, 859, 5, 41, 0, 0, 859, 151, 1, 0, 0, 0, 860, 861, 7, 5, 0, 0, 861, 862, 7, 6, 0, 0, 862, 863, 7, 19, 0, 0, 863, 864, 7, 3, 0, 0, 864, 153, 1, 0, 0, 0, 865, 866, 5, 61, 0, 0, 866, 867, 5, 61, 0, 0, 867, 155, 1, 0, 0, 0, 868, 869, 5, 61, 0, 0, 869, 870, 5, 126, 0, 0, 870, 157, 1, 0, 0, 0, 871, 872, 5, 33, 0, 0, 872, 873, 5, 61, 0, 0, 873, 159, 1, 0, 0, 0, 874, 875, 5, 60, 0, 0, 875, 161, 1, 0, 0, 0, 876, 877, 5, 60, 0, 0, 877, 878, 5, 61, 0, 0, 878, 163, 1, 0, 0, 0, 879, 880, 5, 62, 0, 0, 880, 165, 1, 0, 0, 0, 881, 882, 5, 62, 0, 0, 882, 883, 5, 61, 0, 0, 883, 167, 1, 0, 0, 0, 884, 885, 5, 43, 0, 0, 885, 169, 1, 0, 0, 0, 886, 887, 5, 45, 0, 0, 887, 171, 1, 0, 0, 0, 888, 889, 5, 42, 0, 0, 889, 173, 1, 0, 0, 0, 890, 891, 5, 47, 0, 0, 891, 175, 1, 0, 0, 0, 892, 893, 5, 37, 0, 0, 893, 177, 1, 0, 0, 0, 894, 895, 3, 146, 65, 0, 895, 899, 3, 82, 33, 0, 896, 898, 3, 98, 41, 0, 897, 896, 1, 0, 0, 0, 898, 901, 1, 0, 0, 0, 899, 897, 1, 0, 0, 0, 899, 900, 1, 0, 0, 0, 900, 909, 1, 0, 0, 0, 901, 899, 1, 0, 0, 0, 902, 904, 3, 146, 65, 0, 903, 905, 3, 80, 32, 0, 904, 903, 1, 0, 0, 0, 905, 906, 1, 0, 0, 0, 906, 904, 1, 0, 0, 0, 906, 907, 1, 0, 0, 0, 907, 909, 1, 0, 0, 0, 908, 894, 1, 0, 0, 0, 908, 902, 1, 0, 0, 0, 909, 179, 1, 0, 0, 0, 910, 911, 5, 91, 0, 0, 911, 912, 1, 0, 0, 0, 912, 913, 6, 82, 0, 0, 913, 914, 6, 82, 0, 0, 914, 181, 1, 0, 0, 0, 915, 916, 5, 93, 0, 0, 916, 917, 1, 0, 0, 0, 917, 918, 6, 83, 15, 0, 918, 919, 6, 83, 15, 0, 919, 183, 1, 0, 0, 0, 920, 924, 3, 82, 33, 0, 921, 923, 3, 98, 41, 0, 922, 921, 1, 0, 0, 0, 923, 926, 1, 0, 0, 0, 924, 922, 1, 0, 0, 0, 924, 925, 1, 0, 0, 0, 925, 937, 1, 0, 0, 0, 926, 924, 1, 0, 0, 0, 927, 930, 3, 96, 40, 0, 928, 930, 3, 90, 37, 0, 929, 927, 1, 0, 0, 0, 929, 928, 1, 0, 0, 0, 930, 932, 1, 0, 0, 0, 931, 933, 3, 98, 41, 0, 932, 931, 1, 0, 0, 0, 933, 934, 1, 0, 0, 0, 934, 932, 1, 0, 0, 0, 934, 935, 1, 0, 0, 0, 935, 937, 1, 0, 0, 0, 936, 920, 1, 0, 0, 0, 936, 929, 1, 0, 0, 0, 937, 185, 1, 0, 0, 0, 938, 940, 3, 92, 38, 0, 939, 941, 3, 94, 39, 0, 940, 939, 1, 0, 0, 0, 941, 942, 1, 0, 0, 0, 942, 940, 1, 0, 0, 0, 942, 943, 1, 0, 0, 0, 943, 944, 1, 0, 0, 0, 944, 945, 3, 92, 38, 0, 945, 187, 1, 0, 0, 0, 946, 947, 3, 186, 85, 0, 947, 189, 1, 0, 0, 0, 948, 949, 3, 58, 21, 0, 949, 950, 1, 0, 0, 0, 950, 951, 6, 87, 11, 0, 951, 191, 1, 0, 0, 0, 952, 953, 3, 60, 22, 0, 953, 954, 1, 0, 0, 0, 954, 955, 6, 88, 11, 0, 955, 193, 1, 0, 0, 0, 956, 957, 3, 62, 23, 0, 957, 958, 1, 0, 0, 0, 958, 959, 6, 89, 11, 0, 959, 195, 1, 0, 0, 0, 960, 961, 3, 78, 31, 0, 961, 962, 1, 0, 0, 0, 962, 963, 6, 90, 14, 0, 963, 964, 6, 90, 15, 0, 964, 197, 1, 0, 0, 0, 965, 966, 3, 180, 82, 0, 966, 967, 1, 0, 0, 0, 967, 968, 6, 91, 12, 0, 968, 199, 1, 0, 0, 0, 969, 970, 3, 182, 83, 0, 970, 971, 1, 0, 0, 0, 971, 972, 6, 92, 16, 0, 972, 201, 1, 0, 0, 0, 973, 974, 3, 366, 175, 0, 974, 975, 1, 0, 0, 0, 975, 976, 6, 93, 17, 0, 976, 203, 1, 0, 0, 0, 977, 978, 3, 116, 50, 0, 978, 979, 1, 0, 0, 0, 979, 980, 6, 94, 18, 0, 980, 205, 1, 0, 0, 0, 981, 982, 3, 112, 48, 0, 982, 983, 1, 0, 0, 0, 983, 984, 6, 95, 19, 0, 984, 207, 1, 0, 0, 0, 985, 986, 7, 16, 0, 0, 986, 987, 7, 3, 0, 0, 987, 988, 7, 5, 0, 0, 988, 989, 7, 12, 0, 0, 989, 990, 7, 0, 0, 0, 990, 991, 7, 12, 0, 0, 991, 992, 7, 5, 0, 0, 992, 993, 7, 12, 0, 0, 993, 209, 1, 0, 0, 0, 994, 995, 3, 66, 25, 0, 995, 996, 1, 0, 0, 0, 996, 997, 6, 97, 20, 0, 997, 211, 1, 0, 0, 0, 998, 999, 3, 100, 42, 0, 999, 1000, 1, 0, 0, 0, 1000, 1001, 6, 98, 21, 0, 1001, 213, 1, 0, 0, 0, 1002, 1003, 3, 58, 21, 0, 1003, 1004, 1, 0, 0, 0, 1004, 1005, 6, 99, 11, 0, 1005, 215, 1, 0, 0, 0, 1006, 1007, 3, 60, 22, 0, 1007, 1008, 1, 0, 0, 0, 1008, 1009, 6, 100, 11, 0, 1009, 217, 1, 0, 0, 0, 1010, 1011, 3, 62, 23, 0, 1011, 1012, 1, 0, 0, 0, 1012, 1013, 6, 101, 11, 0, 1013, 219, 1, 0, 0, 0, 1014, 1015, 3, 78, 31, 0, 1015, 1016, 1, 0, 0, 0, 1016, 1017, 6, 102, 14, 0, 1017, 1018, 6, 102, 15, 0, 1018, 221, 1, 0, 0, 0, 1019, 1020, 3, 120, 52, 0, 1020, 1021, 1, 0, 0, 0, 1021, 1022, 6, 103, 22, 0, 1022, 223, 1, 0, 0, 0, 1023, 1024, 3, 116, 50, 0, 1024, 1025, 1, 0, 0, 0, 1025, 1026, 6, 104, 18, 0, 1026, 225, 1, 0, 0, 0, 1027, 1032, 3, 82, 33, 0, 1028, 1032, 3, 80, 32, 0, 1029, 1032, 3, 96, 40, 0, 1030, 1032, 3, 172, 78, 0, 1031, 1027, 1, 0, 0, 0, 1031, 1028, 1, 0, 0, 0, 1031, 1029, 1, 0, 0, 0, 1031, 1030, 1, 0, 0, 0, 1032, 227, 1, 0, 0, 0, 1033, 1036, 3, 82, 33, 0, 1034, 1036, 3, 172, 78, 0, 1035, 1033, 1, 0, 0, 0, 1035, 1034, 1, 0, 0, 0, 1036, 1040, 1, 0, 0, 0, 1037, 1039, 3, 226, 105, 0, 1038, 1037, 1, 0, 0, 0, 1039, 1042, 1, 0, 0, 0, 1040, 1038, 1, 0, 0, 0, 1040, 1041, 1, 0, 0, 0, 1041, 1053, 1, 0, 0, 0, 1042, 1040, 1, 0, 0, 0, 1043, 1046, 3, 96, 40, 0, 1044, 1046, 3, 90, 37, 0, 1045, 1043, 1, 0, 0, 0, 1045, 1044, 1, 0, 0, 0, 1046, 1048, 1, 0, 0, 0, 1047, 1049, 3, 226, 105, 0, 1048, 1047, 1, 0, 0, 0, 1049, 1050, 1, 0, 0, 0, 1050, 1048, 1, 0, 0, 0, 1050, 1051, 1, 0, 0, 0, 1051, 1053, 1, 0, 0, 0, 1052, 1035, 1, 0, 0, 0, 1052, 1045, 1, 0, 0, 0, 1053, 229, 1, 0, 0, 0, 1054, 1057, 3, 228, 106, 0, 1055, 1057, 3, 186, 85, 0, 1056, 1054, 1, 0, 0, 0, 1056, 1055, 1, 0, 0, 0, 1057, 1058, 1, 0, 0, 0, 1058, 1056, 1, 0, 0, 0, 1058, 1059, 1, 0, 0, 0, 1059, 231, 1, 0, 0, 0, 1060, 1061, 3, 58, 21, 0, 1061, 1062, 1, 0, 0, 0, 1062, 1063, 6, 108, 11, 0, 1063, 233, 1, 0, 0, 0, 1064, 1065, 3, 60, 22, 0, 1065, 1066, 1, 0, 0, 0, 1066, 1067, 6, 109, 11, 0, 1067, 235, 1, 0, 0, 0, 1068, 1069, 3, 62, 23, 0, 1069, 1070, 1, 0, 0, 0, 1070, 1071, 6, 110, 11, 0, 1071, 237, 1, 0, 0, 0, 1072, 1073, 3, 78, 31, 0, 1073, 1074, 1, 0, 0, 0, 1074, 1075, 6, 111, 14, 0, 1075, 1076, 6, 111, 15, 0, 1076, 239, 1, 0, 0, 0, 1077, 1078, 3, 112, 48, 0, 1078, 1079, 1, 0, 0, 0, 1079, 1080, 6, 112, 19, 0, 1080, 241, 1, 0, 0, 0, 1081, 1082, 3, 116, 50, 0, 1082, 1083, 1, 0, 0, 0, 1083, 1084, 6, 113, 18, 0, 1084, 243, 1, 0, 0, 0, 1085, 1086, 3, 120, 52, 0, 1086, 1087, 1, 0, 0, 0, 1087, 1088, 6, 114, 22, 0, 1088, 245, 1, 0, 0, 0, 1089, 1090, 7, 12, 0, 0, 1090, 1091, 7, 2, 0, 0, 1091, 247, 1, 0, 0, 0, 1092, 1093, 3, 230, 107, 0, 1093, 1094, 1, 0, 0, 0, 1094, 1095, 6, 116, 23, 0, 1095, 249, 1, 0, 0, 0, 1096, 1097, 3, 58, 21, 0, 1097, 1098, 1, 0, 0, 0, 1098, 1099, 6, 117, 11, 0, 1099, 251, 1, 0, 0, 0, 1100, 1101, 3, 60, 22, 0, 1101, 1102, 1, 0, 0, 0, 1102, 1103, 6, 118, 11, 0, 1103, 253, 1, 0, 0, 0, 1104, 1105, 3, 62, 23, 0, 1105, 1106, 1, 0, 0, 0, 1106, 1107, 6, 119, 11, 0, 1107, 255, 1, 0, 0, 0, 1108, 1109, 3, 78, 31, 0, 1109, 1110, 1, 0, 0, 0, 1110, 1111, 6, 120, 14, 0, 1111, 1112, 6, 120, 15, 0, 1112, 257, 1, 0, 0, 0, 1113, 1114, 3, 180, 82, 0, 1114, 1115, 1, 0, 0, 0, 1115, 1116, 6, 121, 12, 0, 1116, 1117, 6, 121, 24, 0, 1117, 259, 1, 0, 0, 0, 1118, 1119, 7, 7, 0, 0, 1119, 1120, 7, 9, 0, 0, 1120, 1121, 1, 0, 0, 0, 1121, 1122, 6, 122, 25, 0, 1122, 261, 1, 0, 0, 0, 1123, 1124, 7, 20, 0, 0, 1124, 1125, 7, 1, 0, 0, 1125, 1126, 7, 5, 0, 0, 1126, 1127, 7, 10, 0, 0, 1127, 1128, 1, 0, 0, 0, 1128, 1129, 6, 123, 25, 0, 1129, 263, 1, 0, 0, 0, 1130, 1131, 8, 34, 0, 0, 1131, 265, 1, 0, 0, 0, 1132, 1134, 3, 264, 124, 0, 1133, 1132, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 1133, 1, 0, 0, 0, 1135, 1136, 1, 0, 0, 0, 1136, 1137, 1, 0, 0, 0, 1137, 1138, 3, 366, 175, 0, 1138, 1140, 1, 0, 0, 0, 1139, 1133, 1, 0, 0, 0, 1139, 1140, 1, 0, 0, 0, 1140, 1142, 1, 0, 0, 0, 1141, 1143, 3, 264, 124, 0, 1142, 1141, 1, 0, 0, 0, 1143, 1144, 1, 0, 0, 0, 1144, 1142, 1, 0, 0, 0, 1144, 1145, 1, 0, 0, 0, 1145, 267, 1, 0, 0, 0, 1146, 1147, 3, 266, 125, 0, 1147, 1148, 1, 0, 0, 0, 1148, 1149, 6, 126, 26, 0, 1149, 269, 1, 0, 0, 0, 1150, 1151, 3, 58, 21, 0, 1151, 1152, 1, 0, 0, 0, 1152, 1153, 6, 127, 11, 0, 1153, 271, 1, 0, 0, 0, 1154, 1155, 3, 60, 22, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1157, 6, 128, 11, 0, 1157, 273, 1, 0, 0, 0, 1158, 1159, 3, 62, 23, 0, 1159, 1160, 1, 0, 0, 0, 1160, 1161, 6, 129, 11, 0, 1161, 275, 1, 0, 0, 0, 1162, 1163, 3, 78, 31, 0, 1163, 1164, 1, 0, 0, 0, 1164, 1165, 6, 130, 14, 0, 1165, 1166, 6, 130, 15, 0, 1166, 1167, 6, 130, 15, 0, 1167, 277, 1, 0, 0, 0, 1168, 1169, 3, 112, 48, 0, 1169, 1170, 1, 0, 0, 0, 1170, 1171, 6, 131, 19, 0, 1171, 279, 1, 0, 0, 0, 1172, 1173, 3, 116, 50, 0, 1173, 1174, 1, 0, 0, 0, 1174, 1175, 6, 132, 18, 0, 1175, 281, 1, 0, 0, 0, 1176, 1177, 3, 120, 52, 0, 1177, 1178, 1, 0, 0, 0, 1178, 1179, 6, 133, 22, 0, 1179, 283, 1, 0, 0, 0, 1180, 1181, 3, 262, 123, 0, 1181, 1182, 1, 0, 0, 0, 1182, 1183, 6, 134, 27, 0, 1183, 285, 1, 0, 0, 0, 1184, 1185, 3, 230, 107, 0, 1185, 1186, 1, 0, 0, 0, 1186, 1187, 6, 135, 23, 0, 1187, 287, 1, 0, 0, 0, 1188, 1189, 3, 188, 86, 0, 1189, 1190, 1, 0, 0, 0, 1190, 1191, 6, 136, 28, 0, 1191, 289, 1, 0, 0, 0, 1192, 1193, 3, 58, 21, 0, 1193, 1194, 1, 0, 0, 0, 1194, 1195, 6, 137, 11, 0, 1195, 291, 1, 0, 0, 0, 1196, 1197, 3, 60, 22, 0, 1197, 1198, 1, 0, 0, 0, 1198, 1199, 6, 138, 11, 0, 1199, 293, 1, 0, 0, 0, 1200, 1201, 3, 62, 23, 0, 1201, 1202, 1, 0, 0, 0, 1202, 1203, 6, 139, 11, 0, 1203, 295, 1, 0, 0, 0, 1204, 1205, 3, 78, 31, 0, 1205, 1206, 1, 0, 0, 0, 1206, 1207, 6, 140, 14, 0, 1207, 1208, 6, 140, 15, 0, 1208, 297, 1, 0, 0, 0, 1209, 1210, 3, 366, 175, 0, 1210, 1211, 1, 0, 0, 0, 1211, 1212, 6, 141, 17, 0, 1212, 299, 1, 0, 0, 0, 1213, 1214, 3, 116, 50, 0, 1214, 1215, 1, 0, 0, 0, 1215, 1216, 6, 142, 18, 0, 1216, 301, 1, 0, 0, 0, 1217, 1218, 3, 120, 52, 0, 1218, 1219, 1, 0, 0, 0, 1219, 1220, 6, 143, 22, 0, 1220, 303, 1, 0, 0, 0, 1221, 1222, 3, 260, 122, 0, 1222, 1223, 1, 0, 0, 0, 1223, 1224, 6, 144, 29, 0, 1224, 1225, 6, 144, 30, 0, 1225, 305, 1, 0, 0, 0, 1226, 1227, 3, 66, 25, 0, 1227, 1228, 1, 0, 0, 0, 1228, 1229, 6, 145, 20, 0, 1229, 307, 1, 0, 0, 0, 1230, 1231, 3, 100, 42, 0, 1231, 1232, 1, 0, 0, 0, 1232, 1233, 6, 146, 21, 0, 1233, 309, 1, 0, 0, 0, 1234, 1235, 3, 58, 21, 0, 1235, 1236, 1, 0, 0, 0, 1236, 1237, 6, 147, 11, 0, 1237, 311, 1, 0, 0, 0, 1238, 1239, 3, 60, 22, 0, 1239, 1240, 1, 0, 0, 0, 1240, 1241, 6, 148, 11, 0, 1241, 313, 1, 0, 0, 0, 1242, 1243, 3, 62, 23, 0, 1243, 1244, 1, 0, 0, 0, 1244, 1245, 6, 149, 11, 0, 1245, 315, 1, 0, 0, 0, 1246, 1247, 3, 78, 31, 0, 1247, 1248, 1, 0, 0, 0, 1248, 1249, 6, 150, 14, 0, 1249, 1250, 6, 150, 15, 0, 1250, 1251, 6, 150, 15, 0, 1251, 317, 1, 0, 0, 0, 1252, 1253, 3, 116, 50, 0, 1253, 1254, 1, 0, 0, 0, 1254, 1255, 6, 151, 18, 0, 1255, 319, 1, 0, 0, 0, 1256, 1257, 3, 120, 52, 0, 1257, 1258, 1, 0, 0, 0, 1258, 1259, 6, 152, 22, 0, 1259, 321, 1, 0, 0, 0, 1260, 1261, 3, 230, 107, 0, 1261, 1262, 1, 0, 0, 0, 1262, 1263, 6, 153, 23, 0, 1263, 323, 1, 0, 0, 0, 1264, 1265, 3, 58, 21, 0, 1265, 1266, 1, 0, 0, 0, 1266, 1267, 6, 154, 11, 0, 1267, 325, 1, 0, 0, 0, 1268, 1269, 3, 60, 22, 0, 1269, 1270, 1, 0, 0, 0, 1270, 1271, 6, 155, 11, 0, 1271, 327, 1, 0, 0, 0, 1272, 1273, 3, 62, 23, 0, 1273, 1274, 1, 0, 0, 0, 1274, 1275, 6, 156, 11, 0, 1275, 329, 1, 0, 0, 0, 1276, 1277, 3, 78, 31, 0, 1277, 1278, 1, 0, 0, 0, 1278, 1279, 6, 157, 14, 0, 1279, 1280, 6, 157, 15, 0, 1280, 331, 1, 0, 0, 0, 1281, 1282, 3, 120, 52, 0, 1282, 1283, 1, 0, 0, 0, 1283, 1284, 6, 158, 22, 0, 1284, 333, 1, 0, 0, 0, 1285, 1286, 3, 188, 86, 0, 1286, 1287, 1, 0, 0, 0, 1287, 1288, 6, 159, 28, 0, 1288, 335, 1, 0, 0, 0, 1289, 1290, 3, 184, 84, 0, 1290, 1291, 1, 0, 0, 0, 1291, 1292, 6, 160, 31, 0, 1292, 337, 1, 0, 0, 0, 1293, 1294, 3, 58, 21, 0, 1294, 1295, 1, 0, 0, 0, 1295, 1296, 6, 161, 11, 0, 1296, 339, 1, 0, 0, 0, 1297, 1298, 3, 60, 22, 0, 1298, 1299, 1, 0, 0, 0, 1299, 1300, 6, 162, 11, 0, 1300, 341, 1, 0, 0, 0, 1301, 1302, 3, 62, 23, 0, 1302, 1303, 1, 0, 0, 0, 1303, 1304, 6, 163, 11, 0, 1304, 343, 1, 0, 0, 0, 1305, 1306, 3, 78, 31, 0, 1306, 1307, 1, 0, 0, 0, 1307, 1308, 6, 164, 14, 0, 1308, 1309, 6, 164, 15, 0, 1309, 345, 1, 0, 0, 0, 1310, 1311, 7, 1, 0, 0, 1311, 1312, 7, 9, 0, 0, 1312, 1313, 7, 15, 0, 0, 1313, 1314, 7, 7, 0, 0, 1314, 347, 1, 0, 0, 0, 1315, 1316, 3, 58, 21, 0, 1316, 1317, 1, 0, 0, 0, 1317, 1318, 6, 166, 11, 0, 1318, 349, 1, 0, 0, 0, 1319, 1320, 3, 60, 22, 0, 1320, 1321, 1, 0, 0, 0, 1321, 1322, 6, 167, 11, 0, 1322, 351, 1, 0, 0, 0, 1323, 1324, 3, 62, 23, 0, 1324, 1325, 1, 0, 0, 0, 1325, 1326, 6, 168, 11, 0, 1326, 353, 1, 0, 0, 0, 1327, 1328, 3, 78, 31, 0, 1328, 1329, 1, 0, 0, 0, 1329, 1330, 6, 169, 14, 0, 1330, 1331, 6, 169, 15, 0, 1331, 355, 1, 0, 0, 0, 1332, 1333, 7, 15, 0, 0, 1333, 1334, 7, 19, 0, 0, 1334, 1335, 7, 9, 0, 0, 1335, 1336, 7, 4, 0, 0, 1336, 1337, 7, 5, 0, 0, 1337, 1338, 7, 1, 0, 0, 1338, 1339, 7, 7, 0, 0, 1339, 1340, 7, 9, 0, 0, 1340, 1341, 7, 2, 0, 0, 1341, 357, 1, 0, 0, 0, 1342, 1343, 3, 58, 21, 0, 1343, 1344, 1, 0, 0, 0, 1344, 1345, 6, 171, 11, 0, 1345, 359, 1, 0, 0, 0, 1346, 1347, 3, 60, 22, 0, 1347, 1348, 1, 0, 0, 0, 1348, 1349, 6, 172, 11, 0, 1349, 361, 1, 0, 0, 0, 1350, 1351, 3, 62, 23, 0, 1351, 1352, 1, 0, 0, 0, 1352, 1353, 6, 173, 11, 0, 1353, 363, 1, 0, 0, 0, 1354, 1355, 3, 182, 83, 0, 1355, 1356, 1, 0, 0, 0, 1356, 1357, 6, 174, 16, 0, 1357, 1358, 6, 174, 15, 0, 1358, 365, 1, 0, 0, 0, 1359, 1360, 5, 58, 0, 0, 1360, 367, 1, 0, 0, 0, 1361, 1367, 3, 90, 37, 0, 1362, 1367, 3, 80, 32, 0, 1363, 1367, 3, 120, 52, 0, 1364, 1367, 3, 82, 33, 0, 1365, 1367, 3, 96, 40, 0, 1366, 1361, 1, 0, 0, 0, 1366, 1362, 1, 0, 0, 0, 1366, 1363, 1, 0, 0, 0, 1366, 1364, 1, 0, 0, 0, 1366, 1365, 1, 0, 0, 0, 1367, 1368, 1, 0, 0, 0, 1368, 1366, 1, 0, 0, 0, 1368, 1369, 1, 0, 0, 0, 1369, 369, 1, 0, 0, 0, 1370, 1371, 3, 58, 21, 0, 1371, 1372, 1, 0, 0, 0, 1372, 1373, 6, 177, 11, 0, 1373, 371, 1, 0, 0, 0, 1374, 1375, 3, 60, 22, 0, 1375, 1376, 1, 0, 0, 0, 1376, 1377, 6, 178, 11, 0, 1377, 373, 1, 0, 0, 0, 1378, 1379, 3, 62, 23, 0, 1379, 1380, 1, 0, 0, 0, 1380, 1381, 6, 179, 11, 0, 1381, 375, 1, 0, 0, 0, 1382, 1383, 3, 78, 31, 0, 1383, 1384, 1, 0, 0, 0, 1384, 1385, 6, 180, 14, 0, 1385, 1386, 6, 180, 15, 0, 1386, 377, 1, 0, 0, 0, 1387, 1388, 3, 66, 25, 0, 1388, 1389, 1, 0, 0, 0, 1389, 1390, 6, 181, 20, 0, 1390, 1391, 6, 181, 15, 0, 1391, 1392, 6, 181, 32, 0, 1392, 379, 1, 0, 0, 0, 1393, 1394, 3, 100, 42, 0, 1394, 1395, 1, 0, 0, 0, 1395, 1396, 6, 182, 21, 0, 1396, 1397, 6, 182, 15, 0, 1397, 1398, 6, 182, 32, 0, 1398, 381, 1, 0, 0, 0, 1399, 1400, 3, 58, 21, 0, 1400, 1401, 1, 0, 0, 0, 1401, 1402, 6, 183, 11, 0, 1402, 383, 1, 0, 0, 0, 1403, 1404, 3, 60, 22, 0, 1404, 1405, 1, 0, 0, 0, 1405, 1406, 6, 184, 11, 0, 1406, 385, 1, 0, 0, 0, 1407, 1408, 3, 62, 23, 0, 1408, 1409, 1, 0, 0, 0, 1409, 1410, 6, 185, 11, 0, 1410, 387, 1, 0, 0, 0, 1411, 1412, 3, 366, 175, 0, 1412, 1413, 1, 0, 0, 0, 1413, 1414, 6, 186, 17, 0, 1414, 1415, 6, 186, 15, 0, 1415, 1416, 6, 186, 7, 0, 1416, 389, 1, 0, 0, 0, 1417, 1418, 3, 116, 50, 0, 1418, 1419, 1, 0, 0, 0, 1419, 1420, 6, 187, 18, 0, 1420, 1421, 6, 187, 15, 0, 1421, 1422, 6, 187, 7, 0, 1422, 391, 1, 0, 0, 0, 1423, 1424, 3, 58, 21, 0, 1424, 1425, 1, 0, 0, 0, 1425, 1426, 6, 188, 11, 0, 1426, 393, 1, 0, 0, 0, 1427, 1428, 3, 60, 22, 0, 1428, 1429, 1, 0, 0, 0, 1429, 1430, 6, 189, 11, 0, 1430, 395, 1, 0, 0, 0, 1431, 1432, 3, 62, 23, 0, 1432, 1433, 1, 0, 0, 0, 1433, 1434, 6, 190, 11, 0, 1434, 397, 1, 0, 0, 0, 1435, 1436, 3, 188, 86, 0, 1436, 1437, 1, 0, 0, 0, 1437, 1438, 6, 191, 15, 0, 1438, 1439, 6, 191, 0, 0, 1439, 1440, 6, 191, 28, 0, 1440, 399, 1, 0, 0, 0, 1441, 1442, 3, 184, 84, 0, 1442, 1443, 1, 0, 0, 0, 1443, 1444, 6, 192, 15, 0, 1444, 1445, 6, 192, 0, 0, 1445, 1446, 6, 192, 31, 0, 1446, 401, 1, 0, 0, 0, 1447, 1448, 3, 106, 45, 0, 1448, 1449, 1, 0, 0, 0, 1449, 1450, 6, 193, 15, 0, 1450, 1451, 6, 193, 0, 0, 1451, 1452, 6, 193, 33, 0, 1452, 403, 1, 0, 0, 0, 1453, 1454, 3, 78, 31, 0, 1454, 1455, 1, 0, 0, 0, 1455, 1456, 6, 194, 14, 0, 1456, 1457, 6, 194, 15, 0, 1457, 405, 1, 0, 0, 0, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 578, 588, 592, 595, 604, 606, 617, 624, 629, 668, 673, 682, 689, 694, 696, 707, 715, 718, 720, 725, 730, 736, 743, 748, 754, 757, 765, 769, 899, 906, 908, 924, 929, 934, 936, 942, 1031, 1035, 1040, 1045, 1050, 1052, 1056, 1058, 1135, 1139, 1144, 1366, 1368, 34, 5, 2, 0, 5, 4, 0, 5, 6, 0, 5, 1, 0, 5, 3, 0, 5, 8, 0, 5, 12, 0, 5, 14, 0, 5, 10, 0, 5, 5, 0, 5, 11, 0, 0, 1, 0, 7, 70, 0, 5, 0, 0, 7, 29, 0, 4, 0, 0, 7, 71, 0, 7, 115, 0, 7, 38, 0, 7, 36, 0, 7, 25, 0, 7, 30, 0, 7, 40, 0, 7, 81, 0, 5, 13, 0, 5, 7, 0, 7, 91, 0, 7, 90, 0, 7, 73, 0, 7, 89, 0, 5, 9, 0, 7, 72, 0, 5, 15, 0, 7, 33, 0] \ No newline at end of file +[4, 0, 126, 1468, 6, -1, 6, -1, 6, -1, 6, -1, 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, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 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, 10, 1, 10, 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, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 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, 14, 1, 14, 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, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 4, 21, 587, 8, 21, 11, 21, 12, 21, 588, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22, 597, 8, 22, 10, 22, 12, 22, 600, 9, 22, 1, 22, 3, 22, 603, 8, 22, 1, 22, 3, 22, 606, 8, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 615, 8, 23, 10, 23, 12, 23, 618, 9, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 4, 24, 626, 8, 24, 11, 24, 12, 24, 627, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 3, 25, 635, 8, 25, 1, 26, 4, 26, 638, 8, 26, 11, 26, 12, 26, 639, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 679, 8, 37, 1, 37, 4, 37, 682, 8, 37, 11, 37, 12, 37, 683, 1, 38, 1, 38, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 3, 40, 693, 8, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 3, 42, 700, 8, 42, 1, 43, 1, 43, 1, 43, 5, 43, 705, 8, 43, 10, 43, 12, 43, 708, 9, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 5, 43, 716, 8, 43, 10, 43, 12, 43, 719, 9, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 726, 8, 43, 1, 43, 3, 43, 729, 8, 43, 3, 43, 731, 8, 43, 1, 44, 4, 44, 734, 8, 44, 11, 44, 12, 44, 735, 1, 45, 4, 45, 739, 8, 45, 11, 45, 12, 45, 740, 1, 45, 1, 45, 5, 45, 745, 8, 45, 10, 45, 12, 45, 748, 9, 45, 1, 45, 1, 45, 4, 45, 752, 8, 45, 11, 45, 12, 45, 753, 1, 45, 4, 45, 757, 8, 45, 11, 45, 12, 45, 758, 1, 45, 1, 45, 5, 45, 763, 8, 45, 10, 45, 12, 45, 766, 9, 45, 3, 45, 768, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 774, 8, 45, 11, 45, 12, 45, 775, 1, 45, 1, 45, 3, 45, 780, 8, 45, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 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, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 78, 1, 78, 1, 79, 1, 79, 1, 80, 1, 80, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 5, 82, 908, 8, 82, 10, 82, 12, 82, 911, 9, 82, 1, 82, 1, 82, 4, 82, 915, 8, 82, 11, 82, 12, 82, 916, 3, 82, 919, 8, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 5, 85, 933, 8, 85, 10, 85, 12, 85, 936, 9, 85, 1, 85, 1, 85, 3, 85, 940, 8, 85, 1, 85, 4, 85, 943, 8, 85, 11, 85, 12, 85, 944, 3, 85, 947, 8, 85, 1, 86, 1, 86, 4, 86, 951, 8, 86, 11, 86, 12, 86, 952, 1, 86, 1, 86, 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, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 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, 97, 1, 97, 1, 97, 1, 97, 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, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 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, 3, 106, 1042, 8, 106, 1, 107, 1, 107, 3, 107, 1046, 8, 107, 1, 107, 5, 107, 1049, 8, 107, 10, 107, 12, 107, 1052, 9, 107, 1, 107, 1, 107, 3, 107, 1056, 8, 107, 1, 107, 4, 107, 1059, 8, 107, 11, 107, 12, 107, 1060, 3, 107, 1063, 8, 107, 1, 108, 1, 108, 4, 108, 1067, 8, 108, 11, 108, 12, 108, 1068, 1, 109, 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, 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, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 126, 4, 126, 1144, 8, 126, 11, 126, 12, 126, 1145, 1, 126, 1, 126, 3, 126, 1150, 8, 126, 1, 126, 4, 126, 1153, 8, 126, 11, 126, 12, 126, 1154, 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, 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, 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, 141, 1, 142, 1, 142, 1, 142, 1, 142, 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, 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, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 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, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 4, 177, 1377, 8, 177, 11, 177, 12, 177, 1378, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 2, 616, 717, 0, 196, 16, 1, 18, 2, 20, 3, 22, 4, 24, 5, 26, 6, 28, 7, 30, 8, 32, 9, 34, 10, 36, 11, 38, 12, 40, 13, 42, 14, 44, 15, 46, 16, 48, 17, 50, 18, 52, 19, 54, 20, 56, 21, 58, 22, 60, 23, 62, 24, 64, 25, 66, 0, 68, 26, 70, 0, 72, 0, 74, 27, 76, 28, 78, 29, 80, 30, 82, 0, 84, 0, 86, 0, 88, 0, 90, 0, 92, 0, 94, 0, 96, 0, 98, 0, 100, 0, 102, 31, 104, 32, 106, 33, 108, 34, 110, 35, 112, 36, 114, 37, 116, 38, 118, 39, 120, 40, 122, 41, 124, 42, 126, 43, 128, 44, 130, 45, 132, 46, 134, 47, 136, 48, 138, 49, 140, 50, 142, 51, 144, 52, 146, 53, 148, 54, 150, 55, 152, 56, 154, 57, 156, 58, 158, 59, 160, 60, 162, 61, 164, 62, 166, 63, 168, 64, 170, 65, 172, 66, 174, 67, 176, 68, 178, 69, 180, 70, 182, 71, 184, 72, 186, 73, 188, 0, 190, 74, 192, 75, 194, 76, 196, 77, 198, 0, 200, 0, 202, 0, 204, 0, 206, 0, 208, 0, 210, 78, 212, 0, 214, 0, 216, 79, 218, 80, 220, 81, 222, 0, 224, 0, 226, 0, 228, 0, 230, 0, 232, 82, 234, 83, 236, 84, 238, 85, 240, 0, 242, 0, 244, 0, 246, 0, 248, 86, 250, 0, 252, 87, 254, 88, 256, 89, 258, 0, 260, 0, 262, 90, 264, 91, 266, 0, 268, 92, 270, 0, 272, 93, 274, 94, 276, 95, 278, 0, 280, 0, 282, 0, 284, 0, 286, 0, 288, 0, 290, 0, 292, 96, 294, 97, 296, 98, 298, 0, 300, 0, 302, 0, 304, 0, 306, 0, 308, 0, 310, 0, 312, 99, 314, 100, 316, 101, 318, 0, 320, 0, 322, 0, 324, 0, 326, 102, 328, 103, 330, 104, 332, 0, 334, 0, 336, 0, 338, 0, 340, 105, 342, 106, 344, 107, 346, 0, 348, 108, 350, 109, 352, 110, 354, 111, 356, 0, 358, 112, 360, 113, 362, 114, 364, 115, 366, 0, 368, 116, 370, 117, 372, 118, 374, 119, 376, 120, 378, 0, 380, 0, 382, 0, 384, 121, 386, 122, 388, 123, 390, 0, 392, 0, 394, 124, 396, 125, 398, 126, 400, 0, 402, 0, 404, 0, 406, 0, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 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, 85, 85, 117, 117, 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, 11, 0, 9, 10, 13, 13, 32, 32, 34, 34, 44, 44, 47, 47, 58, 58, 61, 61, 91, 91, 93, 93, 124, 124, 2, 0, 42, 42, 47, 47, 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, 11, 0, 9, 10, 13, 13, 32, 32, 34, 35, 44, 44, 47, 47, 58, 58, 60, 60, 62, 63, 92, 92, 124, 124, 1494, 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, 0, 56, 1, 0, 0, 0, 0, 58, 1, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 68, 1, 0, 0, 0, 1, 70, 1, 0, 0, 0, 1, 72, 1, 0, 0, 0, 1, 74, 1, 0, 0, 0, 1, 76, 1, 0, 0, 0, 1, 78, 1, 0, 0, 0, 2, 80, 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, 170, 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, 2, 180, 1, 0, 0, 0, 2, 182, 1, 0, 0, 0, 2, 184, 1, 0, 0, 0, 2, 186, 1, 0, 0, 0, 2, 190, 1, 0, 0, 0, 2, 192, 1, 0, 0, 0, 2, 194, 1, 0, 0, 0, 2, 196, 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, 3, 206, 1, 0, 0, 0, 3, 208, 1, 0, 0, 0, 3, 210, 1, 0, 0, 0, 3, 212, 1, 0, 0, 0, 3, 214, 1, 0, 0, 0, 3, 216, 1, 0, 0, 0, 3, 218, 1, 0, 0, 0, 3, 220, 1, 0, 0, 0, 4, 222, 1, 0, 0, 0, 4, 224, 1, 0, 0, 0, 4, 226, 1, 0, 0, 0, 4, 232, 1, 0, 0, 0, 4, 234, 1, 0, 0, 0, 4, 236, 1, 0, 0, 0, 4, 238, 1, 0, 0, 0, 5, 240, 1, 0, 0, 0, 5, 242, 1, 0, 0, 0, 5, 244, 1, 0, 0, 0, 5, 246, 1, 0, 0, 0, 5, 248, 1, 0, 0, 0, 5, 250, 1, 0, 0, 0, 5, 252, 1, 0, 0, 0, 5, 254, 1, 0, 0, 0, 5, 256, 1, 0, 0, 0, 6, 258, 1, 0, 0, 0, 6, 260, 1, 0, 0, 0, 6, 262, 1, 0, 0, 0, 6, 264, 1, 0, 0, 0, 6, 268, 1, 0, 0, 0, 6, 270, 1, 0, 0, 0, 6, 272, 1, 0, 0, 0, 6, 274, 1, 0, 0, 0, 6, 276, 1, 0, 0, 0, 7, 278, 1, 0, 0, 0, 7, 280, 1, 0, 0, 0, 7, 282, 1, 0, 0, 0, 7, 284, 1, 0, 0, 0, 7, 286, 1, 0, 0, 0, 7, 288, 1, 0, 0, 0, 7, 290, 1, 0, 0, 0, 7, 292, 1, 0, 0, 0, 7, 294, 1, 0, 0, 0, 7, 296, 1, 0, 0, 0, 8, 298, 1, 0, 0, 0, 8, 300, 1, 0, 0, 0, 8, 302, 1, 0, 0, 0, 8, 304, 1, 0, 0, 0, 8, 306, 1, 0, 0, 0, 8, 308, 1, 0, 0, 0, 8, 310, 1, 0, 0, 0, 8, 312, 1, 0, 0, 0, 8, 314, 1, 0, 0, 0, 8, 316, 1, 0, 0, 0, 9, 318, 1, 0, 0, 0, 9, 320, 1, 0, 0, 0, 9, 322, 1, 0, 0, 0, 9, 324, 1, 0, 0, 0, 9, 326, 1, 0, 0, 0, 9, 328, 1, 0, 0, 0, 9, 330, 1, 0, 0, 0, 10, 332, 1, 0, 0, 0, 10, 334, 1, 0, 0, 0, 10, 336, 1, 0, 0, 0, 10, 338, 1, 0, 0, 0, 10, 340, 1, 0, 0, 0, 10, 342, 1, 0, 0, 0, 10, 344, 1, 0, 0, 0, 11, 346, 1, 0, 0, 0, 11, 348, 1, 0, 0, 0, 11, 350, 1, 0, 0, 0, 11, 352, 1, 0, 0, 0, 11, 354, 1, 0, 0, 0, 12, 356, 1, 0, 0, 0, 12, 358, 1, 0, 0, 0, 12, 360, 1, 0, 0, 0, 12, 362, 1, 0, 0, 0, 12, 364, 1, 0, 0, 0, 13, 366, 1, 0, 0, 0, 13, 368, 1, 0, 0, 0, 13, 370, 1, 0, 0, 0, 13, 372, 1, 0, 0, 0, 13, 374, 1, 0, 0, 0, 13, 376, 1, 0, 0, 0, 14, 378, 1, 0, 0, 0, 14, 380, 1, 0, 0, 0, 14, 382, 1, 0, 0, 0, 14, 384, 1, 0, 0, 0, 14, 386, 1, 0, 0, 0, 14, 388, 1, 0, 0, 0, 15, 390, 1, 0, 0, 0, 15, 392, 1, 0, 0, 0, 15, 394, 1, 0, 0, 0, 15, 396, 1, 0, 0, 0, 15, 398, 1, 0, 0, 0, 15, 400, 1, 0, 0, 0, 15, 402, 1, 0, 0, 0, 15, 404, 1, 0, 0, 0, 15, 406, 1, 0, 0, 0, 16, 408, 1, 0, 0, 0, 18, 418, 1, 0, 0, 0, 20, 425, 1, 0, 0, 0, 22, 434, 1, 0, 0, 0, 24, 441, 1, 0, 0, 0, 26, 451, 1, 0, 0, 0, 28, 458, 1, 0, 0, 0, 30, 465, 1, 0, 0, 0, 32, 479, 1, 0, 0, 0, 34, 486, 1, 0, 0, 0, 36, 494, 1, 0, 0, 0, 38, 503, 1, 0, 0, 0, 40, 510, 1, 0, 0, 0, 42, 520, 1, 0, 0, 0, 44, 532, 1, 0, 0, 0, 46, 541, 1, 0, 0, 0, 48, 547, 1, 0, 0, 0, 50, 554, 1, 0, 0, 0, 52, 561, 1, 0, 0, 0, 54, 569, 1, 0, 0, 0, 56, 577, 1, 0, 0, 0, 58, 586, 1, 0, 0, 0, 60, 592, 1, 0, 0, 0, 62, 609, 1, 0, 0, 0, 64, 625, 1, 0, 0, 0, 66, 634, 1, 0, 0, 0, 68, 637, 1, 0, 0, 0, 70, 641, 1, 0, 0, 0, 72, 646, 1, 0, 0, 0, 74, 651, 1, 0, 0, 0, 76, 655, 1, 0, 0, 0, 78, 659, 1, 0, 0, 0, 80, 663, 1, 0, 0, 0, 82, 667, 1, 0, 0, 0, 84, 669, 1, 0, 0, 0, 86, 671, 1, 0, 0, 0, 88, 674, 1, 0, 0, 0, 90, 676, 1, 0, 0, 0, 92, 685, 1, 0, 0, 0, 94, 687, 1, 0, 0, 0, 96, 692, 1, 0, 0, 0, 98, 694, 1, 0, 0, 0, 100, 699, 1, 0, 0, 0, 102, 730, 1, 0, 0, 0, 104, 733, 1, 0, 0, 0, 106, 779, 1, 0, 0, 0, 108, 781, 1, 0, 0, 0, 110, 784, 1, 0, 0, 0, 112, 788, 1, 0, 0, 0, 114, 792, 1, 0, 0, 0, 116, 794, 1, 0, 0, 0, 118, 797, 1, 0, 0, 0, 120, 799, 1, 0, 0, 0, 122, 804, 1, 0, 0, 0, 124, 806, 1, 0, 0, 0, 126, 812, 1, 0, 0, 0, 128, 818, 1, 0, 0, 0, 130, 821, 1, 0, 0, 0, 132, 824, 1, 0, 0, 0, 134, 829, 1, 0, 0, 0, 136, 834, 1, 0, 0, 0, 138, 836, 1, 0, 0, 0, 140, 842, 1, 0, 0, 0, 142, 846, 1, 0, 0, 0, 144, 851, 1, 0, 0, 0, 146, 857, 1, 0, 0, 0, 148, 860, 1, 0, 0, 0, 150, 862, 1, 0, 0, 0, 152, 868, 1, 0, 0, 0, 154, 870, 1, 0, 0, 0, 156, 875, 1, 0, 0, 0, 158, 878, 1, 0, 0, 0, 160, 881, 1, 0, 0, 0, 162, 884, 1, 0, 0, 0, 164, 886, 1, 0, 0, 0, 166, 889, 1, 0, 0, 0, 168, 891, 1, 0, 0, 0, 170, 894, 1, 0, 0, 0, 172, 896, 1, 0, 0, 0, 174, 898, 1, 0, 0, 0, 176, 900, 1, 0, 0, 0, 178, 902, 1, 0, 0, 0, 180, 918, 1, 0, 0, 0, 182, 920, 1, 0, 0, 0, 184, 925, 1, 0, 0, 0, 186, 946, 1, 0, 0, 0, 188, 948, 1, 0, 0, 0, 190, 956, 1, 0, 0, 0, 192, 958, 1, 0, 0, 0, 194, 962, 1, 0, 0, 0, 196, 966, 1, 0, 0, 0, 198, 970, 1, 0, 0, 0, 200, 975, 1, 0, 0, 0, 202, 979, 1, 0, 0, 0, 204, 983, 1, 0, 0, 0, 206, 987, 1, 0, 0, 0, 208, 991, 1, 0, 0, 0, 210, 995, 1, 0, 0, 0, 212, 1004, 1, 0, 0, 0, 214, 1008, 1, 0, 0, 0, 216, 1012, 1, 0, 0, 0, 218, 1016, 1, 0, 0, 0, 220, 1020, 1, 0, 0, 0, 222, 1024, 1, 0, 0, 0, 224, 1029, 1, 0, 0, 0, 226, 1033, 1, 0, 0, 0, 228, 1041, 1, 0, 0, 0, 230, 1062, 1, 0, 0, 0, 232, 1066, 1, 0, 0, 0, 234, 1070, 1, 0, 0, 0, 236, 1074, 1, 0, 0, 0, 238, 1078, 1, 0, 0, 0, 240, 1082, 1, 0, 0, 0, 242, 1087, 1, 0, 0, 0, 244, 1091, 1, 0, 0, 0, 246, 1095, 1, 0, 0, 0, 248, 1099, 1, 0, 0, 0, 250, 1102, 1, 0, 0, 0, 252, 1106, 1, 0, 0, 0, 254, 1110, 1, 0, 0, 0, 256, 1114, 1, 0, 0, 0, 258, 1118, 1, 0, 0, 0, 260, 1123, 1, 0, 0, 0, 262, 1128, 1, 0, 0, 0, 264, 1133, 1, 0, 0, 0, 266, 1140, 1, 0, 0, 0, 268, 1149, 1, 0, 0, 0, 270, 1156, 1, 0, 0, 0, 272, 1160, 1, 0, 0, 0, 274, 1164, 1, 0, 0, 0, 276, 1168, 1, 0, 0, 0, 278, 1172, 1, 0, 0, 0, 280, 1178, 1, 0, 0, 0, 282, 1182, 1, 0, 0, 0, 284, 1186, 1, 0, 0, 0, 286, 1190, 1, 0, 0, 0, 288, 1194, 1, 0, 0, 0, 290, 1198, 1, 0, 0, 0, 292, 1202, 1, 0, 0, 0, 294, 1206, 1, 0, 0, 0, 296, 1210, 1, 0, 0, 0, 298, 1214, 1, 0, 0, 0, 300, 1219, 1, 0, 0, 0, 302, 1223, 1, 0, 0, 0, 304, 1227, 1, 0, 0, 0, 306, 1231, 1, 0, 0, 0, 308, 1236, 1, 0, 0, 0, 310, 1240, 1, 0, 0, 0, 312, 1244, 1, 0, 0, 0, 314, 1248, 1, 0, 0, 0, 316, 1252, 1, 0, 0, 0, 318, 1256, 1, 0, 0, 0, 320, 1262, 1, 0, 0, 0, 322, 1266, 1, 0, 0, 0, 324, 1270, 1, 0, 0, 0, 326, 1274, 1, 0, 0, 0, 328, 1278, 1, 0, 0, 0, 330, 1282, 1, 0, 0, 0, 332, 1286, 1, 0, 0, 0, 334, 1291, 1, 0, 0, 0, 336, 1295, 1, 0, 0, 0, 338, 1299, 1, 0, 0, 0, 340, 1303, 1, 0, 0, 0, 342, 1307, 1, 0, 0, 0, 344, 1311, 1, 0, 0, 0, 346, 1315, 1, 0, 0, 0, 348, 1320, 1, 0, 0, 0, 350, 1325, 1, 0, 0, 0, 352, 1329, 1, 0, 0, 0, 354, 1333, 1, 0, 0, 0, 356, 1337, 1, 0, 0, 0, 358, 1342, 1, 0, 0, 0, 360, 1352, 1, 0, 0, 0, 362, 1356, 1, 0, 0, 0, 364, 1360, 1, 0, 0, 0, 366, 1364, 1, 0, 0, 0, 368, 1369, 1, 0, 0, 0, 370, 1376, 1, 0, 0, 0, 372, 1380, 1, 0, 0, 0, 374, 1384, 1, 0, 0, 0, 376, 1388, 1, 0, 0, 0, 378, 1392, 1, 0, 0, 0, 380, 1397, 1, 0, 0, 0, 382, 1403, 1, 0, 0, 0, 384, 1409, 1, 0, 0, 0, 386, 1413, 1, 0, 0, 0, 388, 1417, 1, 0, 0, 0, 390, 1421, 1, 0, 0, 0, 392, 1427, 1, 0, 0, 0, 394, 1433, 1, 0, 0, 0, 396, 1437, 1, 0, 0, 0, 398, 1441, 1, 0, 0, 0, 400, 1445, 1, 0, 0, 0, 402, 1451, 1, 0, 0, 0, 404, 1457, 1, 0, 0, 0, 406, 1463, 1, 0, 0, 0, 408, 409, 7, 0, 0, 0, 409, 410, 7, 1, 0, 0, 410, 411, 7, 2, 0, 0, 411, 412, 7, 2, 0, 0, 412, 413, 7, 3, 0, 0, 413, 414, 7, 4, 0, 0, 414, 415, 7, 5, 0, 0, 415, 416, 1, 0, 0, 0, 416, 417, 6, 0, 0, 0, 417, 17, 1, 0, 0, 0, 418, 419, 7, 0, 0, 0, 419, 420, 7, 6, 0, 0, 420, 421, 7, 7, 0, 0, 421, 422, 7, 8, 0, 0, 422, 423, 1, 0, 0, 0, 423, 424, 6, 1, 1, 0, 424, 19, 1, 0, 0, 0, 425, 426, 7, 3, 0, 0, 426, 427, 7, 9, 0, 0, 427, 428, 7, 6, 0, 0, 428, 429, 7, 1, 0, 0, 429, 430, 7, 4, 0, 0, 430, 431, 7, 10, 0, 0, 431, 432, 1, 0, 0, 0, 432, 433, 6, 2, 2, 0, 433, 21, 1, 0, 0, 0, 434, 435, 7, 3, 0, 0, 435, 436, 7, 11, 0, 0, 436, 437, 7, 12, 0, 0, 437, 438, 7, 13, 0, 0, 438, 439, 1, 0, 0, 0, 439, 440, 6, 3, 0, 0, 440, 23, 1, 0, 0, 0, 441, 442, 7, 3, 0, 0, 442, 443, 7, 14, 0, 0, 443, 444, 7, 8, 0, 0, 444, 445, 7, 13, 0, 0, 445, 446, 7, 12, 0, 0, 446, 447, 7, 1, 0, 0, 447, 448, 7, 9, 0, 0, 448, 449, 1, 0, 0, 0, 449, 450, 6, 4, 3, 0, 450, 25, 1, 0, 0, 0, 451, 452, 7, 15, 0, 0, 452, 453, 7, 6, 0, 0, 453, 454, 7, 7, 0, 0, 454, 455, 7, 16, 0, 0, 455, 456, 1, 0, 0, 0, 456, 457, 6, 5, 4, 0, 457, 27, 1, 0, 0, 0, 458, 459, 7, 17, 0, 0, 459, 460, 7, 6, 0, 0, 460, 461, 7, 7, 0, 0, 461, 462, 7, 18, 0, 0, 462, 463, 1, 0, 0, 0, 463, 464, 6, 6, 0, 0, 464, 29, 1, 0, 0, 0, 465, 466, 7, 1, 0, 0, 466, 467, 7, 9, 0, 0, 467, 468, 7, 13, 0, 0, 468, 469, 7, 1, 0, 0, 469, 470, 7, 9, 0, 0, 470, 471, 7, 3, 0, 0, 471, 472, 7, 2, 0, 0, 472, 473, 7, 5, 0, 0, 473, 474, 7, 12, 0, 0, 474, 475, 7, 5, 0, 0, 475, 476, 7, 2, 0, 0, 476, 477, 1, 0, 0, 0, 477, 478, 6, 7, 0, 0, 478, 31, 1, 0, 0, 0, 479, 480, 7, 18, 0, 0, 480, 481, 7, 3, 0, 0, 481, 482, 7, 3, 0, 0, 482, 483, 7, 8, 0, 0, 483, 484, 1, 0, 0, 0, 484, 485, 6, 8, 1, 0, 485, 33, 1, 0, 0, 0, 486, 487, 7, 13, 0, 0, 487, 488, 7, 1, 0, 0, 488, 489, 7, 16, 0, 0, 489, 490, 7, 1, 0, 0, 490, 491, 7, 5, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 6, 9, 0, 0, 493, 35, 1, 0, 0, 0, 494, 495, 7, 13, 0, 0, 495, 496, 7, 7, 0, 0, 496, 497, 7, 7, 0, 0, 497, 498, 7, 18, 0, 0, 498, 499, 7, 19, 0, 0, 499, 500, 7, 8, 0, 0, 500, 501, 1, 0, 0, 0, 501, 502, 6, 10, 5, 0, 502, 37, 1, 0, 0, 0, 503, 504, 7, 16, 0, 0, 504, 505, 7, 3, 0, 0, 505, 506, 7, 5, 0, 0, 506, 507, 7, 12, 0, 0, 507, 508, 1, 0, 0, 0, 508, 509, 6, 11, 6, 0, 509, 39, 1, 0, 0, 0, 510, 511, 7, 16, 0, 0, 511, 512, 7, 3, 0, 0, 512, 513, 7, 5, 0, 0, 513, 514, 7, 6, 0, 0, 514, 515, 7, 1, 0, 0, 515, 516, 7, 4, 0, 0, 516, 517, 7, 2, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 6, 12, 7, 0, 519, 41, 1, 0, 0, 0, 520, 521, 7, 16, 0, 0, 521, 522, 7, 11, 0, 0, 522, 523, 5, 95, 0, 0, 523, 524, 7, 3, 0, 0, 524, 525, 7, 14, 0, 0, 525, 526, 7, 8, 0, 0, 526, 527, 7, 12, 0, 0, 527, 528, 7, 9, 0, 0, 528, 529, 7, 0, 0, 0, 529, 530, 1, 0, 0, 0, 530, 531, 6, 13, 8, 0, 531, 43, 1, 0, 0, 0, 532, 533, 7, 6, 0, 0, 533, 534, 7, 3, 0, 0, 534, 535, 7, 9, 0, 0, 535, 536, 7, 12, 0, 0, 536, 537, 7, 16, 0, 0, 537, 538, 7, 3, 0, 0, 538, 539, 1, 0, 0, 0, 539, 540, 6, 14, 9, 0, 540, 45, 1, 0, 0, 0, 541, 542, 7, 6, 0, 0, 542, 543, 7, 7, 0, 0, 543, 544, 7, 20, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 6, 15, 0, 0, 546, 47, 1, 0, 0, 0, 547, 548, 7, 2, 0, 0, 548, 549, 7, 10, 0, 0, 549, 550, 7, 7, 0, 0, 550, 551, 7, 20, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 6, 16, 10, 0, 553, 49, 1, 0, 0, 0, 554, 555, 7, 2, 0, 0, 555, 556, 7, 7, 0, 0, 556, 557, 7, 6, 0, 0, 557, 558, 7, 5, 0, 0, 558, 559, 1, 0, 0, 0, 559, 560, 6, 17, 0, 0, 560, 51, 1, 0, 0, 0, 561, 562, 7, 2, 0, 0, 562, 563, 7, 5, 0, 0, 563, 564, 7, 12, 0, 0, 564, 565, 7, 5, 0, 0, 565, 566, 7, 2, 0, 0, 566, 567, 1, 0, 0, 0, 567, 568, 6, 18, 0, 0, 568, 53, 1, 0, 0, 0, 569, 570, 7, 20, 0, 0, 570, 571, 7, 10, 0, 0, 571, 572, 7, 3, 0, 0, 572, 573, 7, 6, 0, 0, 573, 574, 7, 3, 0, 0, 574, 575, 1, 0, 0, 0, 575, 576, 6, 19, 0, 0, 576, 55, 1, 0, 0, 0, 577, 578, 7, 16, 0, 0, 578, 579, 7, 12, 0, 0, 579, 580, 7, 5, 0, 0, 580, 581, 7, 4, 0, 0, 581, 582, 7, 10, 0, 0, 582, 583, 1, 0, 0, 0, 583, 584, 6, 20, 0, 0, 584, 57, 1, 0, 0, 0, 585, 587, 8, 21, 0, 0, 586, 585, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 588, 589, 1, 0, 0, 0, 589, 590, 1, 0, 0, 0, 590, 591, 6, 21, 0, 0, 591, 59, 1, 0, 0, 0, 592, 593, 5, 47, 0, 0, 593, 594, 5, 47, 0, 0, 594, 598, 1, 0, 0, 0, 595, 597, 8, 22, 0, 0, 596, 595, 1, 0, 0, 0, 597, 600, 1, 0, 0, 0, 598, 596, 1, 0, 0, 0, 598, 599, 1, 0, 0, 0, 599, 602, 1, 0, 0, 0, 600, 598, 1, 0, 0, 0, 601, 603, 5, 13, 0, 0, 602, 601, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 605, 1, 0, 0, 0, 604, 606, 5, 10, 0, 0, 605, 604, 1, 0, 0, 0, 605, 606, 1, 0, 0, 0, 606, 607, 1, 0, 0, 0, 607, 608, 6, 22, 11, 0, 608, 61, 1, 0, 0, 0, 609, 610, 5, 47, 0, 0, 610, 611, 5, 42, 0, 0, 611, 616, 1, 0, 0, 0, 612, 615, 3, 62, 23, 0, 613, 615, 9, 0, 0, 0, 614, 612, 1, 0, 0, 0, 614, 613, 1, 0, 0, 0, 615, 618, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 616, 614, 1, 0, 0, 0, 617, 619, 1, 0, 0, 0, 618, 616, 1, 0, 0, 0, 619, 620, 5, 42, 0, 0, 620, 621, 5, 47, 0, 0, 621, 622, 1, 0, 0, 0, 622, 623, 6, 23, 11, 0, 623, 63, 1, 0, 0, 0, 624, 626, 7, 23, 0, 0, 625, 624, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 625, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 630, 6, 24, 11, 0, 630, 65, 1, 0, 0, 0, 631, 635, 8, 24, 0, 0, 632, 633, 5, 47, 0, 0, 633, 635, 8, 25, 0, 0, 634, 631, 1, 0, 0, 0, 634, 632, 1, 0, 0, 0, 635, 67, 1, 0, 0, 0, 636, 638, 3, 66, 25, 0, 637, 636, 1, 0, 0, 0, 638, 639, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 69, 1, 0, 0, 0, 641, 642, 3, 182, 83, 0, 642, 643, 1, 0, 0, 0, 643, 644, 6, 27, 12, 0, 644, 645, 6, 27, 13, 0, 645, 71, 1, 0, 0, 0, 646, 647, 3, 80, 32, 0, 647, 648, 1, 0, 0, 0, 648, 649, 6, 28, 14, 0, 649, 650, 6, 28, 15, 0, 650, 73, 1, 0, 0, 0, 651, 652, 3, 64, 24, 0, 652, 653, 1, 0, 0, 0, 653, 654, 6, 29, 11, 0, 654, 75, 1, 0, 0, 0, 655, 656, 3, 60, 22, 0, 656, 657, 1, 0, 0, 0, 657, 658, 6, 30, 11, 0, 658, 77, 1, 0, 0, 0, 659, 660, 3, 62, 23, 0, 660, 661, 1, 0, 0, 0, 661, 662, 6, 31, 11, 0, 662, 79, 1, 0, 0, 0, 663, 664, 5, 124, 0, 0, 664, 665, 1, 0, 0, 0, 665, 666, 6, 32, 15, 0, 666, 81, 1, 0, 0, 0, 667, 668, 7, 26, 0, 0, 668, 83, 1, 0, 0, 0, 669, 670, 7, 27, 0, 0, 670, 85, 1, 0, 0, 0, 671, 672, 5, 92, 0, 0, 672, 673, 7, 28, 0, 0, 673, 87, 1, 0, 0, 0, 674, 675, 8, 29, 0, 0, 675, 89, 1, 0, 0, 0, 676, 678, 7, 3, 0, 0, 677, 679, 7, 30, 0, 0, 678, 677, 1, 0, 0, 0, 678, 679, 1, 0, 0, 0, 679, 681, 1, 0, 0, 0, 680, 682, 3, 82, 33, 0, 681, 680, 1, 0, 0, 0, 682, 683, 1, 0, 0, 0, 683, 681, 1, 0, 0, 0, 683, 684, 1, 0, 0, 0, 684, 91, 1, 0, 0, 0, 685, 686, 5, 64, 0, 0, 686, 93, 1, 0, 0, 0, 687, 688, 5, 96, 0, 0, 688, 95, 1, 0, 0, 0, 689, 693, 8, 31, 0, 0, 690, 691, 5, 96, 0, 0, 691, 693, 5, 96, 0, 0, 692, 689, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 693, 97, 1, 0, 0, 0, 694, 695, 5, 95, 0, 0, 695, 99, 1, 0, 0, 0, 696, 700, 3, 84, 34, 0, 697, 700, 3, 82, 33, 0, 698, 700, 3, 98, 41, 0, 699, 696, 1, 0, 0, 0, 699, 697, 1, 0, 0, 0, 699, 698, 1, 0, 0, 0, 700, 101, 1, 0, 0, 0, 701, 706, 5, 34, 0, 0, 702, 705, 3, 86, 35, 0, 703, 705, 3, 88, 36, 0, 704, 702, 1, 0, 0, 0, 704, 703, 1, 0, 0, 0, 705, 708, 1, 0, 0, 0, 706, 704, 1, 0, 0, 0, 706, 707, 1, 0, 0, 0, 707, 709, 1, 0, 0, 0, 708, 706, 1, 0, 0, 0, 709, 731, 5, 34, 0, 0, 710, 711, 5, 34, 0, 0, 711, 712, 5, 34, 0, 0, 712, 713, 5, 34, 0, 0, 713, 717, 1, 0, 0, 0, 714, 716, 8, 22, 0, 0, 715, 714, 1, 0, 0, 0, 716, 719, 1, 0, 0, 0, 717, 718, 1, 0, 0, 0, 717, 715, 1, 0, 0, 0, 718, 720, 1, 0, 0, 0, 719, 717, 1, 0, 0, 0, 720, 721, 5, 34, 0, 0, 721, 722, 5, 34, 0, 0, 722, 723, 5, 34, 0, 0, 723, 725, 1, 0, 0, 0, 724, 726, 5, 34, 0, 0, 725, 724, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 728, 1, 0, 0, 0, 727, 729, 5, 34, 0, 0, 728, 727, 1, 0, 0, 0, 728, 729, 1, 0, 0, 0, 729, 731, 1, 0, 0, 0, 730, 701, 1, 0, 0, 0, 730, 710, 1, 0, 0, 0, 731, 103, 1, 0, 0, 0, 732, 734, 3, 82, 33, 0, 733, 732, 1, 0, 0, 0, 734, 735, 1, 0, 0, 0, 735, 733, 1, 0, 0, 0, 735, 736, 1, 0, 0, 0, 736, 105, 1, 0, 0, 0, 737, 739, 3, 82, 33, 0, 738, 737, 1, 0, 0, 0, 739, 740, 1, 0, 0, 0, 740, 738, 1, 0, 0, 0, 740, 741, 1, 0, 0, 0, 741, 742, 1, 0, 0, 0, 742, 746, 3, 122, 53, 0, 743, 745, 3, 82, 33, 0, 744, 743, 1, 0, 0, 0, 745, 748, 1, 0, 0, 0, 746, 744, 1, 0, 0, 0, 746, 747, 1, 0, 0, 0, 747, 780, 1, 0, 0, 0, 748, 746, 1, 0, 0, 0, 749, 751, 3, 122, 53, 0, 750, 752, 3, 82, 33, 0, 751, 750, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 751, 1, 0, 0, 0, 753, 754, 1, 0, 0, 0, 754, 780, 1, 0, 0, 0, 755, 757, 3, 82, 33, 0, 756, 755, 1, 0, 0, 0, 757, 758, 1, 0, 0, 0, 758, 756, 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 767, 1, 0, 0, 0, 760, 764, 3, 122, 53, 0, 761, 763, 3, 82, 33, 0, 762, 761, 1, 0, 0, 0, 763, 766, 1, 0, 0, 0, 764, 762, 1, 0, 0, 0, 764, 765, 1, 0, 0, 0, 765, 768, 1, 0, 0, 0, 766, 764, 1, 0, 0, 0, 767, 760, 1, 0, 0, 0, 767, 768, 1, 0, 0, 0, 768, 769, 1, 0, 0, 0, 769, 770, 3, 90, 37, 0, 770, 780, 1, 0, 0, 0, 771, 773, 3, 122, 53, 0, 772, 774, 3, 82, 33, 0, 773, 772, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, 773, 1, 0, 0, 0, 775, 776, 1, 0, 0, 0, 776, 777, 1, 0, 0, 0, 777, 778, 3, 90, 37, 0, 778, 780, 1, 0, 0, 0, 779, 738, 1, 0, 0, 0, 779, 749, 1, 0, 0, 0, 779, 756, 1, 0, 0, 0, 779, 771, 1, 0, 0, 0, 780, 107, 1, 0, 0, 0, 781, 782, 7, 32, 0, 0, 782, 783, 7, 33, 0, 0, 783, 109, 1, 0, 0, 0, 784, 785, 7, 12, 0, 0, 785, 786, 7, 9, 0, 0, 786, 787, 7, 0, 0, 0, 787, 111, 1, 0, 0, 0, 788, 789, 7, 12, 0, 0, 789, 790, 7, 2, 0, 0, 790, 791, 7, 4, 0, 0, 791, 113, 1, 0, 0, 0, 792, 793, 5, 61, 0, 0, 793, 115, 1, 0, 0, 0, 794, 795, 5, 58, 0, 0, 795, 796, 5, 58, 0, 0, 796, 117, 1, 0, 0, 0, 797, 798, 5, 44, 0, 0, 798, 119, 1, 0, 0, 0, 799, 800, 7, 0, 0, 0, 800, 801, 7, 3, 0, 0, 801, 802, 7, 2, 0, 0, 802, 803, 7, 4, 0, 0, 803, 121, 1, 0, 0, 0, 804, 805, 5, 46, 0, 0, 805, 123, 1, 0, 0, 0, 806, 807, 7, 15, 0, 0, 807, 808, 7, 12, 0, 0, 808, 809, 7, 13, 0, 0, 809, 810, 7, 2, 0, 0, 810, 811, 7, 3, 0, 0, 811, 125, 1, 0, 0, 0, 812, 813, 7, 15, 0, 0, 813, 814, 7, 1, 0, 0, 814, 815, 7, 6, 0, 0, 815, 816, 7, 2, 0, 0, 816, 817, 7, 5, 0, 0, 817, 127, 1, 0, 0, 0, 818, 819, 7, 1, 0, 0, 819, 820, 7, 9, 0, 0, 820, 129, 1, 0, 0, 0, 821, 822, 7, 1, 0, 0, 822, 823, 7, 2, 0, 0, 823, 131, 1, 0, 0, 0, 824, 825, 7, 13, 0, 0, 825, 826, 7, 12, 0, 0, 826, 827, 7, 2, 0, 0, 827, 828, 7, 5, 0, 0, 828, 133, 1, 0, 0, 0, 829, 830, 7, 13, 0, 0, 830, 831, 7, 1, 0, 0, 831, 832, 7, 18, 0, 0, 832, 833, 7, 3, 0, 0, 833, 135, 1, 0, 0, 0, 834, 835, 5, 40, 0, 0, 835, 137, 1, 0, 0, 0, 836, 837, 7, 16, 0, 0, 837, 838, 7, 12, 0, 0, 838, 839, 7, 5, 0, 0, 839, 840, 7, 4, 0, 0, 840, 841, 7, 10, 0, 0, 841, 139, 1, 0, 0, 0, 842, 843, 7, 9, 0, 0, 843, 844, 7, 7, 0, 0, 844, 845, 7, 5, 0, 0, 845, 141, 1, 0, 0, 0, 846, 847, 7, 9, 0, 0, 847, 848, 7, 19, 0, 0, 848, 849, 7, 13, 0, 0, 849, 850, 7, 13, 0, 0, 850, 143, 1, 0, 0, 0, 851, 852, 7, 9, 0, 0, 852, 853, 7, 19, 0, 0, 853, 854, 7, 13, 0, 0, 854, 855, 7, 13, 0, 0, 855, 856, 7, 2, 0, 0, 856, 145, 1, 0, 0, 0, 857, 858, 7, 7, 0, 0, 858, 859, 7, 6, 0, 0, 859, 147, 1, 0, 0, 0, 860, 861, 5, 63, 0, 0, 861, 149, 1, 0, 0, 0, 862, 863, 7, 6, 0, 0, 863, 864, 7, 13, 0, 0, 864, 865, 7, 1, 0, 0, 865, 866, 7, 18, 0, 0, 866, 867, 7, 3, 0, 0, 867, 151, 1, 0, 0, 0, 868, 869, 5, 41, 0, 0, 869, 153, 1, 0, 0, 0, 870, 871, 7, 5, 0, 0, 871, 872, 7, 6, 0, 0, 872, 873, 7, 19, 0, 0, 873, 874, 7, 3, 0, 0, 874, 155, 1, 0, 0, 0, 875, 876, 5, 61, 0, 0, 876, 877, 5, 61, 0, 0, 877, 157, 1, 0, 0, 0, 878, 879, 5, 61, 0, 0, 879, 880, 5, 126, 0, 0, 880, 159, 1, 0, 0, 0, 881, 882, 5, 33, 0, 0, 882, 883, 5, 61, 0, 0, 883, 161, 1, 0, 0, 0, 884, 885, 5, 60, 0, 0, 885, 163, 1, 0, 0, 0, 886, 887, 5, 60, 0, 0, 887, 888, 5, 61, 0, 0, 888, 165, 1, 0, 0, 0, 889, 890, 5, 62, 0, 0, 890, 167, 1, 0, 0, 0, 891, 892, 5, 62, 0, 0, 892, 893, 5, 61, 0, 0, 893, 169, 1, 0, 0, 0, 894, 895, 5, 43, 0, 0, 895, 171, 1, 0, 0, 0, 896, 897, 5, 45, 0, 0, 897, 173, 1, 0, 0, 0, 898, 899, 5, 42, 0, 0, 899, 175, 1, 0, 0, 0, 900, 901, 5, 47, 0, 0, 901, 177, 1, 0, 0, 0, 902, 903, 5, 37, 0, 0, 903, 179, 1, 0, 0, 0, 904, 905, 3, 148, 66, 0, 905, 909, 3, 84, 34, 0, 906, 908, 3, 100, 42, 0, 907, 906, 1, 0, 0, 0, 908, 911, 1, 0, 0, 0, 909, 907, 1, 0, 0, 0, 909, 910, 1, 0, 0, 0, 910, 919, 1, 0, 0, 0, 911, 909, 1, 0, 0, 0, 912, 914, 3, 148, 66, 0, 913, 915, 3, 82, 33, 0, 914, 913, 1, 0, 0, 0, 915, 916, 1, 0, 0, 0, 916, 914, 1, 0, 0, 0, 916, 917, 1, 0, 0, 0, 917, 919, 1, 0, 0, 0, 918, 904, 1, 0, 0, 0, 918, 912, 1, 0, 0, 0, 919, 181, 1, 0, 0, 0, 920, 921, 5, 91, 0, 0, 921, 922, 1, 0, 0, 0, 922, 923, 6, 83, 0, 0, 923, 924, 6, 83, 0, 0, 924, 183, 1, 0, 0, 0, 925, 926, 5, 93, 0, 0, 926, 927, 1, 0, 0, 0, 927, 928, 6, 84, 15, 0, 928, 929, 6, 84, 15, 0, 929, 185, 1, 0, 0, 0, 930, 934, 3, 84, 34, 0, 931, 933, 3, 100, 42, 0, 932, 931, 1, 0, 0, 0, 933, 936, 1, 0, 0, 0, 934, 932, 1, 0, 0, 0, 934, 935, 1, 0, 0, 0, 935, 947, 1, 0, 0, 0, 936, 934, 1, 0, 0, 0, 937, 940, 3, 98, 41, 0, 938, 940, 3, 92, 38, 0, 939, 937, 1, 0, 0, 0, 939, 938, 1, 0, 0, 0, 940, 942, 1, 0, 0, 0, 941, 943, 3, 100, 42, 0, 942, 941, 1, 0, 0, 0, 943, 944, 1, 0, 0, 0, 944, 942, 1, 0, 0, 0, 944, 945, 1, 0, 0, 0, 945, 947, 1, 0, 0, 0, 946, 930, 1, 0, 0, 0, 946, 939, 1, 0, 0, 0, 947, 187, 1, 0, 0, 0, 948, 950, 3, 94, 39, 0, 949, 951, 3, 96, 40, 0, 950, 949, 1, 0, 0, 0, 951, 952, 1, 0, 0, 0, 952, 950, 1, 0, 0, 0, 952, 953, 1, 0, 0, 0, 953, 954, 1, 0, 0, 0, 954, 955, 3, 94, 39, 0, 955, 189, 1, 0, 0, 0, 956, 957, 3, 188, 86, 0, 957, 191, 1, 0, 0, 0, 958, 959, 3, 60, 22, 0, 959, 960, 1, 0, 0, 0, 960, 961, 6, 88, 11, 0, 961, 193, 1, 0, 0, 0, 962, 963, 3, 62, 23, 0, 963, 964, 1, 0, 0, 0, 964, 965, 6, 89, 11, 0, 965, 195, 1, 0, 0, 0, 966, 967, 3, 64, 24, 0, 967, 968, 1, 0, 0, 0, 968, 969, 6, 90, 11, 0, 969, 197, 1, 0, 0, 0, 970, 971, 3, 80, 32, 0, 971, 972, 1, 0, 0, 0, 972, 973, 6, 91, 14, 0, 973, 974, 6, 91, 15, 0, 974, 199, 1, 0, 0, 0, 975, 976, 3, 182, 83, 0, 976, 977, 1, 0, 0, 0, 977, 978, 6, 92, 12, 0, 978, 201, 1, 0, 0, 0, 979, 980, 3, 184, 84, 0, 980, 981, 1, 0, 0, 0, 981, 982, 6, 93, 16, 0, 982, 203, 1, 0, 0, 0, 983, 984, 3, 368, 176, 0, 984, 985, 1, 0, 0, 0, 985, 986, 6, 94, 17, 0, 986, 205, 1, 0, 0, 0, 987, 988, 3, 118, 51, 0, 988, 989, 1, 0, 0, 0, 989, 990, 6, 95, 18, 0, 990, 207, 1, 0, 0, 0, 991, 992, 3, 114, 49, 0, 992, 993, 1, 0, 0, 0, 993, 994, 6, 96, 19, 0, 994, 209, 1, 0, 0, 0, 995, 996, 7, 16, 0, 0, 996, 997, 7, 3, 0, 0, 997, 998, 7, 5, 0, 0, 998, 999, 7, 12, 0, 0, 999, 1000, 7, 0, 0, 0, 1000, 1001, 7, 12, 0, 0, 1001, 1002, 7, 5, 0, 0, 1002, 1003, 7, 12, 0, 0, 1003, 211, 1, 0, 0, 0, 1004, 1005, 3, 68, 26, 0, 1005, 1006, 1, 0, 0, 0, 1006, 1007, 6, 98, 20, 0, 1007, 213, 1, 0, 0, 0, 1008, 1009, 3, 102, 43, 0, 1009, 1010, 1, 0, 0, 0, 1010, 1011, 6, 99, 21, 0, 1011, 215, 1, 0, 0, 0, 1012, 1013, 3, 60, 22, 0, 1013, 1014, 1, 0, 0, 0, 1014, 1015, 6, 100, 11, 0, 1015, 217, 1, 0, 0, 0, 1016, 1017, 3, 62, 23, 0, 1017, 1018, 1, 0, 0, 0, 1018, 1019, 6, 101, 11, 0, 1019, 219, 1, 0, 0, 0, 1020, 1021, 3, 64, 24, 0, 1021, 1022, 1, 0, 0, 0, 1022, 1023, 6, 102, 11, 0, 1023, 221, 1, 0, 0, 0, 1024, 1025, 3, 80, 32, 0, 1025, 1026, 1, 0, 0, 0, 1026, 1027, 6, 103, 14, 0, 1027, 1028, 6, 103, 15, 0, 1028, 223, 1, 0, 0, 0, 1029, 1030, 3, 122, 53, 0, 1030, 1031, 1, 0, 0, 0, 1031, 1032, 6, 104, 22, 0, 1032, 225, 1, 0, 0, 0, 1033, 1034, 3, 118, 51, 0, 1034, 1035, 1, 0, 0, 0, 1035, 1036, 6, 105, 18, 0, 1036, 227, 1, 0, 0, 0, 1037, 1042, 3, 84, 34, 0, 1038, 1042, 3, 82, 33, 0, 1039, 1042, 3, 98, 41, 0, 1040, 1042, 3, 174, 79, 0, 1041, 1037, 1, 0, 0, 0, 1041, 1038, 1, 0, 0, 0, 1041, 1039, 1, 0, 0, 0, 1041, 1040, 1, 0, 0, 0, 1042, 229, 1, 0, 0, 0, 1043, 1046, 3, 84, 34, 0, 1044, 1046, 3, 174, 79, 0, 1045, 1043, 1, 0, 0, 0, 1045, 1044, 1, 0, 0, 0, 1046, 1050, 1, 0, 0, 0, 1047, 1049, 3, 228, 106, 0, 1048, 1047, 1, 0, 0, 0, 1049, 1052, 1, 0, 0, 0, 1050, 1048, 1, 0, 0, 0, 1050, 1051, 1, 0, 0, 0, 1051, 1063, 1, 0, 0, 0, 1052, 1050, 1, 0, 0, 0, 1053, 1056, 3, 98, 41, 0, 1054, 1056, 3, 92, 38, 0, 1055, 1053, 1, 0, 0, 0, 1055, 1054, 1, 0, 0, 0, 1056, 1058, 1, 0, 0, 0, 1057, 1059, 3, 228, 106, 0, 1058, 1057, 1, 0, 0, 0, 1059, 1060, 1, 0, 0, 0, 1060, 1058, 1, 0, 0, 0, 1060, 1061, 1, 0, 0, 0, 1061, 1063, 1, 0, 0, 0, 1062, 1045, 1, 0, 0, 0, 1062, 1055, 1, 0, 0, 0, 1063, 231, 1, 0, 0, 0, 1064, 1067, 3, 230, 107, 0, 1065, 1067, 3, 188, 86, 0, 1066, 1064, 1, 0, 0, 0, 1066, 1065, 1, 0, 0, 0, 1067, 1068, 1, 0, 0, 0, 1068, 1066, 1, 0, 0, 0, 1068, 1069, 1, 0, 0, 0, 1069, 233, 1, 0, 0, 0, 1070, 1071, 3, 60, 22, 0, 1071, 1072, 1, 0, 0, 0, 1072, 1073, 6, 109, 11, 0, 1073, 235, 1, 0, 0, 0, 1074, 1075, 3, 62, 23, 0, 1075, 1076, 1, 0, 0, 0, 1076, 1077, 6, 110, 11, 0, 1077, 237, 1, 0, 0, 0, 1078, 1079, 3, 64, 24, 0, 1079, 1080, 1, 0, 0, 0, 1080, 1081, 6, 111, 11, 0, 1081, 239, 1, 0, 0, 0, 1082, 1083, 3, 80, 32, 0, 1083, 1084, 1, 0, 0, 0, 1084, 1085, 6, 112, 14, 0, 1085, 1086, 6, 112, 15, 0, 1086, 241, 1, 0, 0, 0, 1087, 1088, 3, 114, 49, 0, 1088, 1089, 1, 0, 0, 0, 1089, 1090, 6, 113, 19, 0, 1090, 243, 1, 0, 0, 0, 1091, 1092, 3, 118, 51, 0, 1092, 1093, 1, 0, 0, 0, 1093, 1094, 6, 114, 18, 0, 1094, 245, 1, 0, 0, 0, 1095, 1096, 3, 122, 53, 0, 1096, 1097, 1, 0, 0, 0, 1097, 1098, 6, 115, 22, 0, 1098, 247, 1, 0, 0, 0, 1099, 1100, 7, 12, 0, 0, 1100, 1101, 7, 2, 0, 0, 1101, 249, 1, 0, 0, 0, 1102, 1103, 3, 232, 108, 0, 1103, 1104, 1, 0, 0, 0, 1104, 1105, 6, 117, 23, 0, 1105, 251, 1, 0, 0, 0, 1106, 1107, 3, 60, 22, 0, 1107, 1108, 1, 0, 0, 0, 1108, 1109, 6, 118, 11, 0, 1109, 253, 1, 0, 0, 0, 1110, 1111, 3, 62, 23, 0, 1111, 1112, 1, 0, 0, 0, 1112, 1113, 6, 119, 11, 0, 1113, 255, 1, 0, 0, 0, 1114, 1115, 3, 64, 24, 0, 1115, 1116, 1, 0, 0, 0, 1116, 1117, 6, 120, 11, 0, 1117, 257, 1, 0, 0, 0, 1118, 1119, 3, 80, 32, 0, 1119, 1120, 1, 0, 0, 0, 1120, 1121, 6, 121, 14, 0, 1121, 1122, 6, 121, 15, 0, 1122, 259, 1, 0, 0, 0, 1123, 1124, 3, 182, 83, 0, 1124, 1125, 1, 0, 0, 0, 1125, 1126, 6, 122, 12, 0, 1126, 1127, 6, 122, 24, 0, 1127, 261, 1, 0, 0, 0, 1128, 1129, 7, 7, 0, 0, 1129, 1130, 7, 9, 0, 0, 1130, 1131, 1, 0, 0, 0, 1131, 1132, 6, 123, 25, 0, 1132, 263, 1, 0, 0, 0, 1133, 1134, 7, 20, 0, 0, 1134, 1135, 7, 1, 0, 0, 1135, 1136, 7, 5, 0, 0, 1136, 1137, 7, 10, 0, 0, 1137, 1138, 1, 0, 0, 0, 1138, 1139, 6, 124, 25, 0, 1139, 265, 1, 0, 0, 0, 1140, 1141, 8, 34, 0, 0, 1141, 267, 1, 0, 0, 0, 1142, 1144, 3, 266, 125, 0, 1143, 1142, 1, 0, 0, 0, 1144, 1145, 1, 0, 0, 0, 1145, 1143, 1, 0, 0, 0, 1145, 1146, 1, 0, 0, 0, 1146, 1147, 1, 0, 0, 0, 1147, 1148, 3, 368, 176, 0, 1148, 1150, 1, 0, 0, 0, 1149, 1143, 1, 0, 0, 0, 1149, 1150, 1, 0, 0, 0, 1150, 1152, 1, 0, 0, 0, 1151, 1153, 3, 266, 125, 0, 1152, 1151, 1, 0, 0, 0, 1153, 1154, 1, 0, 0, 0, 1154, 1152, 1, 0, 0, 0, 1154, 1155, 1, 0, 0, 0, 1155, 269, 1, 0, 0, 0, 1156, 1157, 3, 268, 126, 0, 1157, 1158, 1, 0, 0, 0, 1158, 1159, 6, 127, 26, 0, 1159, 271, 1, 0, 0, 0, 1160, 1161, 3, 60, 22, 0, 1161, 1162, 1, 0, 0, 0, 1162, 1163, 6, 128, 11, 0, 1163, 273, 1, 0, 0, 0, 1164, 1165, 3, 62, 23, 0, 1165, 1166, 1, 0, 0, 0, 1166, 1167, 6, 129, 11, 0, 1167, 275, 1, 0, 0, 0, 1168, 1169, 3, 64, 24, 0, 1169, 1170, 1, 0, 0, 0, 1170, 1171, 6, 130, 11, 0, 1171, 277, 1, 0, 0, 0, 1172, 1173, 3, 80, 32, 0, 1173, 1174, 1, 0, 0, 0, 1174, 1175, 6, 131, 14, 0, 1175, 1176, 6, 131, 15, 0, 1176, 1177, 6, 131, 15, 0, 1177, 279, 1, 0, 0, 0, 1178, 1179, 3, 114, 49, 0, 1179, 1180, 1, 0, 0, 0, 1180, 1181, 6, 132, 19, 0, 1181, 281, 1, 0, 0, 0, 1182, 1183, 3, 118, 51, 0, 1183, 1184, 1, 0, 0, 0, 1184, 1185, 6, 133, 18, 0, 1185, 283, 1, 0, 0, 0, 1186, 1187, 3, 122, 53, 0, 1187, 1188, 1, 0, 0, 0, 1188, 1189, 6, 134, 22, 0, 1189, 285, 1, 0, 0, 0, 1190, 1191, 3, 264, 124, 0, 1191, 1192, 1, 0, 0, 0, 1192, 1193, 6, 135, 27, 0, 1193, 287, 1, 0, 0, 0, 1194, 1195, 3, 232, 108, 0, 1195, 1196, 1, 0, 0, 0, 1196, 1197, 6, 136, 23, 0, 1197, 289, 1, 0, 0, 0, 1198, 1199, 3, 190, 87, 0, 1199, 1200, 1, 0, 0, 0, 1200, 1201, 6, 137, 28, 0, 1201, 291, 1, 0, 0, 0, 1202, 1203, 3, 60, 22, 0, 1203, 1204, 1, 0, 0, 0, 1204, 1205, 6, 138, 11, 0, 1205, 293, 1, 0, 0, 0, 1206, 1207, 3, 62, 23, 0, 1207, 1208, 1, 0, 0, 0, 1208, 1209, 6, 139, 11, 0, 1209, 295, 1, 0, 0, 0, 1210, 1211, 3, 64, 24, 0, 1211, 1212, 1, 0, 0, 0, 1212, 1213, 6, 140, 11, 0, 1213, 297, 1, 0, 0, 0, 1214, 1215, 3, 80, 32, 0, 1215, 1216, 1, 0, 0, 0, 1216, 1217, 6, 141, 14, 0, 1217, 1218, 6, 141, 15, 0, 1218, 299, 1, 0, 0, 0, 1219, 1220, 3, 368, 176, 0, 1220, 1221, 1, 0, 0, 0, 1221, 1222, 6, 142, 17, 0, 1222, 301, 1, 0, 0, 0, 1223, 1224, 3, 118, 51, 0, 1224, 1225, 1, 0, 0, 0, 1225, 1226, 6, 143, 18, 0, 1226, 303, 1, 0, 0, 0, 1227, 1228, 3, 122, 53, 0, 1228, 1229, 1, 0, 0, 0, 1229, 1230, 6, 144, 22, 0, 1230, 305, 1, 0, 0, 0, 1231, 1232, 3, 262, 123, 0, 1232, 1233, 1, 0, 0, 0, 1233, 1234, 6, 145, 29, 0, 1234, 1235, 6, 145, 30, 0, 1235, 307, 1, 0, 0, 0, 1236, 1237, 3, 68, 26, 0, 1237, 1238, 1, 0, 0, 0, 1238, 1239, 6, 146, 20, 0, 1239, 309, 1, 0, 0, 0, 1240, 1241, 3, 102, 43, 0, 1241, 1242, 1, 0, 0, 0, 1242, 1243, 6, 147, 21, 0, 1243, 311, 1, 0, 0, 0, 1244, 1245, 3, 60, 22, 0, 1245, 1246, 1, 0, 0, 0, 1246, 1247, 6, 148, 11, 0, 1247, 313, 1, 0, 0, 0, 1248, 1249, 3, 62, 23, 0, 1249, 1250, 1, 0, 0, 0, 1250, 1251, 6, 149, 11, 0, 1251, 315, 1, 0, 0, 0, 1252, 1253, 3, 64, 24, 0, 1253, 1254, 1, 0, 0, 0, 1254, 1255, 6, 150, 11, 0, 1255, 317, 1, 0, 0, 0, 1256, 1257, 3, 80, 32, 0, 1257, 1258, 1, 0, 0, 0, 1258, 1259, 6, 151, 14, 0, 1259, 1260, 6, 151, 15, 0, 1260, 1261, 6, 151, 15, 0, 1261, 319, 1, 0, 0, 0, 1262, 1263, 3, 118, 51, 0, 1263, 1264, 1, 0, 0, 0, 1264, 1265, 6, 152, 18, 0, 1265, 321, 1, 0, 0, 0, 1266, 1267, 3, 122, 53, 0, 1267, 1268, 1, 0, 0, 0, 1268, 1269, 6, 153, 22, 0, 1269, 323, 1, 0, 0, 0, 1270, 1271, 3, 232, 108, 0, 1271, 1272, 1, 0, 0, 0, 1272, 1273, 6, 154, 23, 0, 1273, 325, 1, 0, 0, 0, 1274, 1275, 3, 60, 22, 0, 1275, 1276, 1, 0, 0, 0, 1276, 1277, 6, 155, 11, 0, 1277, 327, 1, 0, 0, 0, 1278, 1279, 3, 62, 23, 0, 1279, 1280, 1, 0, 0, 0, 1280, 1281, 6, 156, 11, 0, 1281, 329, 1, 0, 0, 0, 1282, 1283, 3, 64, 24, 0, 1283, 1284, 1, 0, 0, 0, 1284, 1285, 6, 157, 11, 0, 1285, 331, 1, 0, 0, 0, 1286, 1287, 3, 80, 32, 0, 1287, 1288, 1, 0, 0, 0, 1288, 1289, 6, 158, 14, 0, 1289, 1290, 6, 158, 15, 0, 1290, 333, 1, 0, 0, 0, 1291, 1292, 3, 122, 53, 0, 1292, 1293, 1, 0, 0, 0, 1293, 1294, 6, 159, 22, 0, 1294, 335, 1, 0, 0, 0, 1295, 1296, 3, 190, 87, 0, 1296, 1297, 1, 0, 0, 0, 1297, 1298, 6, 160, 28, 0, 1298, 337, 1, 0, 0, 0, 1299, 1300, 3, 186, 85, 0, 1300, 1301, 1, 0, 0, 0, 1301, 1302, 6, 161, 31, 0, 1302, 339, 1, 0, 0, 0, 1303, 1304, 3, 60, 22, 0, 1304, 1305, 1, 0, 0, 0, 1305, 1306, 6, 162, 11, 0, 1306, 341, 1, 0, 0, 0, 1307, 1308, 3, 62, 23, 0, 1308, 1309, 1, 0, 0, 0, 1309, 1310, 6, 163, 11, 0, 1310, 343, 1, 0, 0, 0, 1311, 1312, 3, 64, 24, 0, 1312, 1313, 1, 0, 0, 0, 1313, 1314, 6, 164, 11, 0, 1314, 345, 1, 0, 0, 0, 1315, 1316, 3, 80, 32, 0, 1316, 1317, 1, 0, 0, 0, 1317, 1318, 6, 165, 14, 0, 1318, 1319, 6, 165, 15, 0, 1319, 347, 1, 0, 0, 0, 1320, 1321, 7, 1, 0, 0, 1321, 1322, 7, 9, 0, 0, 1322, 1323, 7, 15, 0, 0, 1323, 1324, 7, 7, 0, 0, 1324, 349, 1, 0, 0, 0, 1325, 1326, 3, 60, 22, 0, 1326, 1327, 1, 0, 0, 0, 1327, 1328, 6, 167, 11, 0, 1328, 351, 1, 0, 0, 0, 1329, 1330, 3, 62, 23, 0, 1330, 1331, 1, 0, 0, 0, 1331, 1332, 6, 168, 11, 0, 1332, 353, 1, 0, 0, 0, 1333, 1334, 3, 64, 24, 0, 1334, 1335, 1, 0, 0, 0, 1335, 1336, 6, 169, 11, 0, 1336, 355, 1, 0, 0, 0, 1337, 1338, 3, 80, 32, 0, 1338, 1339, 1, 0, 0, 0, 1339, 1340, 6, 170, 14, 0, 1340, 1341, 6, 170, 15, 0, 1341, 357, 1, 0, 0, 0, 1342, 1343, 7, 15, 0, 0, 1343, 1344, 7, 19, 0, 0, 1344, 1345, 7, 9, 0, 0, 1345, 1346, 7, 4, 0, 0, 1346, 1347, 7, 5, 0, 0, 1347, 1348, 7, 1, 0, 0, 1348, 1349, 7, 7, 0, 0, 1349, 1350, 7, 9, 0, 0, 1350, 1351, 7, 2, 0, 0, 1351, 359, 1, 0, 0, 0, 1352, 1353, 3, 60, 22, 0, 1353, 1354, 1, 0, 0, 0, 1354, 1355, 6, 172, 11, 0, 1355, 361, 1, 0, 0, 0, 1356, 1357, 3, 62, 23, 0, 1357, 1358, 1, 0, 0, 0, 1358, 1359, 6, 173, 11, 0, 1359, 363, 1, 0, 0, 0, 1360, 1361, 3, 64, 24, 0, 1361, 1362, 1, 0, 0, 0, 1362, 1363, 6, 174, 11, 0, 1363, 365, 1, 0, 0, 0, 1364, 1365, 3, 184, 84, 0, 1365, 1366, 1, 0, 0, 0, 1366, 1367, 6, 175, 16, 0, 1367, 1368, 6, 175, 15, 0, 1368, 367, 1, 0, 0, 0, 1369, 1370, 5, 58, 0, 0, 1370, 369, 1, 0, 0, 0, 1371, 1377, 3, 92, 38, 0, 1372, 1377, 3, 82, 33, 0, 1373, 1377, 3, 122, 53, 0, 1374, 1377, 3, 84, 34, 0, 1375, 1377, 3, 98, 41, 0, 1376, 1371, 1, 0, 0, 0, 1376, 1372, 1, 0, 0, 0, 1376, 1373, 1, 0, 0, 0, 1376, 1374, 1, 0, 0, 0, 1376, 1375, 1, 0, 0, 0, 1377, 1378, 1, 0, 0, 0, 1378, 1376, 1, 0, 0, 0, 1378, 1379, 1, 0, 0, 0, 1379, 371, 1, 0, 0, 0, 1380, 1381, 3, 60, 22, 0, 1381, 1382, 1, 0, 0, 0, 1382, 1383, 6, 178, 11, 0, 1383, 373, 1, 0, 0, 0, 1384, 1385, 3, 62, 23, 0, 1385, 1386, 1, 0, 0, 0, 1386, 1387, 6, 179, 11, 0, 1387, 375, 1, 0, 0, 0, 1388, 1389, 3, 64, 24, 0, 1389, 1390, 1, 0, 0, 0, 1390, 1391, 6, 180, 11, 0, 1391, 377, 1, 0, 0, 0, 1392, 1393, 3, 80, 32, 0, 1393, 1394, 1, 0, 0, 0, 1394, 1395, 6, 181, 14, 0, 1395, 1396, 6, 181, 15, 0, 1396, 379, 1, 0, 0, 0, 1397, 1398, 3, 68, 26, 0, 1398, 1399, 1, 0, 0, 0, 1399, 1400, 6, 182, 20, 0, 1400, 1401, 6, 182, 15, 0, 1401, 1402, 6, 182, 32, 0, 1402, 381, 1, 0, 0, 0, 1403, 1404, 3, 102, 43, 0, 1404, 1405, 1, 0, 0, 0, 1405, 1406, 6, 183, 21, 0, 1406, 1407, 6, 183, 15, 0, 1407, 1408, 6, 183, 32, 0, 1408, 383, 1, 0, 0, 0, 1409, 1410, 3, 60, 22, 0, 1410, 1411, 1, 0, 0, 0, 1411, 1412, 6, 184, 11, 0, 1412, 385, 1, 0, 0, 0, 1413, 1414, 3, 62, 23, 0, 1414, 1415, 1, 0, 0, 0, 1415, 1416, 6, 185, 11, 0, 1416, 387, 1, 0, 0, 0, 1417, 1418, 3, 64, 24, 0, 1418, 1419, 1, 0, 0, 0, 1419, 1420, 6, 186, 11, 0, 1420, 389, 1, 0, 0, 0, 1421, 1422, 3, 368, 176, 0, 1422, 1423, 1, 0, 0, 0, 1423, 1424, 6, 187, 17, 0, 1424, 1425, 6, 187, 15, 0, 1425, 1426, 6, 187, 7, 0, 1426, 391, 1, 0, 0, 0, 1427, 1428, 3, 118, 51, 0, 1428, 1429, 1, 0, 0, 0, 1429, 1430, 6, 188, 18, 0, 1430, 1431, 6, 188, 15, 0, 1431, 1432, 6, 188, 7, 0, 1432, 393, 1, 0, 0, 0, 1433, 1434, 3, 60, 22, 0, 1434, 1435, 1, 0, 0, 0, 1435, 1436, 6, 189, 11, 0, 1436, 395, 1, 0, 0, 0, 1437, 1438, 3, 62, 23, 0, 1438, 1439, 1, 0, 0, 0, 1439, 1440, 6, 190, 11, 0, 1440, 397, 1, 0, 0, 0, 1441, 1442, 3, 64, 24, 0, 1442, 1443, 1, 0, 0, 0, 1443, 1444, 6, 191, 11, 0, 1444, 399, 1, 0, 0, 0, 1445, 1446, 3, 190, 87, 0, 1446, 1447, 1, 0, 0, 0, 1447, 1448, 6, 192, 15, 0, 1448, 1449, 6, 192, 0, 0, 1449, 1450, 6, 192, 28, 0, 1450, 401, 1, 0, 0, 0, 1451, 1452, 3, 186, 85, 0, 1452, 1453, 1, 0, 0, 0, 1453, 1454, 6, 193, 15, 0, 1454, 1455, 6, 193, 0, 0, 1455, 1456, 6, 193, 31, 0, 1456, 403, 1, 0, 0, 0, 1457, 1458, 3, 108, 46, 0, 1458, 1459, 1, 0, 0, 0, 1459, 1460, 6, 194, 15, 0, 1460, 1461, 6, 194, 0, 0, 1461, 1462, 6, 194, 33, 0, 1462, 405, 1, 0, 0, 0, 1463, 1464, 3, 80, 32, 0, 1464, 1465, 1, 0, 0, 0, 1465, 1466, 6, 195, 14, 0, 1466, 1467, 6, 195, 15, 0, 1467, 407, 1, 0, 0, 0, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 588, 598, 602, 605, 614, 616, 627, 634, 639, 678, 683, 692, 699, 704, 706, 717, 725, 728, 730, 735, 740, 746, 753, 758, 764, 767, 775, 779, 909, 916, 918, 934, 939, 944, 946, 952, 1041, 1045, 1050, 1055, 1060, 1062, 1066, 1068, 1145, 1149, 1154, 1376, 1378, 34, 5, 2, 0, 5, 4, 0, 5, 6, 0, 5, 1, 0, 5, 3, 0, 5, 8, 0, 5, 12, 0, 5, 14, 0, 5, 10, 0, 5, 5, 0, 5, 11, 0, 0, 1, 0, 7, 71, 0, 5, 0, 0, 7, 30, 0, 4, 0, 0, 7, 72, 0, 7, 116, 0, 7, 39, 0, 7, 37, 0, 7, 26, 0, 7, 31, 0, 7, 41, 0, 7, 82, 0, 5, 13, 0, 5, 7, 0, 7, 92, 0, 7, 91, 0, 7, 74, 0, 7, 90, 0, 5, 9, 0, 7, 73, 0, 5, 15, 0, 7, 34, 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 4cac289a33634..2d4bb481826f5 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_lexer.tokens +++ b/packages/kbn-esql-ast/src/antlr/esql_lexer.tokens @@ -18,111 +18,112 @@ SHOW=17 SORT=18 STATS=19 WHERE=20 -UNKNOWN_CMD=21 -LINE_COMMENT=22 -MULTILINE_COMMENT=23 -WS=24 -UNQUOTED_SOURCE=25 -EXPLAIN_WS=26 -EXPLAIN_LINE_COMMENT=27 -EXPLAIN_MULTILINE_COMMENT=28 -PIPE=29 -QUOTED_STRING=30 -INTEGER_LITERAL=31 -DECIMAL_LITERAL=32 -BY=33 -AND=34 -ASC=35 -ASSIGN=36 -CAST_OP=37 -COMMA=38 -DESC=39 -DOT=40 -FALSE=41 -FIRST=42 -IN=43 -IS=44 -LAST=45 -LIKE=46 -LP=47 -MATCH=48 -NOT=49 -NULL=50 -NULLS=51 -OR=52 -PARAM=53 -RLIKE=54 -RP=55 -TRUE=56 -EQ=57 -CIEQ=58 -NEQ=59 -LT=60 -LTE=61 -GT=62 -GTE=63 -PLUS=64 -MINUS=65 -ASTERISK=66 -SLASH=67 -PERCENT=68 -NAMED_OR_POSITIONAL_PARAM=69 -OPENING_BRACKET=70 -CLOSING_BRACKET=71 -UNQUOTED_IDENTIFIER=72 -QUOTED_IDENTIFIER=73 -EXPR_LINE_COMMENT=74 -EXPR_MULTILINE_COMMENT=75 -EXPR_WS=76 -METADATA=77 -FROM_LINE_COMMENT=78 -FROM_MULTILINE_COMMENT=79 -FROM_WS=80 -ID_PATTERN=81 -PROJECT_LINE_COMMENT=82 -PROJECT_MULTILINE_COMMENT=83 -PROJECT_WS=84 -AS=85 -RENAME_LINE_COMMENT=86 -RENAME_MULTILINE_COMMENT=87 -RENAME_WS=88 -ON=89 -WITH=90 -ENRICH_POLICY_NAME=91 -ENRICH_LINE_COMMENT=92 -ENRICH_MULTILINE_COMMENT=93 -ENRICH_WS=94 -ENRICH_FIELD_LINE_COMMENT=95 -ENRICH_FIELD_MULTILINE_COMMENT=96 -ENRICH_FIELD_WS=97 -LOOKUP_LINE_COMMENT=98 -LOOKUP_MULTILINE_COMMENT=99 -LOOKUP_WS=100 -LOOKUP_FIELD_LINE_COMMENT=101 -LOOKUP_FIELD_MULTILINE_COMMENT=102 -LOOKUP_FIELD_WS=103 -MVEXPAND_LINE_COMMENT=104 -MVEXPAND_MULTILINE_COMMENT=105 -MVEXPAND_WS=106 -INFO=107 -SHOW_LINE_COMMENT=108 -SHOW_MULTILINE_COMMENT=109 -SHOW_WS=110 -FUNCTIONS=111 -META_LINE_COMMENT=112 -META_MULTILINE_COMMENT=113 -META_WS=114 -COLON=115 -SETTING=116 -SETTING_LINE_COMMENT=117 -SETTTING_MULTILINE_COMMENT=118 -SETTING_WS=119 -METRICS_LINE_COMMENT=120 -METRICS_MULTILINE_COMMENT=121 -METRICS_WS=122 -CLOSING_METRICS_LINE_COMMENT=123 -CLOSING_METRICS_MULTILINE_COMMENT=124 -CLOSING_METRICS_WS=125 +MATCH=21 +UNKNOWN_CMD=22 +LINE_COMMENT=23 +MULTILINE_COMMENT=24 +WS=25 +UNQUOTED_SOURCE=26 +EXPLAIN_WS=27 +EXPLAIN_LINE_COMMENT=28 +EXPLAIN_MULTILINE_COMMENT=29 +PIPE=30 +QUOTED_STRING=31 +INTEGER_LITERAL=32 +DECIMAL_LITERAL=33 +BY=34 +AND=35 +ASC=36 +ASSIGN=37 +CAST_OP=38 +COMMA=39 +DESC=40 +DOT=41 +FALSE=42 +FIRST=43 +IN=44 +IS=45 +LAST=46 +LIKE=47 +LP=48 +MATCH_OPERATOR=49 +NOT=50 +NULL=51 +NULLS=52 +OR=53 +PARAM=54 +RLIKE=55 +RP=56 +TRUE=57 +EQ=58 +CIEQ=59 +NEQ=60 +LT=61 +LTE=62 +GT=63 +GTE=64 +PLUS=65 +MINUS=66 +ASTERISK=67 +SLASH=68 +PERCENT=69 +NAMED_OR_POSITIONAL_PARAM=70 +OPENING_BRACKET=71 +CLOSING_BRACKET=72 +UNQUOTED_IDENTIFIER=73 +QUOTED_IDENTIFIER=74 +EXPR_LINE_COMMENT=75 +EXPR_MULTILINE_COMMENT=76 +EXPR_WS=77 +METADATA=78 +FROM_LINE_COMMENT=79 +FROM_MULTILINE_COMMENT=80 +FROM_WS=81 +ID_PATTERN=82 +PROJECT_LINE_COMMENT=83 +PROJECT_MULTILINE_COMMENT=84 +PROJECT_WS=85 +AS=86 +RENAME_LINE_COMMENT=87 +RENAME_MULTILINE_COMMENT=88 +RENAME_WS=89 +ON=90 +WITH=91 +ENRICH_POLICY_NAME=92 +ENRICH_LINE_COMMENT=93 +ENRICH_MULTILINE_COMMENT=94 +ENRICH_WS=95 +ENRICH_FIELD_LINE_COMMENT=96 +ENRICH_FIELD_MULTILINE_COMMENT=97 +ENRICH_FIELD_WS=98 +LOOKUP_LINE_COMMENT=99 +LOOKUP_MULTILINE_COMMENT=100 +LOOKUP_WS=101 +LOOKUP_FIELD_LINE_COMMENT=102 +LOOKUP_FIELD_MULTILINE_COMMENT=103 +LOOKUP_FIELD_WS=104 +MVEXPAND_LINE_COMMENT=105 +MVEXPAND_MULTILINE_COMMENT=106 +MVEXPAND_WS=107 +INFO=108 +SHOW_LINE_COMMENT=109 +SHOW_MULTILINE_COMMENT=110 +SHOW_WS=111 +FUNCTIONS=112 +META_LINE_COMMENT=113 +META_MULTILINE_COMMENT=114 +META_WS=115 +COLON=116 +SETTING=117 +SETTING_LINE_COMMENT=118 +SETTTING_MULTILINE_COMMENT=119 +SETTING_WS=120 +METRICS_LINE_COMMENT=121 +METRICS_MULTILINE_COMMENT=122 +METRICS_WS=123 +CLOSING_METRICS_LINE_COMMENT=124 +CLOSING_METRICS_MULTILINE_COMMENT=125 +CLOSING_METRICS_WS=126 'dissect'=1 'drop'=2 'enrich'=3 @@ -143,48 +144,47 @@ CLOSING_METRICS_WS=125 'sort'=18 'stats'=19 'where'=20 -'|'=29 -'by'=33 -'and'=34 -'asc'=35 -'='=36 -'::'=37 -','=38 -'desc'=39 -'.'=40 -'false'=41 -'first'=42 -'in'=43 -'is'=44 -'last'=45 -'like'=46 -'('=47 -'match'=48 -'not'=49 -'null'=50 -'nulls'=51 -'or'=52 -'?'=53 -'rlike'=54 -')'=55 -'true'=56 -'=='=57 -'=~'=58 -'!='=59 -'<'=60 -'<='=61 -'>'=62 -'>='=63 -'+'=64 -'-'=65 -'*'=66 -'/'=67 -'%'=68 -']'=71 -'metadata'=77 -'as'=85 -'on'=89 -'with'=90 -'info'=107 -'functions'=111 -':'=115 +'|'=30 +'by'=34 +'and'=35 +'asc'=36 +'='=37 +'::'=38 +','=39 +'desc'=40 +'.'=41 +'false'=42 +'first'=43 +'in'=44 +'is'=45 +'last'=46 +'like'=47 +'('=48 +'not'=50 +'null'=51 +'nulls'=52 +'or'=53 +'?'=54 +'rlike'=55 +')'=56 +'true'=57 +'=='=58 +'=~'=59 +'!='=60 +'<'=61 +'<='=62 +'>'=63 +'>='=64 +'+'=65 +'-'=66 +'*'=67 +'/'=68 +'%'=69 +']'=72 +'metadata'=78 +'as'=86 +'on'=90 +'with'=91 +'info'=108 +'functions'=112 +':'=116 diff --git a/packages/kbn-esql-ast/src/antlr/esql_lexer.ts b/packages/kbn-esql-ast/src/antlr/esql_lexer.ts index eb10e461fab5f..179382f9f736e 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_lexer.ts +++ b/packages/kbn-esql-ast/src/antlr/esql_lexer.ts @@ -1,5 +1,5 @@ // @ts-nocheck -// Generated from src/antlr/esql_lexer.g4 by ANTLR 4.13.1 +// Generated from src/antlr/esql_lexer.g4 by ANTLR 4.13.2 // noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols import { ATN, @@ -33,111 +33,112 @@ export default class esql_lexer extends Lexer { public static readonly SORT = 18; public static readonly STATS = 19; public static readonly WHERE = 20; - public static readonly UNKNOWN_CMD = 21; - public static readonly LINE_COMMENT = 22; - public static readonly MULTILINE_COMMENT = 23; - public static readonly WS = 24; - public static readonly UNQUOTED_SOURCE = 25; - public static readonly EXPLAIN_WS = 26; - public static readonly EXPLAIN_LINE_COMMENT = 27; - public static readonly EXPLAIN_MULTILINE_COMMENT = 28; - public static readonly PIPE = 29; - public static readonly QUOTED_STRING = 30; - public static readonly INTEGER_LITERAL = 31; - public static readonly DECIMAL_LITERAL = 32; - public static readonly BY = 33; - public static readonly AND = 34; - public static readonly ASC = 35; - public static readonly ASSIGN = 36; - public static readonly CAST_OP = 37; - public static readonly COMMA = 38; - public static readonly DESC = 39; - public static readonly DOT = 40; - public static readonly FALSE = 41; - public static readonly FIRST = 42; - public static readonly IN = 43; - public static readonly IS = 44; - public static readonly LAST = 45; - public static readonly LIKE = 46; - public static readonly LP = 47; - public static readonly MATCH = 48; - public static readonly NOT = 49; - public static readonly NULL = 50; - public static readonly NULLS = 51; - public static readonly OR = 52; - public static readonly PARAM = 53; - public static readonly RLIKE = 54; - public static readonly RP = 55; - public static readonly TRUE = 56; - public static readonly EQ = 57; - public static readonly CIEQ = 58; - public static readonly NEQ = 59; - public static readonly LT = 60; - public static readonly LTE = 61; - public static readonly GT = 62; - public static readonly GTE = 63; - public static readonly PLUS = 64; - public static readonly MINUS = 65; - public static readonly ASTERISK = 66; - public static readonly SLASH = 67; - public static readonly PERCENT = 68; - public static readonly NAMED_OR_POSITIONAL_PARAM = 69; - public static readonly OPENING_BRACKET = 70; - public static readonly CLOSING_BRACKET = 71; - public static readonly UNQUOTED_IDENTIFIER = 72; - public static readonly QUOTED_IDENTIFIER = 73; - public static readonly EXPR_LINE_COMMENT = 74; - public static readonly EXPR_MULTILINE_COMMENT = 75; - public static readonly EXPR_WS = 76; - public static readonly METADATA = 77; - public static readonly FROM_LINE_COMMENT = 78; - public static readonly FROM_MULTILINE_COMMENT = 79; - public static readonly FROM_WS = 80; - public static readonly ID_PATTERN = 81; - public static readonly PROJECT_LINE_COMMENT = 82; - public static readonly PROJECT_MULTILINE_COMMENT = 83; - public static readonly PROJECT_WS = 84; - public static readonly AS = 85; - public static readonly RENAME_LINE_COMMENT = 86; - public static readonly RENAME_MULTILINE_COMMENT = 87; - public static readonly RENAME_WS = 88; - public static readonly ON = 89; - public static readonly WITH = 90; - public static readonly ENRICH_POLICY_NAME = 91; - public static readonly ENRICH_LINE_COMMENT = 92; - public static readonly ENRICH_MULTILINE_COMMENT = 93; - public static readonly ENRICH_WS = 94; - public static readonly ENRICH_FIELD_LINE_COMMENT = 95; - public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 96; - public static readonly ENRICH_FIELD_WS = 97; - public static readonly LOOKUP_LINE_COMMENT = 98; - public static readonly LOOKUP_MULTILINE_COMMENT = 99; - public static readonly LOOKUP_WS = 100; - public static readonly LOOKUP_FIELD_LINE_COMMENT = 101; - public static readonly LOOKUP_FIELD_MULTILINE_COMMENT = 102; - public static readonly LOOKUP_FIELD_WS = 103; - public static readonly MVEXPAND_LINE_COMMENT = 104; - public static readonly MVEXPAND_MULTILINE_COMMENT = 105; - public static readonly MVEXPAND_WS = 106; - public static readonly INFO = 107; - public static readonly SHOW_LINE_COMMENT = 108; - public static readonly SHOW_MULTILINE_COMMENT = 109; - public static readonly SHOW_WS = 110; - public static readonly FUNCTIONS = 111; - public static readonly META_LINE_COMMENT = 112; - public static readonly META_MULTILINE_COMMENT = 113; - public static readonly META_WS = 114; - public static readonly COLON = 115; - public static readonly SETTING = 116; - public static readonly SETTING_LINE_COMMENT = 117; - public static readonly SETTTING_MULTILINE_COMMENT = 118; - public static readonly SETTING_WS = 119; - public static readonly METRICS_LINE_COMMENT = 120; - public static readonly METRICS_MULTILINE_COMMENT = 121; - public static readonly METRICS_WS = 122; - public static readonly CLOSING_METRICS_LINE_COMMENT = 123; - public static readonly CLOSING_METRICS_MULTILINE_COMMENT = 124; - public static readonly CLOSING_METRICS_WS = 125; + public static readonly MATCH = 21; + public static readonly UNKNOWN_CMD = 22; + public static readonly LINE_COMMENT = 23; + public static readonly MULTILINE_COMMENT = 24; + public static readonly WS = 25; + public static readonly UNQUOTED_SOURCE = 26; + public static readonly EXPLAIN_WS = 27; + public static readonly EXPLAIN_LINE_COMMENT = 28; + public static readonly EXPLAIN_MULTILINE_COMMENT = 29; + public static readonly PIPE = 30; + public static readonly QUOTED_STRING = 31; + public static readonly INTEGER_LITERAL = 32; + public static readonly DECIMAL_LITERAL = 33; + public static readonly BY = 34; + public static readonly AND = 35; + public static readonly ASC = 36; + public static readonly ASSIGN = 37; + public static readonly CAST_OP = 38; + public static readonly COMMA = 39; + public static readonly DESC = 40; + public static readonly DOT = 41; + public static readonly FALSE = 42; + public static readonly FIRST = 43; + public static readonly IN = 44; + public static readonly IS = 45; + public static readonly LAST = 46; + public static readonly LIKE = 47; + public static readonly LP = 48; + public static readonly MATCH_OPERATOR = 49; + public static readonly NOT = 50; + public static readonly NULL = 51; + public static readonly NULLS = 52; + public static readonly OR = 53; + public static readonly PARAM = 54; + public static readonly RLIKE = 55; + public static readonly RP = 56; + public static readonly TRUE = 57; + public static readonly EQ = 58; + public static readonly CIEQ = 59; + public static readonly NEQ = 60; + public static readonly LT = 61; + public static readonly LTE = 62; + public static readonly GT = 63; + public static readonly GTE = 64; + public static readonly PLUS = 65; + public static readonly MINUS = 66; + public static readonly ASTERISK = 67; + public static readonly SLASH = 68; + public static readonly PERCENT = 69; + public static readonly NAMED_OR_POSITIONAL_PARAM = 70; + public static readonly OPENING_BRACKET = 71; + public static readonly CLOSING_BRACKET = 72; + public static readonly UNQUOTED_IDENTIFIER = 73; + public static readonly QUOTED_IDENTIFIER = 74; + public static readonly EXPR_LINE_COMMENT = 75; + public static readonly EXPR_MULTILINE_COMMENT = 76; + public static readonly EXPR_WS = 77; + public static readonly METADATA = 78; + public static readonly FROM_LINE_COMMENT = 79; + public static readonly FROM_MULTILINE_COMMENT = 80; + public static readonly FROM_WS = 81; + public static readonly ID_PATTERN = 82; + public static readonly PROJECT_LINE_COMMENT = 83; + public static readonly PROJECT_MULTILINE_COMMENT = 84; + public static readonly PROJECT_WS = 85; + public static readonly AS = 86; + public static readonly RENAME_LINE_COMMENT = 87; + public static readonly RENAME_MULTILINE_COMMENT = 88; + public static readonly RENAME_WS = 89; + public static readonly ON = 90; + public static readonly WITH = 91; + public static readonly ENRICH_POLICY_NAME = 92; + public static readonly ENRICH_LINE_COMMENT = 93; + public static readonly ENRICH_MULTILINE_COMMENT = 94; + public static readonly ENRICH_WS = 95; + public static readonly ENRICH_FIELD_LINE_COMMENT = 96; + public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 97; + public static readonly ENRICH_FIELD_WS = 98; + public static readonly LOOKUP_LINE_COMMENT = 99; + public static readonly LOOKUP_MULTILINE_COMMENT = 100; + public static readonly LOOKUP_WS = 101; + public static readonly LOOKUP_FIELD_LINE_COMMENT = 102; + public static readonly LOOKUP_FIELD_MULTILINE_COMMENT = 103; + public static readonly LOOKUP_FIELD_WS = 104; + public static readonly MVEXPAND_LINE_COMMENT = 105; + public static readonly MVEXPAND_MULTILINE_COMMENT = 106; + public static readonly MVEXPAND_WS = 107; + public static readonly INFO = 108; + public static readonly SHOW_LINE_COMMENT = 109; + public static readonly SHOW_MULTILINE_COMMENT = 110; + public static readonly SHOW_WS = 111; + public static readonly FUNCTIONS = 112; + public static readonly META_LINE_COMMENT = 113; + public static readonly META_MULTILINE_COMMENT = 114; + public static readonly META_WS = 115; + public static readonly COLON = 116; + public static readonly SETTING = 117; + public static readonly SETTING_LINE_COMMENT = 118; + public static readonly SETTTING_MULTILINE_COMMENT = 119; + public static readonly SETTING_WS = 120; + public static readonly METRICS_LINE_COMMENT = 121; + public static readonly METRICS_MULTILINE_COMMENT = 122; + public static readonly METRICS_WS = 123; + public static readonly CLOSING_METRICS_LINE_COMMENT = 124; + public static readonly CLOSING_METRICS_MULTILINE_COMMENT = 125; + public static readonly CLOSING_METRICS_WS = 126; public static readonly EOF = Token.EOF; public static readonly EXPLAIN_MODE = 1; public static readonly EXPRESSION_MODE = 2; @@ -172,31 +173,32 @@ export default class esql_lexer extends Lexer { null, null, null, null, null, null, - null, "'|'", null, null, - null, "'by'", - "'and'", "'asc'", - "'='", "'::'", - "','", "'desc'", - "'.'", "'false'", - "'first'", "'in'", - "'is'", "'last'", - "'like'", "'('", - "'match'", "'not'", - "'null'", "'nulls'", - "'or'", "'?'", - "'rlike'", "')'", - "'true'", "'=='", - "'=~'", "'!='", - "'<'", "'<='", - "'>'", "'>='", - "'+'", "'-'", - "'*'", "'/'", - "'%'", null, - null, "']'", + "'|'", null, null, null, + "'by'", "'and'", + "'asc'", "'='", + "'::'", "','", + "'desc'", "'.'", + "'false'", "'first'", + "'in'", "'is'", + "'last'", "'like'", + "'('", null, + "'not'", "'null'", + "'nulls'", "'or'", + "'?'", "'rlike'", + "')'", "'true'", + "'=='", "'=~'", + "'!='", "'<'", + "'<='", "'>'", + "'>='", "'+'", + "'-'", "'*'", + "'/'", "'%'", null, null, - null, "'metadata'", + "']'", null, + null, null, + null, null, + "'metadata'", null, null, null, null, null, null, @@ -228,7 +230,7 @@ export default class esql_lexer extends Lexer { "RENAME", "ROW", "SHOW", "SORT", "STATS", "WHERE", - "UNKNOWN_CMD", + "MATCH", "UNKNOWN_CMD", "LINE_COMMENT", "MULTILINE_COMMENT", "WS", "UNQUOTED_SOURCE", @@ -246,16 +248,16 @@ export default class esql_lexer extends Lexer { "FIRST", "IN", "IS", "LAST", "LIKE", "LP", - "MATCH", "NOT", - "NULL", "NULLS", - "OR", "PARAM", - "RLIKE", "RP", - "TRUE", "EQ", - "CIEQ", "NEQ", - "LT", "LTE", - "GT", "GTE", - "PLUS", "MINUS", - "ASTERISK", + "MATCH_OPERATOR", + "NOT", "NULL", + "NULLS", "OR", + "PARAM", "RLIKE", + "RP", "TRUE", + "EQ", "CIEQ", + "NEQ", "LT", + "LTE", "GT", + "GTE", "PLUS", + "MINUS", "ASTERISK", "SLASH", "PERCENT", "NAMED_OR_POSITIONAL_PARAM", "OPENING_BRACKET", @@ -322,32 +324,32 @@ export default class esql_lexer extends Lexer { public static readonly ruleNames: string[] = [ "DISSECT", "DROP", "ENRICH", "EVAL", "EXPLAIN", "FROM", "GROK", "INLINESTATS", "KEEP", "LIMIT", "LOOKUP", "META", "METRICS", "MV_EXPAND", "RENAME", "ROW", - "SHOW", "SORT", "STATS", "WHERE", "UNKNOWN_CMD", "LINE_COMMENT", "MULTILINE_COMMENT", - "WS", "UNQUOTED_SOURCE_PART", "UNQUOTED_SOURCE", "EXPLAIN_OPENING_BRACKET", - "EXPLAIN_PIPE", "EXPLAIN_WS", "EXPLAIN_LINE_COMMENT", "EXPLAIN_MULTILINE_COMMENT", - "PIPE", "DIGIT", "LETTER", "ESCAPE_SEQUENCE", "UNESCAPED_CHARS", "EXPONENT", - "ASPERAND", "BACKQUOTE", "BACKQUOTE_BLOCK", "UNDERSCORE", "UNQUOTED_ID_BODY", - "QUOTED_STRING", "INTEGER_LITERAL", "DECIMAL_LITERAL", "BY", "AND", "ASC", - "ASSIGN", "CAST_OP", "COMMA", "DESC", "DOT", "FALSE", "FIRST", "IN", "IS", - "LAST", "LIKE", "LP", "MATCH", "NOT", "NULL", "NULLS", "OR", "PARAM", - "RLIKE", "RP", "TRUE", "EQ", "CIEQ", "NEQ", "LT", "LTE", "GT", "GTE", - "PLUS", "MINUS", "ASTERISK", "SLASH", "PERCENT", "NAMED_OR_POSITIONAL_PARAM", - "OPENING_BRACKET", "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_COLON", - "FROM_COMMA", "FROM_ASSIGN", "METADATA", "FROM_UNQUOTED_SOURCE", "FROM_QUOTED_SOURCE", - "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_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", - "LOOKUP_PIPE", "LOOKUP_COLON", "LOOKUP_COMMA", "LOOKUP_DOT", "LOOKUP_ON", - "LOOKUP_UNQUOTED_SOURCE", "LOOKUP_QUOTED_SOURCE", "LOOKUP_LINE_COMMENT", + "SHOW", "SORT", "STATS", "WHERE", "MATCH", "UNKNOWN_CMD", "LINE_COMMENT", + "MULTILINE_COMMENT", "WS", "UNQUOTED_SOURCE_PART", "UNQUOTED_SOURCE", + "EXPLAIN_OPENING_BRACKET", "EXPLAIN_PIPE", "EXPLAIN_WS", "EXPLAIN_LINE_COMMENT", + "EXPLAIN_MULTILINE_COMMENT", "PIPE", "DIGIT", "LETTER", "ESCAPE_SEQUENCE", + "UNESCAPED_CHARS", "EXPONENT", "ASPERAND", "BACKQUOTE", "BACKQUOTE_BLOCK", + "UNDERSCORE", "UNQUOTED_ID_BODY", "QUOTED_STRING", "INTEGER_LITERAL", + "DECIMAL_LITERAL", "BY", "AND", "ASC", "ASSIGN", "CAST_OP", "COMMA", "DESC", + "DOT", "FALSE", "FIRST", "IN", "IS", "LAST", "LIKE", "LP", "MATCH_OPERATOR", + "NOT", "NULL", "NULLS", "OR", "PARAM", "RLIKE", "RP", "TRUE", "EQ", "CIEQ", + "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK", "SLASH", + "PERCENT", "NAMED_OR_POSITIONAL_PARAM", "OPENING_BRACKET", "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_COLON", "FROM_COMMA", "FROM_ASSIGN", "METADATA", + "FROM_UNQUOTED_SOURCE", "FROM_QUOTED_SOURCE", "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_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", "LOOKUP_PIPE", "LOOKUP_COLON", "LOOKUP_COMMA", "LOOKUP_DOT", + "LOOKUP_ON", "LOOKUP_UNQUOTED_SOURCE", "LOOKUP_QUOTED_SOURCE", "LOOKUP_LINE_COMMENT", "LOOKUP_MULTILINE_COMMENT", "LOOKUP_WS", "LOOKUP_FIELD_PIPE", "LOOKUP_FIELD_COMMA", "LOOKUP_FIELD_DOT", "LOOKUP_FIELD_ID_PATTERN", "LOOKUP_FIELD_LINE_COMMENT", "LOOKUP_FIELD_MULTILINE_COMMENT", "LOOKUP_FIELD_WS", "MVEXPAND_PIPE", @@ -381,7 +383,7 @@ export default class esql_lexer extends Lexer { public get modeNames(): string[] { return esql_lexer.modeNames; } - public static readonly _serializedATN: number[] = [4,0,125,1458,6,-1,6, + public static readonly _serializedATN: number[] = [4,0,126,1468,6,-1,6, -1,6,-1,6,-1,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, @@ -412,125 +414,126 @@ export default class esql_lexer extends Lexer { 2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180, 2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186, 2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192, - 2,193,7,193,2,194,7,194,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,10,1,10,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,12,1,13,1, - 13,1,13,1,13,1,13,1,13,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,14,1,14,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,17,1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18, - 1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,4,20,577, - 8,20,11,20,12,20,578,1,20,1,20,1,21,1,21,1,21,1,21,5,21,587,8,21,10,21, - 12,21,590,9,21,1,21,3,21,593,8,21,1,21,3,21,596,8,21,1,21,1,21,1,22,1,22, - 1,22,1,22,1,22,5,22,605,8,22,10,22,12,22,608,9,22,1,22,1,22,1,22,1,22,1, - 22,1,23,4,23,616,8,23,11,23,12,23,617,1,23,1,23,1,24,1,24,1,24,3,24,625, - 8,24,1,25,4,25,628,8,25,11,25,12,25,629,1,26,1,26,1,26,1,26,1,26,1,27,1, - 27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,30,1,30,1,30, - 1,30,1,31,1,31,1,31,1,31,1,32,1,32,1,33,1,33,1,34,1,34,1,34,1,35,1,35,1, - 36,1,36,3,36,669,8,36,1,36,4,36,672,8,36,11,36,12,36,673,1,37,1,37,1,38, - 1,38,1,39,1,39,1,39,3,39,683,8,39,1,40,1,40,1,41,1,41,1,41,3,41,690,8,41, - 1,42,1,42,1,42,5,42,695,8,42,10,42,12,42,698,9,42,1,42,1,42,1,42,1,42,1, - 42,1,42,5,42,706,8,42,10,42,12,42,709,9,42,1,42,1,42,1,42,1,42,1,42,3,42, - 716,8,42,1,42,3,42,719,8,42,3,42,721,8,42,1,43,4,43,724,8,43,11,43,12,43, - 725,1,44,4,44,729,8,44,11,44,12,44,730,1,44,1,44,5,44,735,8,44,10,44,12, - 44,738,9,44,1,44,1,44,4,44,742,8,44,11,44,12,44,743,1,44,4,44,747,8,44, - 11,44,12,44,748,1,44,1,44,5,44,753,8,44,10,44,12,44,756,9,44,3,44,758,8, - 44,1,44,1,44,1,44,1,44,4,44,764,8,44,11,44,12,44,765,1,44,1,44,3,44,770, - 8,44,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,48,1,48,1, - 49,1,49,1,49,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,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,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,59,1,59,1,60,1,60, - 1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,63,1, - 63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,65,1,65,1,66,1,66,1,66,1,66,1,66, - 1,66,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,70,1,70,1,70,1, - 71,1,71,1,71,1,72,1,72,1,73,1,73,1,73,1,74,1,74,1,75,1,75,1,75,1,76,1,76, - 1,77,1,77,1,78,1,78,1,79,1,79,1,80,1,80,1,81,1,81,1,81,5,81,898,8,81,10, - 81,12,81,901,9,81,1,81,1,81,4,81,905,8,81,11,81,12,81,906,3,81,909,8,81, - 1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,84,1,84,5,84,923,8, - 84,10,84,12,84,926,9,84,1,84,1,84,3,84,930,8,84,1,84,4,84,933,8,84,11,84, - 12,84,934,3,84,937,8,84,1,85,1,85,4,85,941,8,85,11,85,12,85,942,1,85,1, - 85,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,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,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,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,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,102,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,3,105,1032,8,105,1,106,1,106,3,106,1036,8,106,1,106,5, - 106,1039,8,106,10,106,12,106,1042,9,106,1,106,1,106,3,106,1046,8,106,1, - 106,4,106,1049,8,106,11,106,12,106,1050,3,106,1053,8,106,1,107,1,107,4, - 107,1057,8,107,11,107,12,107,1058,1,108,1,108,1,108,1,108,1,109,1,109,1, - 109,1,109,1,110,1,110,1,110,1,110,1,111,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,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,118,1,118,1, - 118,1,118,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,121,1, - 121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1, - 123,1,123,1,123,1,123,1,124,1,124,1,125,4,125,1134,8,125,11,125,12,125, - 1135,1,125,1,125,3,125,1140,8,125,1,125,4,125,1143,8,125,11,125,12,125, - 1144,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,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,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,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,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,149,1,149,1,149,1,149,1,150,1,150,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,154, - 1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,157, - 1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159, - 1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162, - 1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165, - 1,165,1,165,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,168,1,168, - 1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170, - 1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,172,1,172,1,172, - 1,172,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,175,1,175, - 1,176,1,176,1,176,1,176,1,176,4,176,1367,8,176,11,176,12,176,1368,1,177, - 1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179,1,180, - 1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,181,1,181,1,181,1,182,1,182, - 1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,184, - 1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187, - 1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,189,1,189,1,189,1,189, - 1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,192,1,192, - 1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,193,1,194,1,194, - 1,194,1,194,1,194,2,606,707,0,195,16,1,18,2,20,3,22,4,24,5,26,6,28,7,30, - 8,32,9,34,10,36,11,38,12,40,13,42,14,44,15,46,16,48,17,50,18,52,19,54,20, - 56,21,58,22,60,23,62,24,64,0,66,25,68,0,70,0,72,26,74,27,76,28,78,29,80, - 0,82,0,84,0,86,0,88,0,90,0,92,0,94,0,96,0,98,0,100,30,102,31,104,32,106, - 33,108,34,110,35,112,36,114,37,116,38,118,39,120,40,122,41,124,42,126,43, - 128,44,130,45,132,46,134,47,136,48,138,49,140,50,142,51,144,52,146,53,148, - 54,150,55,152,56,154,57,156,58,158,59,160,60,162,61,164,62,166,63,168,64, - 170,65,172,66,174,67,176,68,178,69,180,70,182,71,184,72,186,0,188,73,190, - 74,192,75,194,76,196,0,198,0,200,0,202,0,204,0,206,0,208,77,210,0,212,0, - 214,78,216,79,218,80,220,0,222,0,224,0,226,0,228,0,230,81,232,82,234,83, - 236,84,238,0,240,0,242,0,244,0,246,85,248,0,250,86,252,87,254,88,256,0, - 258,0,260,89,262,90,264,0,266,91,268,0,270,92,272,93,274,94,276,0,278,0, - 280,0,282,0,284,0,286,0,288,0,290,95,292,96,294,97,296,0,298,0,300,0,302, - 0,304,0,306,0,308,0,310,98,312,99,314,100,316,0,318,0,320,0,322,0,324,101, - 326,102,328,103,330,0,332,0,334,0,336,0,338,104,340,105,342,106,344,0,346, - 107,348,108,350,109,352,110,354,0,356,111,358,112,360,113,362,114,364,0, - 366,115,368,116,370,117,372,118,374,119,376,0,378,0,380,0,382,120,384,121, - 386,122,388,0,390,0,392,123,394,124,396,125,398,0,400,0,402,0,404,0,16, - 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,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,85,85,117,117,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,11,0,9,10,13,13, - 32,32,34,34,44,44,47,47,58,58,61,61,91,91,93,93,124,124,2,0,42,42,47,47, - 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, + 2,193,7,193,2,194,7,194,2,195,7,195,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,10,1,10,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,12,1,13,1,13,1,13,1,13,1,13,1,13,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,14,1,14,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,17,1,17,1,17,1,17,1,17,1,17,1,17,1,18,1, + 18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19, + 1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,4,21,587,8,21,11,21,12,21, + 588,1,21,1,21,1,22,1,22,1,22,1,22,5,22,597,8,22,10,22,12,22,600,9,22,1, + 22,3,22,603,8,22,1,22,3,22,606,8,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23, + 5,23,615,8,23,10,23,12,23,618,9,23,1,23,1,23,1,23,1,23,1,23,1,24,4,24,626, + 8,24,11,24,12,24,627,1,24,1,24,1,25,1,25,1,25,3,25,635,8,25,1,26,4,26,638, + 8,26,11,26,12,26,639,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28, + 1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,32,1,32,1, + 32,1,32,1,33,1,33,1,34,1,34,1,35,1,35,1,35,1,36,1,36,1,37,1,37,3,37,679, + 8,37,1,37,4,37,682,8,37,11,37,12,37,683,1,38,1,38,1,39,1,39,1,40,1,40,1, + 40,3,40,693,8,40,1,41,1,41,1,42,1,42,1,42,3,42,700,8,42,1,43,1,43,1,43, + 5,43,705,8,43,10,43,12,43,708,9,43,1,43,1,43,1,43,1,43,1,43,1,43,5,43,716, + 8,43,10,43,12,43,719,9,43,1,43,1,43,1,43,1,43,1,43,3,43,726,8,43,1,43,3, + 43,729,8,43,3,43,731,8,43,1,44,4,44,734,8,44,11,44,12,44,735,1,45,4,45, + 739,8,45,11,45,12,45,740,1,45,1,45,5,45,745,8,45,10,45,12,45,748,9,45,1, + 45,1,45,4,45,752,8,45,11,45,12,45,753,1,45,4,45,757,8,45,11,45,12,45,758, + 1,45,1,45,5,45,763,8,45,10,45,12,45,766,9,45,3,45,768,8,45,1,45,1,45,1, + 45,1,45,4,45,774,8,45,11,45,12,45,775,1,45,1,45,3,45,780,8,45,1,46,1,46, + 1,46,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,49,1,49,1,50,1,50,1,50,1, + 51,1,51,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54, + 1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,57,1,57,1,57,1,58,1,58,1, + 58,1,58,1,58,1,59,1,59,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,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1, + 64,1,64,1,65,1,65,1,65,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68, + 1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,71,1,71,1,71,1,72,1,72,1,72,1, + 73,1,73,1,74,1,74,1,74,1,75,1,75,1,76,1,76,1,76,1,77,1,77,1,78,1,78,1,79, + 1,79,1,80,1,80,1,81,1,81,1,82,1,82,1,82,5,82,908,8,82,10,82,12,82,911,9, + 82,1,82,1,82,4,82,915,8,82,11,82,12,82,916,3,82,919,8,82,1,83,1,83,1,83, + 1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,85,1,85,5,85,933,8,85,10,85,12,85, + 936,9,85,1,85,1,85,3,85,940,8,85,1,85,4,85,943,8,85,11,85,12,85,944,3,85, + 947,8,85,1,86,1,86,4,86,951,8,86,11,86,12,86,952,1,86,1,86,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,91,1,91,1,91, + 1,91,1,91,1,92,1,92,1,92,1,92,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,97,1,97,1,97,1,97,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, + 1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,103,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,3,106,1042,8,106,1,107,1,107,3,107,1046,8,107,1,107,5,107,1049,8, + 107,10,107,12,107,1052,9,107,1,107,1,107,3,107,1056,8,107,1,107,4,107,1059, + 8,107,11,107,12,107,1060,3,107,1063,8,107,1,108,1,108,4,108,1067,8,108, + 11,108,12,108,1068,1,109,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,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,116,1,116,1,116,1,117, + 1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,120, + 1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122, + 1,122,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124, + 1,124,1,125,1,125,1,126,4,126,1144,8,126,11,126,12,126,1145,1,126,1,126, + 3,126,1150,8,126,1,126,4,126,1153,8,126,11,126,12,126,1154,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,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,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,141,1,142,1,142,1,142,1,142,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,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,149,1,149,1,149,1,149,1,150,1,150, + 1,150,1,150,1,151,1,151,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,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155, + 1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158, + 1,158,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,161,1,161,1,161, + 1,161,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,164,1,164,1,164, + 1,164,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,167, + 1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,170, + 1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171, + 1,171,1,171,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,174,1,174, + 1,174,1,174,1,175,1,175,1,175,1,175,1,175,1,176,1,176,1,177,1,177,1,177, + 1,177,1,177,4,177,1377,8,177,11,177,12,177,1378,1,178,1,178,1,178,1,178, + 1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,181, + 1,181,1,182,1,182,1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,183, + 1,183,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,186,1,186,1,186, + 1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188, + 1,188,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,191,1,191,1,191, + 1,191,1,192,1,192,1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,193, + 1,193,1,194,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195, + 2,616,717,0,196,16,1,18,2,20,3,22,4,24,5,26,6,28,7,30,8,32,9,34,10,36,11, + 38,12,40,13,42,14,44,15,46,16,48,17,50,18,52,19,54,20,56,21,58,22,60,23, + 62,24,64,25,66,0,68,26,70,0,72,0,74,27,76,28,78,29,80,30,82,0,84,0,86,0, + 88,0,90,0,92,0,94,0,96,0,98,0,100,0,102,31,104,32,106,33,108,34,110,35, + 112,36,114,37,116,38,118,39,120,40,122,41,124,42,126,43,128,44,130,45,132, + 46,134,47,136,48,138,49,140,50,142,51,144,52,146,53,148,54,150,55,152,56, + 154,57,156,58,158,59,160,60,162,61,164,62,166,63,168,64,170,65,172,66,174, + 67,176,68,178,69,180,70,182,71,184,72,186,73,188,0,190,74,192,75,194,76, + 196,77,198,0,200,0,202,0,204,0,206,0,208,0,210,78,212,0,214,0,216,79,218, + 80,220,81,222,0,224,0,226,0,228,0,230,0,232,82,234,83,236,84,238,85,240, + 0,242,0,244,0,246,0,248,86,250,0,252,87,254,88,256,89,258,0,260,0,262,90, + 264,91,266,0,268,92,270,0,272,93,274,94,276,95,278,0,280,0,282,0,284,0, + 286,0,288,0,290,0,292,96,294,97,296,98,298,0,300,0,302,0,304,0,306,0,308, + 0,310,0,312,99,314,100,316,101,318,0,320,0,322,0,324,0,326,102,328,103, + 330,104,332,0,334,0,336,0,338,0,340,105,342,106,344,107,346,0,348,108,350, + 109,352,110,354,111,356,0,358,112,360,113,362,114,364,115,366,0,368,116, + 370,117,372,118,374,119,376,120,378,0,380,0,382,0,384,121,386,122,388,123, + 390,0,392,0,394,124,396,125,398,126,400,0,402,0,404,0,406,0,16,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13,14,15,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,85,85,117,117,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,11,0,9,10,13,13,32, + 32,34,34,44,44,47,47,58,58,61,61,91,91,93,93,124,124,2,0,42,42,47,47,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,11,0,9,10,13,13,32,32,34,35,44,44,47,47,58,58, - 60,60,62,63,92,92,124,124,1484,0,16,1,0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0, + 60,60,62,63,92,92,124,124,1494,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,0,56,1,0,0,0,0,58,1,0,0,0,0,60,1,0,0,0,0,62,1,0,0,0,0,66,1,0,0,0,1, - 68,1,0,0,0,1,70,1,0,0,0,1,72,1,0,0,0,1,74,1,0,0,0,1,76,1,0,0,0,2,78,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,0,0,56,1,0,0,0,0,58,1,0,0,0,0,60,1,0,0,0,0,62,1,0,0,0,0,64,1,0,0,0,0, + 68,1,0,0,0,1,70,1,0,0,0,1,72,1,0,0,0,1,74,1,0,0,0,1,76,1,0,0,0,1,78,1,0, + 0,0,2,80,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, @@ -538,350 +541,352 @@ export default class esql_lexer extends Lexer { 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,170,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,2,180,1,0,0,0, - 2,182,1,0,0,0,2,184,1,0,0,0,2,188,1,0,0,0,2,190,1,0,0,0,2,192,1,0,0,0,2, - 194,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,3,204, + 2,182,1,0,0,0,2,184,1,0,0,0,2,186,1,0,0,0,2,190,1,0,0,0,2,192,1,0,0,0,2, + 194,1,0,0,0,2,196,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,3,206,1,0,0,0,3,208,1,0,0,0,3,210,1,0,0,0,3,212,1,0,0,0,3,214,1, - 0,0,0,3,216,1,0,0,0,3,218,1,0,0,0,4,220,1,0,0,0,4,222,1,0,0,0,4,224,1,0, - 0,0,4,230,1,0,0,0,4,232,1,0,0,0,4,234,1,0,0,0,4,236,1,0,0,0,5,238,1,0,0, + 0,0,0,3,216,1,0,0,0,3,218,1,0,0,0,3,220,1,0,0,0,4,222,1,0,0,0,4,224,1,0, + 0,0,4,226,1,0,0,0,4,232,1,0,0,0,4,234,1,0,0,0,4,236,1,0,0,0,4,238,1,0,0, 0,5,240,1,0,0,0,5,242,1,0,0,0,5,244,1,0,0,0,5,246,1,0,0,0,5,248,1,0,0,0, - 5,250,1,0,0,0,5,252,1,0,0,0,5,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,6,266,1,0,0,0,6,268,1,0,0,0,6,270,1,0,0,0,6,272, - 1,0,0,0,6,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, + 5,250,1,0,0,0,5,252,1,0,0,0,5,254,1,0,0,0,5,256,1,0,0,0,6,258,1,0,0,0,6, + 260,1,0,0,0,6,262,1,0,0,0,6,264,1,0,0,0,6,268,1,0,0,0,6,270,1,0,0,0,6,272, + 1,0,0,0,6,274,1,0,0,0,6,276,1,0,0,0,7,278,1,0,0,0,7,280,1,0,0,0,7,282,1, 0,0,0,7,284,1,0,0,0,7,286,1,0,0,0,7,288,1,0,0,0,7,290,1,0,0,0,7,292,1,0, - 0,0,7,294,1,0,0,0,8,296,1,0,0,0,8,298,1,0,0,0,8,300,1,0,0,0,8,302,1,0,0, + 0,0,7,294,1,0,0,0,7,296,1,0,0,0,8,298,1,0,0,0,8,300,1,0,0,0,8,302,1,0,0, 0,8,304,1,0,0,0,8,306,1,0,0,0,8,308,1,0,0,0,8,310,1,0,0,0,8,312,1,0,0,0, - 8,314,1,0,0,0,9,316,1,0,0,0,9,318,1,0,0,0,9,320,1,0,0,0,9,322,1,0,0,0,9, - 324,1,0,0,0,9,326,1,0,0,0,9,328,1,0,0,0,10,330,1,0,0,0,10,332,1,0,0,0,10, + 8,314,1,0,0,0,8,316,1,0,0,0,9,318,1,0,0,0,9,320,1,0,0,0,9,322,1,0,0,0,9, + 324,1,0,0,0,9,326,1,0,0,0,9,328,1,0,0,0,9,330,1,0,0,0,10,332,1,0,0,0,10, 334,1,0,0,0,10,336,1,0,0,0,10,338,1,0,0,0,10,340,1,0,0,0,10,342,1,0,0,0, - 11,344,1,0,0,0,11,346,1,0,0,0,11,348,1,0,0,0,11,350,1,0,0,0,11,352,1,0, - 0,0,12,354,1,0,0,0,12,356,1,0,0,0,12,358,1,0,0,0,12,360,1,0,0,0,12,362, - 1,0,0,0,13,364,1,0,0,0,13,366,1,0,0,0,13,368,1,0,0,0,13,370,1,0,0,0,13, - 372,1,0,0,0,13,374,1,0,0,0,14,376,1,0,0,0,14,378,1,0,0,0,14,380,1,0,0,0, - 14,382,1,0,0,0,14,384,1,0,0,0,14,386,1,0,0,0,15,388,1,0,0,0,15,390,1,0, + 10,344,1,0,0,0,11,346,1,0,0,0,11,348,1,0,0,0,11,350,1,0,0,0,11,352,1,0, + 0,0,11,354,1,0,0,0,12,356,1,0,0,0,12,358,1,0,0,0,12,360,1,0,0,0,12,362, + 1,0,0,0,12,364,1,0,0,0,13,366,1,0,0,0,13,368,1,0,0,0,13,370,1,0,0,0,13, + 372,1,0,0,0,13,374,1,0,0,0,13,376,1,0,0,0,14,378,1,0,0,0,14,380,1,0,0,0, + 14,382,1,0,0,0,14,384,1,0,0,0,14,386,1,0,0,0,14,388,1,0,0,0,15,390,1,0, 0,0,15,392,1,0,0,0,15,394,1,0,0,0,15,396,1,0,0,0,15,398,1,0,0,0,15,400, - 1,0,0,0,15,402,1,0,0,0,15,404,1,0,0,0,16,406,1,0,0,0,18,416,1,0,0,0,20, - 423,1,0,0,0,22,432,1,0,0,0,24,439,1,0,0,0,26,449,1,0,0,0,28,456,1,0,0,0, - 30,463,1,0,0,0,32,477,1,0,0,0,34,484,1,0,0,0,36,492,1,0,0,0,38,501,1,0, - 0,0,40,508,1,0,0,0,42,518,1,0,0,0,44,530,1,0,0,0,46,539,1,0,0,0,48,545, - 1,0,0,0,50,552,1,0,0,0,52,559,1,0,0,0,54,567,1,0,0,0,56,576,1,0,0,0,58, - 582,1,0,0,0,60,599,1,0,0,0,62,615,1,0,0,0,64,624,1,0,0,0,66,627,1,0,0,0, - 68,631,1,0,0,0,70,636,1,0,0,0,72,641,1,0,0,0,74,645,1,0,0,0,76,649,1,0, - 0,0,78,653,1,0,0,0,80,657,1,0,0,0,82,659,1,0,0,0,84,661,1,0,0,0,86,664, - 1,0,0,0,88,666,1,0,0,0,90,675,1,0,0,0,92,677,1,0,0,0,94,682,1,0,0,0,96, - 684,1,0,0,0,98,689,1,0,0,0,100,720,1,0,0,0,102,723,1,0,0,0,104,769,1,0, - 0,0,106,771,1,0,0,0,108,774,1,0,0,0,110,778,1,0,0,0,112,782,1,0,0,0,114, - 784,1,0,0,0,116,787,1,0,0,0,118,789,1,0,0,0,120,794,1,0,0,0,122,796,1,0, - 0,0,124,802,1,0,0,0,126,808,1,0,0,0,128,811,1,0,0,0,130,814,1,0,0,0,132, - 819,1,0,0,0,134,824,1,0,0,0,136,826,1,0,0,0,138,832,1,0,0,0,140,836,1,0, - 0,0,142,841,1,0,0,0,144,847,1,0,0,0,146,850,1,0,0,0,148,852,1,0,0,0,150, - 858,1,0,0,0,152,860,1,0,0,0,154,865,1,0,0,0,156,868,1,0,0,0,158,871,1,0, - 0,0,160,874,1,0,0,0,162,876,1,0,0,0,164,879,1,0,0,0,166,881,1,0,0,0,168, - 884,1,0,0,0,170,886,1,0,0,0,172,888,1,0,0,0,174,890,1,0,0,0,176,892,1,0, - 0,0,178,908,1,0,0,0,180,910,1,0,0,0,182,915,1,0,0,0,184,936,1,0,0,0,186, - 938,1,0,0,0,188,946,1,0,0,0,190,948,1,0,0,0,192,952,1,0,0,0,194,956,1,0, - 0,0,196,960,1,0,0,0,198,965,1,0,0,0,200,969,1,0,0,0,202,973,1,0,0,0,204, - 977,1,0,0,0,206,981,1,0,0,0,208,985,1,0,0,0,210,994,1,0,0,0,212,998,1,0, - 0,0,214,1002,1,0,0,0,216,1006,1,0,0,0,218,1010,1,0,0,0,220,1014,1,0,0,0, - 222,1019,1,0,0,0,224,1023,1,0,0,0,226,1031,1,0,0,0,228,1052,1,0,0,0,230, - 1056,1,0,0,0,232,1060,1,0,0,0,234,1064,1,0,0,0,236,1068,1,0,0,0,238,1072, - 1,0,0,0,240,1077,1,0,0,0,242,1081,1,0,0,0,244,1085,1,0,0,0,246,1089,1,0, - 0,0,248,1092,1,0,0,0,250,1096,1,0,0,0,252,1100,1,0,0,0,254,1104,1,0,0,0, - 256,1108,1,0,0,0,258,1113,1,0,0,0,260,1118,1,0,0,0,262,1123,1,0,0,0,264, - 1130,1,0,0,0,266,1139,1,0,0,0,268,1146,1,0,0,0,270,1150,1,0,0,0,272,1154, - 1,0,0,0,274,1158,1,0,0,0,276,1162,1,0,0,0,278,1168,1,0,0,0,280,1172,1,0, - 0,0,282,1176,1,0,0,0,284,1180,1,0,0,0,286,1184,1,0,0,0,288,1188,1,0,0,0, - 290,1192,1,0,0,0,292,1196,1,0,0,0,294,1200,1,0,0,0,296,1204,1,0,0,0,298, - 1209,1,0,0,0,300,1213,1,0,0,0,302,1217,1,0,0,0,304,1221,1,0,0,0,306,1226, - 1,0,0,0,308,1230,1,0,0,0,310,1234,1,0,0,0,312,1238,1,0,0,0,314,1242,1,0, - 0,0,316,1246,1,0,0,0,318,1252,1,0,0,0,320,1256,1,0,0,0,322,1260,1,0,0,0, - 324,1264,1,0,0,0,326,1268,1,0,0,0,328,1272,1,0,0,0,330,1276,1,0,0,0,332, - 1281,1,0,0,0,334,1285,1,0,0,0,336,1289,1,0,0,0,338,1293,1,0,0,0,340,1297, - 1,0,0,0,342,1301,1,0,0,0,344,1305,1,0,0,0,346,1310,1,0,0,0,348,1315,1,0, - 0,0,350,1319,1,0,0,0,352,1323,1,0,0,0,354,1327,1,0,0,0,356,1332,1,0,0,0, - 358,1342,1,0,0,0,360,1346,1,0,0,0,362,1350,1,0,0,0,364,1354,1,0,0,0,366, - 1359,1,0,0,0,368,1366,1,0,0,0,370,1370,1,0,0,0,372,1374,1,0,0,0,374,1378, - 1,0,0,0,376,1382,1,0,0,0,378,1387,1,0,0,0,380,1393,1,0,0,0,382,1399,1,0, - 0,0,384,1403,1,0,0,0,386,1407,1,0,0,0,388,1411,1,0,0,0,390,1417,1,0,0,0, - 392,1423,1,0,0,0,394,1427,1,0,0,0,396,1431,1,0,0,0,398,1435,1,0,0,0,400, - 1441,1,0,0,0,402,1447,1,0,0,0,404,1453,1,0,0,0,406,407,7,0,0,0,407,408, - 7,1,0,0,408,409,7,2,0,0,409,410,7,2,0,0,410,411,7,3,0,0,411,412,7,4,0,0, - 412,413,7,5,0,0,413,414,1,0,0,0,414,415,6,0,0,0,415,17,1,0,0,0,416,417, - 7,0,0,0,417,418,7,6,0,0,418,419,7,7,0,0,419,420,7,8,0,0,420,421,1,0,0,0, - 421,422,6,1,1,0,422,19,1,0,0,0,423,424,7,3,0,0,424,425,7,9,0,0,425,426, - 7,6,0,0,426,427,7,1,0,0,427,428,7,4,0,0,428,429,7,10,0,0,429,430,1,0,0, - 0,430,431,6,2,2,0,431,21,1,0,0,0,432,433,7,3,0,0,433,434,7,11,0,0,434,435, - 7,12,0,0,435,436,7,13,0,0,436,437,1,0,0,0,437,438,6,3,0,0,438,23,1,0,0, - 0,439,440,7,3,0,0,440,441,7,14,0,0,441,442,7,8,0,0,442,443,7,13,0,0,443, - 444,7,12,0,0,444,445,7,1,0,0,445,446,7,9,0,0,446,447,1,0,0,0,447,448,6, - 4,3,0,448,25,1,0,0,0,449,450,7,15,0,0,450,451,7,6,0,0,451,452,7,7,0,0,452, - 453,7,16,0,0,453,454,1,0,0,0,454,455,6,5,4,0,455,27,1,0,0,0,456,457,7,17, - 0,0,457,458,7,6,0,0,458,459,7,7,0,0,459,460,7,18,0,0,460,461,1,0,0,0,461, - 462,6,6,0,0,462,29,1,0,0,0,463,464,7,1,0,0,464,465,7,9,0,0,465,466,7,13, - 0,0,466,467,7,1,0,0,467,468,7,9,0,0,468,469,7,3,0,0,469,470,7,2,0,0,470, - 471,7,5,0,0,471,472,7,12,0,0,472,473,7,5,0,0,473,474,7,2,0,0,474,475,1, - 0,0,0,475,476,6,7,0,0,476,31,1,0,0,0,477,478,7,18,0,0,478,479,7,3,0,0,479, - 480,7,3,0,0,480,481,7,8,0,0,481,482,1,0,0,0,482,483,6,8,1,0,483,33,1,0, - 0,0,484,485,7,13,0,0,485,486,7,1,0,0,486,487,7,16,0,0,487,488,7,1,0,0,488, - 489,7,5,0,0,489,490,1,0,0,0,490,491,6,9,0,0,491,35,1,0,0,0,492,493,7,13, - 0,0,493,494,7,7,0,0,494,495,7,7,0,0,495,496,7,18,0,0,496,497,7,19,0,0,497, - 498,7,8,0,0,498,499,1,0,0,0,499,500,6,10,5,0,500,37,1,0,0,0,501,502,7,16, - 0,0,502,503,7,3,0,0,503,504,7,5,0,0,504,505,7,12,0,0,505,506,1,0,0,0,506, - 507,6,11,6,0,507,39,1,0,0,0,508,509,7,16,0,0,509,510,7,3,0,0,510,511,7, - 5,0,0,511,512,7,6,0,0,512,513,7,1,0,0,513,514,7,4,0,0,514,515,7,2,0,0,515, - 516,1,0,0,0,516,517,6,12,7,0,517,41,1,0,0,0,518,519,7,16,0,0,519,520,7, - 11,0,0,520,521,5,95,0,0,521,522,7,3,0,0,522,523,7,14,0,0,523,524,7,8,0, - 0,524,525,7,12,0,0,525,526,7,9,0,0,526,527,7,0,0,0,527,528,1,0,0,0,528, - 529,6,13,8,0,529,43,1,0,0,0,530,531,7,6,0,0,531,532,7,3,0,0,532,533,7,9, - 0,0,533,534,7,12,0,0,534,535,7,16,0,0,535,536,7,3,0,0,536,537,1,0,0,0,537, - 538,6,14,9,0,538,45,1,0,0,0,539,540,7,6,0,0,540,541,7,7,0,0,541,542,7,20, - 0,0,542,543,1,0,0,0,543,544,6,15,0,0,544,47,1,0,0,0,545,546,7,2,0,0,546, - 547,7,10,0,0,547,548,7,7,0,0,548,549,7,20,0,0,549,550,1,0,0,0,550,551,6, - 16,10,0,551,49,1,0,0,0,552,553,7,2,0,0,553,554,7,7,0,0,554,555,7,6,0,0, - 555,556,7,5,0,0,556,557,1,0,0,0,557,558,6,17,0,0,558,51,1,0,0,0,559,560, - 7,2,0,0,560,561,7,5,0,0,561,562,7,12,0,0,562,563,7,5,0,0,563,564,7,2,0, - 0,564,565,1,0,0,0,565,566,6,18,0,0,566,53,1,0,0,0,567,568,7,20,0,0,568, - 569,7,10,0,0,569,570,7,3,0,0,570,571,7,6,0,0,571,572,7,3,0,0,572,573,1, - 0,0,0,573,574,6,19,0,0,574,55,1,0,0,0,575,577,8,21,0,0,576,575,1,0,0,0, - 577,578,1,0,0,0,578,576,1,0,0,0,578,579,1,0,0,0,579,580,1,0,0,0,580,581, - 6,20,0,0,581,57,1,0,0,0,582,583,5,47,0,0,583,584,5,47,0,0,584,588,1,0,0, - 0,585,587,8,22,0,0,586,585,1,0,0,0,587,590,1,0,0,0,588,586,1,0,0,0,588, - 589,1,0,0,0,589,592,1,0,0,0,590,588,1,0,0,0,591,593,5,13,0,0,592,591,1, - 0,0,0,592,593,1,0,0,0,593,595,1,0,0,0,594,596,5,10,0,0,595,594,1,0,0,0, - 595,596,1,0,0,0,596,597,1,0,0,0,597,598,6,21,11,0,598,59,1,0,0,0,599,600, - 5,47,0,0,600,601,5,42,0,0,601,606,1,0,0,0,602,605,3,60,22,0,603,605,9,0, - 0,0,604,602,1,0,0,0,604,603,1,0,0,0,605,608,1,0,0,0,606,607,1,0,0,0,606, - 604,1,0,0,0,607,609,1,0,0,0,608,606,1,0,0,0,609,610,5,42,0,0,610,611,5, - 47,0,0,611,612,1,0,0,0,612,613,6,22,11,0,613,61,1,0,0,0,614,616,7,23,0, - 0,615,614,1,0,0,0,616,617,1,0,0,0,617,615,1,0,0,0,617,618,1,0,0,0,618,619, - 1,0,0,0,619,620,6,23,11,0,620,63,1,0,0,0,621,625,8,24,0,0,622,623,5,47, - 0,0,623,625,8,25,0,0,624,621,1,0,0,0,624,622,1,0,0,0,625,65,1,0,0,0,626, - 628,3,64,24,0,627,626,1,0,0,0,628,629,1,0,0,0,629,627,1,0,0,0,629,630,1, - 0,0,0,630,67,1,0,0,0,631,632,3,180,82,0,632,633,1,0,0,0,633,634,6,26,12, - 0,634,635,6,26,13,0,635,69,1,0,0,0,636,637,3,78,31,0,637,638,1,0,0,0,638, - 639,6,27,14,0,639,640,6,27,15,0,640,71,1,0,0,0,641,642,3,62,23,0,642,643, - 1,0,0,0,643,644,6,28,11,0,644,73,1,0,0,0,645,646,3,58,21,0,646,647,1,0, - 0,0,647,648,6,29,11,0,648,75,1,0,0,0,649,650,3,60,22,0,650,651,1,0,0,0, - 651,652,6,30,11,0,652,77,1,0,0,0,653,654,5,124,0,0,654,655,1,0,0,0,655, - 656,6,31,15,0,656,79,1,0,0,0,657,658,7,26,0,0,658,81,1,0,0,0,659,660,7, - 27,0,0,660,83,1,0,0,0,661,662,5,92,0,0,662,663,7,28,0,0,663,85,1,0,0,0, - 664,665,8,29,0,0,665,87,1,0,0,0,666,668,7,3,0,0,667,669,7,30,0,0,668,667, - 1,0,0,0,668,669,1,0,0,0,669,671,1,0,0,0,670,672,3,80,32,0,671,670,1,0,0, - 0,672,673,1,0,0,0,673,671,1,0,0,0,673,674,1,0,0,0,674,89,1,0,0,0,675,676, - 5,64,0,0,676,91,1,0,0,0,677,678,5,96,0,0,678,93,1,0,0,0,679,683,8,31,0, - 0,680,681,5,96,0,0,681,683,5,96,0,0,682,679,1,0,0,0,682,680,1,0,0,0,683, - 95,1,0,0,0,684,685,5,95,0,0,685,97,1,0,0,0,686,690,3,82,33,0,687,690,3, - 80,32,0,688,690,3,96,40,0,689,686,1,0,0,0,689,687,1,0,0,0,689,688,1,0,0, - 0,690,99,1,0,0,0,691,696,5,34,0,0,692,695,3,84,34,0,693,695,3,86,35,0,694, - 692,1,0,0,0,694,693,1,0,0,0,695,698,1,0,0,0,696,694,1,0,0,0,696,697,1,0, - 0,0,697,699,1,0,0,0,698,696,1,0,0,0,699,721,5,34,0,0,700,701,5,34,0,0,701, - 702,5,34,0,0,702,703,5,34,0,0,703,707,1,0,0,0,704,706,8,22,0,0,705,704, - 1,0,0,0,706,709,1,0,0,0,707,708,1,0,0,0,707,705,1,0,0,0,708,710,1,0,0,0, - 709,707,1,0,0,0,710,711,5,34,0,0,711,712,5,34,0,0,712,713,5,34,0,0,713, - 715,1,0,0,0,714,716,5,34,0,0,715,714,1,0,0,0,715,716,1,0,0,0,716,718,1, - 0,0,0,717,719,5,34,0,0,718,717,1,0,0,0,718,719,1,0,0,0,719,721,1,0,0,0, - 720,691,1,0,0,0,720,700,1,0,0,0,721,101,1,0,0,0,722,724,3,80,32,0,723,722, - 1,0,0,0,724,725,1,0,0,0,725,723,1,0,0,0,725,726,1,0,0,0,726,103,1,0,0,0, - 727,729,3,80,32,0,728,727,1,0,0,0,729,730,1,0,0,0,730,728,1,0,0,0,730,731, - 1,0,0,0,731,732,1,0,0,0,732,736,3,120,52,0,733,735,3,80,32,0,734,733,1, - 0,0,0,735,738,1,0,0,0,736,734,1,0,0,0,736,737,1,0,0,0,737,770,1,0,0,0,738, - 736,1,0,0,0,739,741,3,120,52,0,740,742,3,80,32,0,741,740,1,0,0,0,742,743, - 1,0,0,0,743,741,1,0,0,0,743,744,1,0,0,0,744,770,1,0,0,0,745,747,3,80,32, - 0,746,745,1,0,0,0,747,748,1,0,0,0,748,746,1,0,0,0,748,749,1,0,0,0,749,757, - 1,0,0,0,750,754,3,120,52,0,751,753,3,80,32,0,752,751,1,0,0,0,753,756,1, - 0,0,0,754,752,1,0,0,0,754,755,1,0,0,0,755,758,1,0,0,0,756,754,1,0,0,0,757, - 750,1,0,0,0,757,758,1,0,0,0,758,759,1,0,0,0,759,760,3,88,36,0,760,770,1, - 0,0,0,761,763,3,120,52,0,762,764,3,80,32,0,763,762,1,0,0,0,764,765,1,0, - 0,0,765,763,1,0,0,0,765,766,1,0,0,0,766,767,1,0,0,0,767,768,3,88,36,0,768, - 770,1,0,0,0,769,728,1,0,0,0,769,739,1,0,0,0,769,746,1,0,0,0,769,761,1,0, - 0,0,770,105,1,0,0,0,771,772,7,32,0,0,772,773,7,33,0,0,773,107,1,0,0,0,774, - 775,7,12,0,0,775,776,7,9,0,0,776,777,7,0,0,0,777,109,1,0,0,0,778,779,7, - 12,0,0,779,780,7,2,0,0,780,781,7,4,0,0,781,111,1,0,0,0,782,783,5,61,0,0, - 783,113,1,0,0,0,784,785,5,58,0,0,785,786,5,58,0,0,786,115,1,0,0,0,787,788, - 5,44,0,0,788,117,1,0,0,0,789,790,7,0,0,0,790,791,7,3,0,0,791,792,7,2,0, - 0,792,793,7,4,0,0,793,119,1,0,0,0,794,795,5,46,0,0,795,121,1,0,0,0,796, - 797,7,15,0,0,797,798,7,12,0,0,798,799,7,13,0,0,799,800,7,2,0,0,800,801, - 7,3,0,0,801,123,1,0,0,0,802,803,7,15,0,0,803,804,7,1,0,0,804,805,7,6,0, - 0,805,806,7,2,0,0,806,807,7,5,0,0,807,125,1,0,0,0,808,809,7,1,0,0,809,810, - 7,9,0,0,810,127,1,0,0,0,811,812,7,1,0,0,812,813,7,2,0,0,813,129,1,0,0,0, - 814,815,7,13,0,0,815,816,7,12,0,0,816,817,7,2,0,0,817,818,7,5,0,0,818,131, - 1,0,0,0,819,820,7,13,0,0,820,821,7,1,0,0,821,822,7,18,0,0,822,823,7,3,0, - 0,823,133,1,0,0,0,824,825,5,40,0,0,825,135,1,0,0,0,826,827,7,16,0,0,827, - 828,7,12,0,0,828,829,7,5,0,0,829,830,7,4,0,0,830,831,7,10,0,0,831,137,1, - 0,0,0,832,833,7,9,0,0,833,834,7,7,0,0,834,835,7,5,0,0,835,139,1,0,0,0,836, - 837,7,9,0,0,837,838,7,19,0,0,838,839,7,13,0,0,839,840,7,13,0,0,840,141, - 1,0,0,0,841,842,7,9,0,0,842,843,7,19,0,0,843,844,7,13,0,0,844,845,7,13, - 0,0,845,846,7,2,0,0,846,143,1,0,0,0,847,848,7,7,0,0,848,849,7,6,0,0,849, - 145,1,0,0,0,850,851,5,63,0,0,851,147,1,0,0,0,852,853,7,6,0,0,853,854,7, - 13,0,0,854,855,7,1,0,0,855,856,7,18,0,0,856,857,7,3,0,0,857,149,1,0,0,0, - 858,859,5,41,0,0,859,151,1,0,0,0,860,861,7,5,0,0,861,862,7,6,0,0,862,863, - 7,19,0,0,863,864,7,3,0,0,864,153,1,0,0,0,865,866,5,61,0,0,866,867,5,61, - 0,0,867,155,1,0,0,0,868,869,5,61,0,0,869,870,5,126,0,0,870,157,1,0,0,0, - 871,872,5,33,0,0,872,873,5,61,0,0,873,159,1,0,0,0,874,875,5,60,0,0,875, - 161,1,0,0,0,876,877,5,60,0,0,877,878,5,61,0,0,878,163,1,0,0,0,879,880,5, - 62,0,0,880,165,1,0,0,0,881,882,5,62,0,0,882,883,5,61,0,0,883,167,1,0,0, - 0,884,885,5,43,0,0,885,169,1,0,0,0,886,887,5,45,0,0,887,171,1,0,0,0,888, - 889,5,42,0,0,889,173,1,0,0,0,890,891,5,47,0,0,891,175,1,0,0,0,892,893,5, - 37,0,0,893,177,1,0,0,0,894,895,3,146,65,0,895,899,3,82,33,0,896,898,3,98, - 41,0,897,896,1,0,0,0,898,901,1,0,0,0,899,897,1,0,0,0,899,900,1,0,0,0,900, - 909,1,0,0,0,901,899,1,0,0,0,902,904,3,146,65,0,903,905,3,80,32,0,904,903, - 1,0,0,0,905,906,1,0,0,0,906,904,1,0,0,0,906,907,1,0,0,0,907,909,1,0,0,0, - 908,894,1,0,0,0,908,902,1,0,0,0,909,179,1,0,0,0,910,911,5,91,0,0,911,912, - 1,0,0,0,912,913,6,82,0,0,913,914,6,82,0,0,914,181,1,0,0,0,915,916,5,93, - 0,0,916,917,1,0,0,0,917,918,6,83,15,0,918,919,6,83,15,0,919,183,1,0,0,0, - 920,924,3,82,33,0,921,923,3,98,41,0,922,921,1,0,0,0,923,926,1,0,0,0,924, - 922,1,0,0,0,924,925,1,0,0,0,925,937,1,0,0,0,926,924,1,0,0,0,927,930,3,96, - 40,0,928,930,3,90,37,0,929,927,1,0,0,0,929,928,1,0,0,0,930,932,1,0,0,0, - 931,933,3,98,41,0,932,931,1,0,0,0,933,934,1,0,0,0,934,932,1,0,0,0,934,935, - 1,0,0,0,935,937,1,0,0,0,936,920,1,0,0,0,936,929,1,0,0,0,937,185,1,0,0,0, - 938,940,3,92,38,0,939,941,3,94,39,0,940,939,1,0,0,0,941,942,1,0,0,0,942, - 940,1,0,0,0,942,943,1,0,0,0,943,944,1,0,0,0,944,945,3,92,38,0,945,187,1, - 0,0,0,946,947,3,186,85,0,947,189,1,0,0,0,948,949,3,58,21,0,949,950,1,0, - 0,0,950,951,6,87,11,0,951,191,1,0,0,0,952,953,3,60,22,0,953,954,1,0,0,0, - 954,955,6,88,11,0,955,193,1,0,0,0,956,957,3,62,23,0,957,958,1,0,0,0,958, - 959,6,89,11,0,959,195,1,0,0,0,960,961,3,78,31,0,961,962,1,0,0,0,962,963, - 6,90,14,0,963,964,6,90,15,0,964,197,1,0,0,0,965,966,3,180,82,0,966,967, - 1,0,0,0,967,968,6,91,12,0,968,199,1,0,0,0,969,970,3,182,83,0,970,971,1, - 0,0,0,971,972,6,92,16,0,972,201,1,0,0,0,973,974,3,366,175,0,974,975,1,0, - 0,0,975,976,6,93,17,0,976,203,1,0,0,0,977,978,3,116,50,0,978,979,1,0,0, - 0,979,980,6,94,18,0,980,205,1,0,0,0,981,982,3,112,48,0,982,983,1,0,0,0, - 983,984,6,95,19,0,984,207,1,0,0,0,985,986,7,16,0,0,986,987,7,3,0,0,987, - 988,7,5,0,0,988,989,7,12,0,0,989,990,7,0,0,0,990,991,7,12,0,0,991,992,7, - 5,0,0,992,993,7,12,0,0,993,209,1,0,0,0,994,995,3,66,25,0,995,996,1,0,0, - 0,996,997,6,97,20,0,997,211,1,0,0,0,998,999,3,100,42,0,999,1000,1,0,0,0, - 1000,1001,6,98,21,0,1001,213,1,0,0,0,1002,1003,3,58,21,0,1003,1004,1,0, - 0,0,1004,1005,6,99,11,0,1005,215,1,0,0,0,1006,1007,3,60,22,0,1007,1008, - 1,0,0,0,1008,1009,6,100,11,0,1009,217,1,0,0,0,1010,1011,3,62,23,0,1011, - 1012,1,0,0,0,1012,1013,6,101,11,0,1013,219,1,0,0,0,1014,1015,3,78,31,0, - 1015,1016,1,0,0,0,1016,1017,6,102,14,0,1017,1018,6,102,15,0,1018,221,1, - 0,0,0,1019,1020,3,120,52,0,1020,1021,1,0,0,0,1021,1022,6,103,22,0,1022, - 223,1,0,0,0,1023,1024,3,116,50,0,1024,1025,1,0,0,0,1025,1026,6,104,18,0, - 1026,225,1,0,0,0,1027,1032,3,82,33,0,1028,1032,3,80,32,0,1029,1032,3,96, - 40,0,1030,1032,3,172,78,0,1031,1027,1,0,0,0,1031,1028,1,0,0,0,1031,1029, - 1,0,0,0,1031,1030,1,0,0,0,1032,227,1,0,0,0,1033,1036,3,82,33,0,1034,1036, - 3,172,78,0,1035,1033,1,0,0,0,1035,1034,1,0,0,0,1036,1040,1,0,0,0,1037,1039, - 3,226,105,0,1038,1037,1,0,0,0,1039,1042,1,0,0,0,1040,1038,1,0,0,0,1040, - 1041,1,0,0,0,1041,1053,1,0,0,0,1042,1040,1,0,0,0,1043,1046,3,96,40,0,1044, - 1046,3,90,37,0,1045,1043,1,0,0,0,1045,1044,1,0,0,0,1046,1048,1,0,0,0,1047, - 1049,3,226,105,0,1048,1047,1,0,0,0,1049,1050,1,0,0,0,1050,1048,1,0,0,0, - 1050,1051,1,0,0,0,1051,1053,1,0,0,0,1052,1035,1,0,0,0,1052,1045,1,0,0,0, - 1053,229,1,0,0,0,1054,1057,3,228,106,0,1055,1057,3,186,85,0,1056,1054,1, - 0,0,0,1056,1055,1,0,0,0,1057,1058,1,0,0,0,1058,1056,1,0,0,0,1058,1059,1, - 0,0,0,1059,231,1,0,0,0,1060,1061,3,58,21,0,1061,1062,1,0,0,0,1062,1063, - 6,108,11,0,1063,233,1,0,0,0,1064,1065,3,60,22,0,1065,1066,1,0,0,0,1066, - 1067,6,109,11,0,1067,235,1,0,0,0,1068,1069,3,62,23,0,1069,1070,1,0,0,0, - 1070,1071,6,110,11,0,1071,237,1,0,0,0,1072,1073,3,78,31,0,1073,1074,1,0, - 0,0,1074,1075,6,111,14,0,1075,1076,6,111,15,0,1076,239,1,0,0,0,1077,1078, - 3,112,48,0,1078,1079,1,0,0,0,1079,1080,6,112,19,0,1080,241,1,0,0,0,1081, - 1082,3,116,50,0,1082,1083,1,0,0,0,1083,1084,6,113,18,0,1084,243,1,0,0,0, - 1085,1086,3,120,52,0,1086,1087,1,0,0,0,1087,1088,6,114,22,0,1088,245,1, - 0,0,0,1089,1090,7,12,0,0,1090,1091,7,2,0,0,1091,247,1,0,0,0,1092,1093,3, - 230,107,0,1093,1094,1,0,0,0,1094,1095,6,116,23,0,1095,249,1,0,0,0,1096, - 1097,3,58,21,0,1097,1098,1,0,0,0,1098,1099,6,117,11,0,1099,251,1,0,0,0, - 1100,1101,3,60,22,0,1101,1102,1,0,0,0,1102,1103,6,118,11,0,1103,253,1,0, - 0,0,1104,1105,3,62,23,0,1105,1106,1,0,0,0,1106,1107,6,119,11,0,1107,255, - 1,0,0,0,1108,1109,3,78,31,0,1109,1110,1,0,0,0,1110,1111,6,120,14,0,1111, - 1112,6,120,15,0,1112,257,1,0,0,0,1113,1114,3,180,82,0,1114,1115,1,0,0,0, - 1115,1116,6,121,12,0,1116,1117,6,121,24,0,1117,259,1,0,0,0,1118,1119,7, - 7,0,0,1119,1120,7,9,0,0,1120,1121,1,0,0,0,1121,1122,6,122,25,0,1122,261, - 1,0,0,0,1123,1124,7,20,0,0,1124,1125,7,1,0,0,1125,1126,7,5,0,0,1126,1127, - 7,10,0,0,1127,1128,1,0,0,0,1128,1129,6,123,25,0,1129,263,1,0,0,0,1130,1131, - 8,34,0,0,1131,265,1,0,0,0,1132,1134,3,264,124,0,1133,1132,1,0,0,0,1134, - 1135,1,0,0,0,1135,1133,1,0,0,0,1135,1136,1,0,0,0,1136,1137,1,0,0,0,1137, - 1138,3,366,175,0,1138,1140,1,0,0,0,1139,1133,1,0,0,0,1139,1140,1,0,0,0, - 1140,1142,1,0,0,0,1141,1143,3,264,124,0,1142,1141,1,0,0,0,1143,1144,1,0, - 0,0,1144,1142,1,0,0,0,1144,1145,1,0,0,0,1145,267,1,0,0,0,1146,1147,3,266, - 125,0,1147,1148,1,0,0,0,1148,1149,6,126,26,0,1149,269,1,0,0,0,1150,1151, - 3,58,21,0,1151,1152,1,0,0,0,1152,1153,6,127,11,0,1153,271,1,0,0,0,1154, - 1155,3,60,22,0,1155,1156,1,0,0,0,1156,1157,6,128,11,0,1157,273,1,0,0,0, - 1158,1159,3,62,23,0,1159,1160,1,0,0,0,1160,1161,6,129,11,0,1161,275,1,0, - 0,0,1162,1163,3,78,31,0,1163,1164,1,0,0,0,1164,1165,6,130,14,0,1165,1166, - 6,130,15,0,1166,1167,6,130,15,0,1167,277,1,0,0,0,1168,1169,3,112,48,0,1169, - 1170,1,0,0,0,1170,1171,6,131,19,0,1171,279,1,0,0,0,1172,1173,3,116,50,0, - 1173,1174,1,0,0,0,1174,1175,6,132,18,0,1175,281,1,0,0,0,1176,1177,3,120, - 52,0,1177,1178,1,0,0,0,1178,1179,6,133,22,0,1179,283,1,0,0,0,1180,1181, - 3,262,123,0,1181,1182,1,0,0,0,1182,1183,6,134,27,0,1183,285,1,0,0,0,1184, - 1185,3,230,107,0,1185,1186,1,0,0,0,1186,1187,6,135,23,0,1187,287,1,0,0, - 0,1188,1189,3,188,86,0,1189,1190,1,0,0,0,1190,1191,6,136,28,0,1191,289, - 1,0,0,0,1192,1193,3,58,21,0,1193,1194,1,0,0,0,1194,1195,6,137,11,0,1195, - 291,1,0,0,0,1196,1197,3,60,22,0,1197,1198,1,0,0,0,1198,1199,6,138,11,0, - 1199,293,1,0,0,0,1200,1201,3,62,23,0,1201,1202,1,0,0,0,1202,1203,6,139, - 11,0,1203,295,1,0,0,0,1204,1205,3,78,31,0,1205,1206,1,0,0,0,1206,1207,6, - 140,14,0,1207,1208,6,140,15,0,1208,297,1,0,0,0,1209,1210,3,366,175,0,1210, - 1211,1,0,0,0,1211,1212,6,141,17,0,1212,299,1,0,0,0,1213,1214,3,116,50,0, - 1214,1215,1,0,0,0,1215,1216,6,142,18,0,1216,301,1,0,0,0,1217,1218,3,120, - 52,0,1218,1219,1,0,0,0,1219,1220,6,143,22,0,1220,303,1,0,0,0,1221,1222, - 3,260,122,0,1222,1223,1,0,0,0,1223,1224,6,144,29,0,1224,1225,6,144,30,0, - 1225,305,1,0,0,0,1226,1227,3,66,25,0,1227,1228,1,0,0,0,1228,1229,6,145, - 20,0,1229,307,1,0,0,0,1230,1231,3,100,42,0,1231,1232,1,0,0,0,1232,1233, - 6,146,21,0,1233,309,1,0,0,0,1234,1235,3,58,21,0,1235,1236,1,0,0,0,1236, - 1237,6,147,11,0,1237,311,1,0,0,0,1238,1239,3,60,22,0,1239,1240,1,0,0,0, - 1240,1241,6,148,11,0,1241,313,1,0,0,0,1242,1243,3,62,23,0,1243,1244,1,0, - 0,0,1244,1245,6,149,11,0,1245,315,1,0,0,0,1246,1247,3,78,31,0,1247,1248, - 1,0,0,0,1248,1249,6,150,14,0,1249,1250,6,150,15,0,1250,1251,6,150,15,0, - 1251,317,1,0,0,0,1252,1253,3,116,50,0,1253,1254,1,0,0,0,1254,1255,6,151, - 18,0,1255,319,1,0,0,0,1256,1257,3,120,52,0,1257,1258,1,0,0,0,1258,1259, - 6,152,22,0,1259,321,1,0,0,0,1260,1261,3,230,107,0,1261,1262,1,0,0,0,1262, - 1263,6,153,23,0,1263,323,1,0,0,0,1264,1265,3,58,21,0,1265,1266,1,0,0,0, - 1266,1267,6,154,11,0,1267,325,1,0,0,0,1268,1269,3,60,22,0,1269,1270,1,0, - 0,0,1270,1271,6,155,11,0,1271,327,1,0,0,0,1272,1273,3,62,23,0,1273,1274, - 1,0,0,0,1274,1275,6,156,11,0,1275,329,1,0,0,0,1276,1277,3,78,31,0,1277, - 1278,1,0,0,0,1278,1279,6,157,14,0,1279,1280,6,157,15,0,1280,331,1,0,0,0, - 1281,1282,3,120,52,0,1282,1283,1,0,0,0,1283,1284,6,158,22,0,1284,333,1, - 0,0,0,1285,1286,3,188,86,0,1286,1287,1,0,0,0,1287,1288,6,159,28,0,1288, - 335,1,0,0,0,1289,1290,3,184,84,0,1290,1291,1,0,0,0,1291,1292,6,160,31,0, - 1292,337,1,0,0,0,1293,1294,3,58,21,0,1294,1295,1,0,0,0,1295,1296,6,161, - 11,0,1296,339,1,0,0,0,1297,1298,3,60,22,0,1298,1299,1,0,0,0,1299,1300,6, - 162,11,0,1300,341,1,0,0,0,1301,1302,3,62,23,0,1302,1303,1,0,0,0,1303,1304, - 6,163,11,0,1304,343,1,0,0,0,1305,1306,3,78,31,0,1306,1307,1,0,0,0,1307, - 1308,6,164,14,0,1308,1309,6,164,15,0,1309,345,1,0,0,0,1310,1311,7,1,0,0, - 1311,1312,7,9,0,0,1312,1313,7,15,0,0,1313,1314,7,7,0,0,1314,347,1,0,0,0, - 1315,1316,3,58,21,0,1316,1317,1,0,0,0,1317,1318,6,166,11,0,1318,349,1,0, - 0,0,1319,1320,3,60,22,0,1320,1321,1,0,0,0,1321,1322,6,167,11,0,1322,351, - 1,0,0,0,1323,1324,3,62,23,0,1324,1325,1,0,0,0,1325,1326,6,168,11,0,1326, - 353,1,0,0,0,1327,1328,3,78,31,0,1328,1329,1,0,0,0,1329,1330,6,169,14,0, - 1330,1331,6,169,15,0,1331,355,1,0,0,0,1332,1333,7,15,0,0,1333,1334,7,19, - 0,0,1334,1335,7,9,0,0,1335,1336,7,4,0,0,1336,1337,7,5,0,0,1337,1338,7,1, - 0,0,1338,1339,7,7,0,0,1339,1340,7,9,0,0,1340,1341,7,2,0,0,1341,357,1,0, - 0,0,1342,1343,3,58,21,0,1343,1344,1,0,0,0,1344,1345,6,171,11,0,1345,359, - 1,0,0,0,1346,1347,3,60,22,0,1347,1348,1,0,0,0,1348,1349,6,172,11,0,1349, - 361,1,0,0,0,1350,1351,3,62,23,0,1351,1352,1,0,0,0,1352,1353,6,173,11,0, - 1353,363,1,0,0,0,1354,1355,3,182,83,0,1355,1356,1,0,0,0,1356,1357,6,174, - 16,0,1357,1358,6,174,15,0,1358,365,1,0,0,0,1359,1360,5,58,0,0,1360,367, - 1,0,0,0,1361,1367,3,90,37,0,1362,1367,3,80,32,0,1363,1367,3,120,52,0,1364, - 1367,3,82,33,0,1365,1367,3,96,40,0,1366,1361,1,0,0,0,1366,1362,1,0,0,0, - 1366,1363,1,0,0,0,1366,1364,1,0,0,0,1366,1365,1,0,0,0,1367,1368,1,0,0,0, - 1368,1366,1,0,0,0,1368,1369,1,0,0,0,1369,369,1,0,0,0,1370,1371,3,58,21, - 0,1371,1372,1,0,0,0,1372,1373,6,177,11,0,1373,371,1,0,0,0,1374,1375,3,60, - 22,0,1375,1376,1,0,0,0,1376,1377,6,178,11,0,1377,373,1,0,0,0,1378,1379, - 3,62,23,0,1379,1380,1,0,0,0,1380,1381,6,179,11,0,1381,375,1,0,0,0,1382, - 1383,3,78,31,0,1383,1384,1,0,0,0,1384,1385,6,180,14,0,1385,1386,6,180,15, - 0,1386,377,1,0,0,0,1387,1388,3,66,25,0,1388,1389,1,0,0,0,1389,1390,6,181, - 20,0,1390,1391,6,181,15,0,1391,1392,6,181,32,0,1392,379,1,0,0,0,1393,1394, - 3,100,42,0,1394,1395,1,0,0,0,1395,1396,6,182,21,0,1396,1397,6,182,15,0, - 1397,1398,6,182,32,0,1398,381,1,0,0,0,1399,1400,3,58,21,0,1400,1401,1,0, - 0,0,1401,1402,6,183,11,0,1402,383,1,0,0,0,1403,1404,3,60,22,0,1404,1405, - 1,0,0,0,1405,1406,6,184,11,0,1406,385,1,0,0,0,1407,1408,3,62,23,0,1408, - 1409,1,0,0,0,1409,1410,6,185,11,0,1410,387,1,0,0,0,1411,1412,3,366,175, - 0,1412,1413,1,0,0,0,1413,1414,6,186,17,0,1414,1415,6,186,15,0,1415,1416, - 6,186,7,0,1416,389,1,0,0,0,1417,1418,3,116,50,0,1418,1419,1,0,0,0,1419, - 1420,6,187,18,0,1420,1421,6,187,15,0,1421,1422,6,187,7,0,1422,391,1,0,0, - 0,1423,1424,3,58,21,0,1424,1425,1,0,0,0,1425,1426,6,188,11,0,1426,393,1, - 0,0,0,1427,1428,3,60,22,0,1428,1429,1,0,0,0,1429,1430,6,189,11,0,1430,395, - 1,0,0,0,1431,1432,3,62,23,0,1432,1433,1,0,0,0,1433,1434,6,190,11,0,1434, - 397,1,0,0,0,1435,1436,3,188,86,0,1436,1437,1,0,0,0,1437,1438,6,191,15,0, - 1438,1439,6,191,0,0,1439,1440,6,191,28,0,1440,399,1,0,0,0,1441,1442,3,184, - 84,0,1442,1443,1,0,0,0,1443,1444,6,192,15,0,1444,1445,6,192,0,0,1445,1446, - 6,192,31,0,1446,401,1,0,0,0,1447,1448,3,106,45,0,1448,1449,1,0,0,0,1449, - 1450,6,193,15,0,1450,1451,6,193,0,0,1451,1452,6,193,33,0,1452,403,1,0,0, - 0,1453,1454,3,78,31,0,1454,1455,1,0,0,0,1455,1456,6,194,14,0,1456,1457, - 6,194,15,0,1457,405,1,0,0,0,65,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,578, - 588,592,595,604,606,617,624,629,668,673,682,689,694,696,707,715,718,720, - 725,730,736,743,748,754,757,765,769,899,906,908,924,929,934,936,942,1031, - 1035,1040,1045,1050,1052,1056,1058,1135,1139,1144,1366,1368,34,5,2,0,5, - 4,0,5,6,0,5,1,0,5,3,0,5,8,0,5,12,0,5,14,0,5,10,0,5,5,0,5,11,0,0,1,0,7,70, - 0,5,0,0,7,29,0,4,0,0,7,71,0,7,115,0,7,38,0,7,36,0,7,25,0,7,30,0,7,40,0, - 7,81,0,5,13,0,5,7,0,7,91,0,7,90,0,7,73,0,7,89,0,5,9,0,7,72,0,5,15,0,7,33, - 0]; + 1,0,0,0,15,402,1,0,0,0,15,404,1,0,0,0,15,406,1,0,0,0,16,408,1,0,0,0,18, + 418,1,0,0,0,20,425,1,0,0,0,22,434,1,0,0,0,24,441,1,0,0,0,26,451,1,0,0,0, + 28,458,1,0,0,0,30,465,1,0,0,0,32,479,1,0,0,0,34,486,1,0,0,0,36,494,1,0, + 0,0,38,503,1,0,0,0,40,510,1,0,0,0,42,520,1,0,0,0,44,532,1,0,0,0,46,541, + 1,0,0,0,48,547,1,0,0,0,50,554,1,0,0,0,52,561,1,0,0,0,54,569,1,0,0,0,56, + 577,1,0,0,0,58,586,1,0,0,0,60,592,1,0,0,0,62,609,1,0,0,0,64,625,1,0,0,0, + 66,634,1,0,0,0,68,637,1,0,0,0,70,641,1,0,0,0,72,646,1,0,0,0,74,651,1,0, + 0,0,76,655,1,0,0,0,78,659,1,0,0,0,80,663,1,0,0,0,82,667,1,0,0,0,84,669, + 1,0,0,0,86,671,1,0,0,0,88,674,1,0,0,0,90,676,1,0,0,0,92,685,1,0,0,0,94, + 687,1,0,0,0,96,692,1,0,0,0,98,694,1,0,0,0,100,699,1,0,0,0,102,730,1,0,0, + 0,104,733,1,0,0,0,106,779,1,0,0,0,108,781,1,0,0,0,110,784,1,0,0,0,112,788, + 1,0,0,0,114,792,1,0,0,0,116,794,1,0,0,0,118,797,1,0,0,0,120,799,1,0,0,0, + 122,804,1,0,0,0,124,806,1,0,0,0,126,812,1,0,0,0,128,818,1,0,0,0,130,821, + 1,0,0,0,132,824,1,0,0,0,134,829,1,0,0,0,136,834,1,0,0,0,138,836,1,0,0,0, + 140,842,1,0,0,0,142,846,1,0,0,0,144,851,1,0,0,0,146,857,1,0,0,0,148,860, + 1,0,0,0,150,862,1,0,0,0,152,868,1,0,0,0,154,870,1,0,0,0,156,875,1,0,0,0, + 158,878,1,0,0,0,160,881,1,0,0,0,162,884,1,0,0,0,164,886,1,0,0,0,166,889, + 1,0,0,0,168,891,1,0,0,0,170,894,1,0,0,0,172,896,1,0,0,0,174,898,1,0,0,0, + 176,900,1,0,0,0,178,902,1,0,0,0,180,918,1,0,0,0,182,920,1,0,0,0,184,925, + 1,0,0,0,186,946,1,0,0,0,188,948,1,0,0,0,190,956,1,0,0,0,192,958,1,0,0,0, + 194,962,1,0,0,0,196,966,1,0,0,0,198,970,1,0,0,0,200,975,1,0,0,0,202,979, + 1,0,0,0,204,983,1,0,0,0,206,987,1,0,0,0,208,991,1,0,0,0,210,995,1,0,0,0, + 212,1004,1,0,0,0,214,1008,1,0,0,0,216,1012,1,0,0,0,218,1016,1,0,0,0,220, + 1020,1,0,0,0,222,1024,1,0,0,0,224,1029,1,0,0,0,226,1033,1,0,0,0,228,1041, + 1,0,0,0,230,1062,1,0,0,0,232,1066,1,0,0,0,234,1070,1,0,0,0,236,1074,1,0, + 0,0,238,1078,1,0,0,0,240,1082,1,0,0,0,242,1087,1,0,0,0,244,1091,1,0,0,0, + 246,1095,1,0,0,0,248,1099,1,0,0,0,250,1102,1,0,0,0,252,1106,1,0,0,0,254, + 1110,1,0,0,0,256,1114,1,0,0,0,258,1118,1,0,0,0,260,1123,1,0,0,0,262,1128, + 1,0,0,0,264,1133,1,0,0,0,266,1140,1,0,0,0,268,1149,1,0,0,0,270,1156,1,0, + 0,0,272,1160,1,0,0,0,274,1164,1,0,0,0,276,1168,1,0,0,0,278,1172,1,0,0,0, + 280,1178,1,0,0,0,282,1182,1,0,0,0,284,1186,1,0,0,0,286,1190,1,0,0,0,288, + 1194,1,0,0,0,290,1198,1,0,0,0,292,1202,1,0,0,0,294,1206,1,0,0,0,296,1210, + 1,0,0,0,298,1214,1,0,0,0,300,1219,1,0,0,0,302,1223,1,0,0,0,304,1227,1,0, + 0,0,306,1231,1,0,0,0,308,1236,1,0,0,0,310,1240,1,0,0,0,312,1244,1,0,0,0, + 314,1248,1,0,0,0,316,1252,1,0,0,0,318,1256,1,0,0,0,320,1262,1,0,0,0,322, + 1266,1,0,0,0,324,1270,1,0,0,0,326,1274,1,0,0,0,328,1278,1,0,0,0,330,1282, + 1,0,0,0,332,1286,1,0,0,0,334,1291,1,0,0,0,336,1295,1,0,0,0,338,1299,1,0, + 0,0,340,1303,1,0,0,0,342,1307,1,0,0,0,344,1311,1,0,0,0,346,1315,1,0,0,0, + 348,1320,1,0,0,0,350,1325,1,0,0,0,352,1329,1,0,0,0,354,1333,1,0,0,0,356, + 1337,1,0,0,0,358,1342,1,0,0,0,360,1352,1,0,0,0,362,1356,1,0,0,0,364,1360, + 1,0,0,0,366,1364,1,0,0,0,368,1369,1,0,0,0,370,1376,1,0,0,0,372,1380,1,0, + 0,0,374,1384,1,0,0,0,376,1388,1,0,0,0,378,1392,1,0,0,0,380,1397,1,0,0,0, + 382,1403,1,0,0,0,384,1409,1,0,0,0,386,1413,1,0,0,0,388,1417,1,0,0,0,390, + 1421,1,0,0,0,392,1427,1,0,0,0,394,1433,1,0,0,0,396,1437,1,0,0,0,398,1441, + 1,0,0,0,400,1445,1,0,0,0,402,1451,1,0,0,0,404,1457,1,0,0,0,406,1463,1,0, + 0,0,408,409,7,0,0,0,409,410,7,1,0,0,410,411,7,2,0,0,411,412,7,2,0,0,412, + 413,7,3,0,0,413,414,7,4,0,0,414,415,7,5,0,0,415,416,1,0,0,0,416,417,6,0, + 0,0,417,17,1,0,0,0,418,419,7,0,0,0,419,420,7,6,0,0,420,421,7,7,0,0,421, + 422,7,8,0,0,422,423,1,0,0,0,423,424,6,1,1,0,424,19,1,0,0,0,425,426,7,3, + 0,0,426,427,7,9,0,0,427,428,7,6,0,0,428,429,7,1,0,0,429,430,7,4,0,0,430, + 431,7,10,0,0,431,432,1,0,0,0,432,433,6,2,2,0,433,21,1,0,0,0,434,435,7,3, + 0,0,435,436,7,11,0,0,436,437,7,12,0,0,437,438,7,13,0,0,438,439,1,0,0,0, + 439,440,6,3,0,0,440,23,1,0,0,0,441,442,7,3,0,0,442,443,7,14,0,0,443,444, + 7,8,0,0,444,445,7,13,0,0,445,446,7,12,0,0,446,447,7,1,0,0,447,448,7,9,0, + 0,448,449,1,0,0,0,449,450,6,4,3,0,450,25,1,0,0,0,451,452,7,15,0,0,452,453, + 7,6,0,0,453,454,7,7,0,0,454,455,7,16,0,0,455,456,1,0,0,0,456,457,6,5,4, + 0,457,27,1,0,0,0,458,459,7,17,0,0,459,460,7,6,0,0,460,461,7,7,0,0,461,462, + 7,18,0,0,462,463,1,0,0,0,463,464,6,6,0,0,464,29,1,0,0,0,465,466,7,1,0,0, + 466,467,7,9,0,0,467,468,7,13,0,0,468,469,7,1,0,0,469,470,7,9,0,0,470,471, + 7,3,0,0,471,472,7,2,0,0,472,473,7,5,0,0,473,474,7,12,0,0,474,475,7,5,0, + 0,475,476,7,2,0,0,476,477,1,0,0,0,477,478,6,7,0,0,478,31,1,0,0,0,479,480, + 7,18,0,0,480,481,7,3,0,0,481,482,7,3,0,0,482,483,7,8,0,0,483,484,1,0,0, + 0,484,485,6,8,1,0,485,33,1,0,0,0,486,487,7,13,0,0,487,488,7,1,0,0,488,489, + 7,16,0,0,489,490,7,1,0,0,490,491,7,5,0,0,491,492,1,0,0,0,492,493,6,9,0, + 0,493,35,1,0,0,0,494,495,7,13,0,0,495,496,7,7,0,0,496,497,7,7,0,0,497,498, + 7,18,0,0,498,499,7,19,0,0,499,500,7,8,0,0,500,501,1,0,0,0,501,502,6,10, + 5,0,502,37,1,0,0,0,503,504,7,16,0,0,504,505,7,3,0,0,505,506,7,5,0,0,506, + 507,7,12,0,0,507,508,1,0,0,0,508,509,6,11,6,0,509,39,1,0,0,0,510,511,7, + 16,0,0,511,512,7,3,0,0,512,513,7,5,0,0,513,514,7,6,0,0,514,515,7,1,0,0, + 515,516,7,4,0,0,516,517,7,2,0,0,517,518,1,0,0,0,518,519,6,12,7,0,519,41, + 1,0,0,0,520,521,7,16,0,0,521,522,7,11,0,0,522,523,5,95,0,0,523,524,7,3, + 0,0,524,525,7,14,0,0,525,526,7,8,0,0,526,527,7,12,0,0,527,528,7,9,0,0,528, + 529,7,0,0,0,529,530,1,0,0,0,530,531,6,13,8,0,531,43,1,0,0,0,532,533,7,6, + 0,0,533,534,7,3,0,0,534,535,7,9,0,0,535,536,7,12,0,0,536,537,7,16,0,0,537, + 538,7,3,0,0,538,539,1,0,0,0,539,540,6,14,9,0,540,45,1,0,0,0,541,542,7,6, + 0,0,542,543,7,7,0,0,543,544,7,20,0,0,544,545,1,0,0,0,545,546,6,15,0,0,546, + 47,1,0,0,0,547,548,7,2,0,0,548,549,7,10,0,0,549,550,7,7,0,0,550,551,7,20, + 0,0,551,552,1,0,0,0,552,553,6,16,10,0,553,49,1,0,0,0,554,555,7,2,0,0,555, + 556,7,7,0,0,556,557,7,6,0,0,557,558,7,5,0,0,558,559,1,0,0,0,559,560,6,17, + 0,0,560,51,1,0,0,0,561,562,7,2,0,0,562,563,7,5,0,0,563,564,7,12,0,0,564, + 565,7,5,0,0,565,566,7,2,0,0,566,567,1,0,0,0,567,568,6,18,0,0,568,53,1,0, + 0,0,569,570,7,20,0,0,570,571,7,10,0,0,571,572,7,3,0,0,572,573,7,6,0,0,573, + 574,7,3,0,0,574,575,1,0,0,0,575,576,6,19,0,0,576,55,1,0,0,0,577,578,7,16, + 0,0,578,579,7,12,0,0,579,580,7,5,0,0,580,581,7,4,0,0,581,582,7,10,0,0,582, + 583,1,0,0,0,583,584,6,20,0,0,584,57,1,0,0,0,585,587,8,21,0,0,586,585,1, + 0,0,0,587,588,1,0,0,0,588,586,1,0,0,0,588,589,1,0,0,0,589,590,1,0,0,0,590, + 591,6,21,0,0,591,59,1,0,0,0,592,593,5,47,0,0,593,594,5,47,0,0,594,598,1, + 0,0,0,595,597,8,22,0,0,596,595,1,0,0,0,597,600,1,0,0,0,598,596,1,0,0,0, + 598,599,1,0,0,0,599,602,1,0,0,0,600,598,1,0,0,0,601,603,5,13,0,0,602,601, + 1,0,0,0,602,603,1,0,0,0,603,605,1,0,0,0,604,606,5,10,0,0,605,604,1,0,0, + 0,605,606,1,0,0,0,606,607,1,0,0,0,607,608,6,22,11,0,608,61,1,0,0,0,609, + 610,5,47,0,0,610,611,5,42,0,0,611,616,1,0,0,0,612,615,3,62,23,0,613,615, + 9,0,0,0,614,612,1,0,0,0,614,613,1,0,0,0,615,618,1,0,0,0,616,617,1,0,0,0, + 616,614,1,0,0,0,617,619,1,0,0,0,618,616,1,0,0,0,619,620,5,42,0,0,620,621, + 5,47,0,0,621,622,1,0,0,0,622,623,6,23,11,0,623,63,1,0,0,0,624,626,7,23, + 0,0,625,624,1,0,0,0,626,627,1,0,0,0,627,625,1,0,0,0,627,628,1,0,0,0,628, + 629,1,0,0,0,629,630,6,24,11,0,630,65,1,0,0,0,631,635,8,24,0,0,632,633,5, + 47,0,0,633,635,8,25,0,0,634,631,1,0,0,0,634,632,1,0,0,0,635,67,1,0,0,0, + 636,638,3,66,25,0,637,636,1,0,0,0,638,639,1,0,0,0,639,637,1,0,0,0,639,640, + 1,0,0,0,640,69,1,0,0,0,641,642,3,182,83,0,642,643,1,0,0,0,643,644,6,27, + 12,0,644,645,6,27,13,0,645,71,1,0,0,0,646,647,3,80,32,0,647,648,1,0,0,0, + 648,649,6,28,14,0,649,650,6,28,15,0,650,73,1,0,0,0,651,652,3,64,24,0,652, + 653,1,0,0,0,653,654,6,29,11,0,654,75,1,0,0,0,655,656,3,60,22,0,656,657, + 1,0,0,0,657,658,6,30,11,0,658,77,1,0,0,0,659,660,3,62,23,0,660,661,1,0, + 0,0,661,662,6,31,11,0,662,79,1,0,0,0,663,664,5,124,0,0,664,665,1,0,0,0, + 665,666,6,32,15,0,666,81,1,0,0,0,667,668,7,26,0,0,668,83,1,0,0,0,669,670, + 7,27,0,0,670,85,1,0,0,0,671,672,5,92,0,0,672,673,7,28,0,0,673,87,1,0,0, + 0,674,675,8,29,0,0,675,89,1,0,0,0,676,678,7,3,0,0,677,679,7,30,0,0,678, + 677,1,0,0,0,678,679,1,0,0,0,679,681,1,0,0,0,680,682,3,82,33,0,681,680,1, + 0,0,0,682,683,1,0,0,0,683,681,1,0,0,0,683,684,1,0,0,0,684,91,1,0,0,0,685, + 686,5,64,0,0,686,93,1,0,0,0,687,688,5,96,0,0,688,95,1,0,0,0,689,693,8,31, + 0,0,690,691,5,96,0,0,691,693,5,96,0,0,692,689,1,0,0,0,692,690,1,0,0,0,693, + 97,1,0,0,0,694,695,5,95,0,0,695,99,1,0,0,0,696,700,3,84,34,0,697,700,3, + 82,33,0,698,700,3,98,41,0,699,696,1,0,0,0,699,697,1,0,0,0,699,698,1,0,0, + 0,700,101,1,0,0,0,701,706,5,34,0,0,702,705,3,86,35,0,703,705,3,88,36,0, + 704,702,1,0,0,0,704,703,1,0,0,0,705,708,1,0,0,0,706,704,1,0,0,0,706,707, + 1,0,0,0,707,709,1,0,0,0,708,706,1,0,0,0,709,731,5,34,0,0,710,711,5,34,0, + 0,711,712,5,34,0,0,712,713,5,34,0,0,713,717,1,0,0,0,714,716,8,22,0,0,715, + 714,1,0,0,0,716,719,1,0,0,0,717,718,1,0,0,0,717,715,1,0,0,0,718,720,1,0, + 0,0,719,717,1,0,0,0,720,721,5,34,0,0,721,722,5,34,0,0,722,723,5,34,0,0, + 723,725,1,0,0,0,724,726,5,34,0,0,725,724,1,0,0,0,725,726,1,0,0,0,726,728, + 1,0,0,0,727,729,5,34,0,0,728,727,1,0,0,0,728,729,1,0,0,0,729,731,1,0,0, + 0,730,701,1,0,0,0,730,710,1,0,0,0,731,103,1,0,0,0,732,734,3,82,33,0,733, + 732,1,0,0,0,734,735,1,0,0,0,735,733,1,0,0,0,735,736,1,0,0,0,736,105,1,0, + 0,0,737,739,3,82,33,0,738,737,1,0,0,0,739,740,1,0,0,0,740,738,1,0,0,0,740, + 741,1,0,0,0,741,742,1,0,0,0,742,746,3,122,53,0,743,745,3,82,33,0,744,743, + 1,0,0,0,745,748,1,0,0,0,746,744,1,0,0,0,746,747,1,0,0,0,747,780,1,0,0,0, + 748,746,1,0,0,0,749,751,3,122,53,0,750,752,3,82,33,0,751,750,1,0,0,0,752, + 753,1,0,0,0,753,751,1,0,0,0,753,754,1,0,0,0,754,780,1,0,0,0,755,757,3,82, + 33,0,756,755,1,0,0,0,757,758,1,0,0,0,758,756,1,0,0,0,758,759,1,0,0,0,759, + 767,1,0,0,0,760,764,3,122,53,0,761,763,3,82,33,0,762,761,1,0,0,0,763,766, + 1,0,0,0,764,762,1,0,0,0,764,765,1,0,0,0,765,768,1,0,0,0,766,764,1,0,0,0, + 767,760,1,0,0,0,767,768,1,0,0,0,768,769,1,0,0,0,769,770,3,90,37,0,770,780, + 1,0,0,0,771,773,3,122,53,0,772,774,3,82,33,0,773,772,1,0,0,0,774,775,1, + 0,0,0,775,773,1,0,0,0,775,776,1,0,0,0,776,777,1,0,0,0,777,778,3,90,37,0, + 778,780,1,0,0,0,779,738,1,0,0,0,779,749,1,0,0,0,779,756,1,0,0,0,779,771, + 1,0,0,0,780,107,1,0,0,0,781,782,7,32,0,0,782,783,7,33,0,0,783,109,1,0,0, + 0,784,785,7,12,0,0,785,786,7,9,0,0,786,787,7,0,0,0,787,111,1,0,0,0,788, + 789,7,12,0,0,789,790,7,2,0,0,790,791,7,4,0,0,791,113,1,0,0,0,792,793,5, + 61,0,0,793,115,1,0,0,0,794,795,5,58,0,0,795,796,5,58,0,0,796,117,1,0,0, + 0,797,798,5,44,0,0,798,119,1,0,0,0,799,800,7,0,0,0,800,801,7,3,0,0,801, + 802,7,2,0,0,802,803,7,4,0,0,803,121,1,0,0,0,804,805,5,46,0,0,805,123,1, + 0,0,0,806,807,7,15,0,0,807,808,7,12,0,0,808,809,7,13,0,0,809,810,7,2,0, + 0,810,811,7,3,0,0,811,125,1,0,0,0,812,813,7,15,0,0,813,814,7,1,0,0,814, + 815,7,6,0,0,815,816,7,2,0,0,816,817,7,5,0,0,817,127,1,0,0,0,818,819,7,1, + 0,0,819,820,7,9,0,0,820,129,1,0,0,0,821,822,7,1,0,0,822,823,7,2,0,0,823, + 131,1,0,0,0,824,825,7,13,0,0,825,826,7,12,0,0,826,827,7,2,0,0,827,828,7, + 5,0,0,828,133,1,0,0,0,829,830,7,13,0,0,830,831,7,1,0,0,831,832,7,18,0,0, + 832,833,7,3,0,0,833,135,1,0,0,0,834,835,5,40,0,0,835,137,1,0,0,0,836,837, + 7,16,0,0,837,838,7,12,0,0,838,839,7,5,0,0,839,840,7,4,0,0,840,841,7,10, + 0,0,841,139,1,0,0,0,842,843,7,9,0,0,843,844,7,7,0,0,844,845,7,5,0,0,845, + 141,1,0,0,0,846,847,7,9,0,0,847,848,7,19,0,0,848,849,7,13,0,0,849,850,7, + 13,0,0,850,143,1,0,0,0,851,852,7,9,0,0,852,853,7,19,0,0,853,854,7,13,0, + 0,854,855,7,13,0,0,855,856,7,2,0,0,856,145,1,0,0,0,857,858,7,7,0,0,858, + 859,7,6,0,0,859,147,1,0,0,0,860,861,5,63,0,0,861,149,1,0,0,0,862,863,7, + 6,0,0,863,864,7,13,0,0,864,865,7,1,0,0,865,866,7,18,0,0,866,867,7,3,0,0, + 867,151,1,0,0,0,868,869,5,41,0,0,869,153,1,0,0,0,870,871,7,5,0,0,871,872, + 7,6,0,0,872,873,7,19,0,0,873,874,7,3,0,0,874,155,1,0,0,0,875,876,5,61,0, + 0,876,877,5,61,0,0,877,157,1,0,0,0,878,879,5,61,0,0,879,880,5,126,0,0,880, + 159,1,0,0,0,881,882,5,33,0,0,882,883,5,61,0,0,883,161,1,0,0,0,884,885,5, + 60,0,0,885,163,1,0,0,0,886,887,5,60,0,0,887,888,5,61,0,0,888,165,1,0,0, + 0,889,890,5,62,0,0,890,167,1,0,0,0,891,892,5,62,0,0,892,893,5,61,0,0,893, + 169,1,0,0,0,894,895,5,43,0,0,895,171,1,0,0,0,896,897,5,45,0,0,897,173,1, + 0,0,0,898,899,5,42,0,0,899,175,1,0,0,0,900,901,5,47,0,0,901,177,1,0,0,0, + 902,903,5,37,0,0,903,179,1,0,0,0,904,905,3,148,66,0,905,909,3,84,34,0,906, + 908,3,100,42,0,907,906,1,0,0,0,908,911,1,0,0,0,909,907,1,0,0,0,909,910, + 1,0,0,0,910,919,1,0,0,0,911,909,1,0,0,0,912,914,3,148,66,0,913,915,3,82, + 33,0,914,913,1,0,0,0,915,916,1,0,0,0,916,914,1,0,0,0,916,917,1,0,0,0,917, + 919,1,0,0,0,918,904,1,0,0,0,918,912,1,0,0,0,919,181,1,0,0,0,920,921,5,91, + 0,0,921,922,1,0,0,0,922,923,6,83,0,0,923,924,6,83,0,0,924,183,1,0,0,0,925, + 926,5,93,0,0,926,927,1,0,0,0,927,928,6,84,15,0,928,929,6,84,15,0,929,185, + 1,0,0,0,930,934,3,84,34,0,931,933,3,100,42,0,932,931,1,0,0,0,933,936,1, + 0,0,0,934,932,1,0,0,0,934,935,1,0,0,0,935,947,1,0,0,0,936,934,1,0,0,0,937, + 940,3,98,41,0,938,940,3,92,38,0,939,937,1,0,0,0,939,938,1,0,0,0,940,942, + 1,0,0,0,941,943,3,100,42,0,942,941,1,0,0,0,943,944,1,0,0,0,944,942,1,0, + 0,0,944,945,1,0,0,0,945,947,1,0,0,0,946,930,1,0,0,0,946,939,1,0,0,0,947, + 187,1,0,0,0,948,950,3,94,39,0,949,951,3,96,40,0,950,949,1,0,0,0,951,952, + 1,0,0,0,952,950,1,0,0,0,952,953,1,0,0,0,953,954,1,0,0,0,954,955,3,94,39, + 0,955,189,1,0,0,0,956,957,3,188,86,0,957,191,1,0,0,0,958,959,3,60,22,0, + 959,960,1,0,0,0,960,961,6,88,11,0,961,193,1,0,0,0,962,963,3,62,23,0,963, + 964,1,0,0,0,964,965,6,89,11,0,965,195,1,0,0,0,966,967,3,64,24,0,967,968, + 1,0,0,0,968,969,6,90,11,0,969,197,1,0,0,0,970,971,3,80,32,0,971,972,1,0, + 0,0,972,973,6,91,14,0,973,974,6,91,15,0,974,199,1,0,0,0,975,976,3,182,83, + 0,976,977,1,0,0,0,977,978,6,92,12,0,978,201,1,0,0,0,979,980,3,184,84,0, + 980,981,1,0,0,0,981,982,6,93,16,0,982,203,1,0,0,0,983,984,3,368,176,0,984, + 985,1,0,0,0,985,986,6,94,17,0,986,205,1,0,0,0,987,988,3,118,51,0,988,989, + 1,0,0,0,989,990,6,95,18,0,990,207,1,0,0,0,991,992,3,114,49,0,992,993,1, + 0,0,0,993,994,6,96,19,0,994,209,1,0,0,0,995,996,7,16,0,0,996,997,7,3,0, + 0,997,998,7,5,0,0,998,999,7,12,0,0,999,1000,7,0,0,0,1000,1001,7,12,0,0, + 1001,1002,7,5,0,0,1002,1003,7,12,0,0,1003,211,1,0,0,0,1004,1005,3,68,26, + 0,1005,1006,1,0,0,0,1006,1007,6,98,20,0,1007,213,1,0,0,0,1008,1009,3,102, + 43,0,1009,1010,1,0,0,0,1010,1011,6,99,21,0,1011,215,1,0,0,0,1012,1013,3, + 60,22,0,1013,1014,1,0,0,0,1014,1015,6,100,11,0,1015,217,1,0,0,0,1016,1017, + 3,62,23,0,1017,1018,1,0,0,0,1018,1019,6,101,11,0,1019,219,1,0,0,0,1020, + 1021,3,64,24,0,1021,1022,1,0,0,0,1022,1023,6,102,11,0,1023,221,1,0,0,0, + 1024,1025,3,80,32,0,1025,1026,1,0,0,0,1026,1027,6,103,14,0,1027,1028,6, + 103,15,0,1028,223,1,0,0,0,1029,1030,3,122,53,0,1030,1031,1,0,0,0,1031,1032, + 6,104,22,0,1032,225,1,0,0,0,1033,1034,3,118,51,0,1034,1035,1,0,0,0,1035, + 1036,6,105,18,0,1036,227,1,0,0,0,1037,1042,3,84,34,0,1038,1042,3,82,33, + 0,1039,1042,3,98,41,0,1040,1042,3,174,79,0,1041,1037,1,0,0,0,1041,1038, + 1,0,0,0,1041,1039,1,0,0,0,1041,1040,1,0,0,0,1042,229,1,0,0,0,1043,1046, + 3,84,34,0,1044,1046,3,174,79,0,1045,1043,1,0,0,0,1045,1044,1,0,0,0,1046, + 1050,1,0,0,0,1047,1049,3,228,106,0,1048,1047,1,0,0,0,1049,1052,1,0,0,0, + 1050,1048,1,0,0,0,1050,1051,1,0,0,0,1051,1063,1,0,0,0,1052,1050,1,0,0,0, + 1053,1056,3,98,41,0,1054,1056,3,92,38,0,1055,1053,1,0,0,0,1055,1054,1,0, + 0,0,1056,1058,1,0,0,0,1057,1059,3,228,106,0,1058,1057,1,0,0,0,1059,1060, + 1,0,0,0,1060,1058,1,0,0,0,1060,1061,1,0,0,0,1061,1063,1,0,0,0,1062,1045, + 1,0,0,0,1062,1055,1,0,0,0,1063,231,1,0,0,0,1064,1067,3,230,107,0,1065,1067, + 3,188,86,0,1066,1064,1,0,0,0,1066,1065,1,0,0,0,1067,1068,1,0,0,0,1068,1066, + 1,0,0,0,1068,1069,1,0,0,0,1069,233,1,0,0,0,1070,1071,3,60,22,0,1071,1072, + 1,0,0,0,1072,1073,6,109,11,0,1073,235,1,0,0,0,1074,1075,3,62,23,0,1075, + 1076,1,0,0,0,1076,1077,6,110,11,0,1077,237,1,0,0,0,1078,1079,3,64,24,0, + 1079,1080,1,0,0,0,1080,1081,6,111,11,0,1081,239,1,0,0,0,1082,1083,3,80, + 32,0,1083,1084,1,0,0,0,1084,1085,6,112,14,0,1085,1086,6,112,15,0,1086,241, + 1,0,0,0,1087,1088,3,114,49,0,1088,1089,1,0,0,0,1089,1090,6,113,19,0,1090, + 243,1,0,0,0,1091,1092,3,118,51,0,1092,1093,1,0,0,0,1093,1094,6,114,18,0, + 1094,245,1,0,0,0,1095,1096,3,122,53,0,1096,1097,1,0,0,0,1097,1098,6,115, + 22,0,1098,247,1,0,0,0,1099,1100,7,12,0,0,1100,1101,7,2,0,0,1101,249,1,0, + 0,0,1102,1103,3,232,108,0,1103,1104,1,0,0,0,1104,1105,6,117,23,0,1105,251, + 1,0,0,0,1106,1107,3,60,22,0,1107,1108,1,0,0,0,1108,1109,6,118,11,0,1109, + 253,1,0,0,0,1110,1111,3,62,23,0,1111,1112,1,0,0,0,1112,1113,6,119,11,0, + 1113,255,1,0,0,0,1114,1115,3,64,24,0,1115,1116,1,0,0,0,1116,1117,6,120, + 11,0,1117,257,1,0,0,0,1118,1119,3,80,32,0,1119,1120,1,0,0,0,1120,1121,6, + 121,14,0,1121,1122,6,121,15,0,1122,259,1,0,0,0,1123,1124,3,182,83,0,1124, + 1125,1,0,0,0,1125,1126,6,122,12,0,1126,1127,6,122,24,0,1127,261,1,0,0,0, + 1128,1129,7,7,0,0,1129,1130,7,9,0,0,1130,1131,1,0,0,0,1131,1132,6,123,25, + 0,1132,263,1,0,0,0,1133,1134,7,20,0,0,1134,1135,7,1,0,0,1135,1136,7,5,0, + 0,1136,1137,7,10,0,0,1137,1138,1,0,0,0,1138,1139,6,124,25,0,1139,265,1, + 0,0,0,1140,1141,8,34,0,0,1141,267,1,0,0,0,1142,1144,3,266,125,0,1143,1142, + 1,0,0,0,1144,1145,1,0,0,0,1145,1143,1,0,0,0,1145,1146,1,0,0,0,1146,1147, + 1,0,0,0,1147,1148,3,368,176,0,1148,1150,1,0,0,0,1149,1143,1,0,0,0,1149, + 1150,1,0,0,0,1150,1152,1,0,0,0,1151,1153,3,266,125,0,1152,1151,1,0,0,0, + 1153,1154,1,0,0,0,1154,1152,1,0,0,0,1154,1155,1,0,0,0,1155,269,1,0,0,0, + 1156,1157,3,268,126,0,1157,1158,1,0,0,0,1158,1159,6,127,26,0,1159,271,1, + 0,0,0,1160,1161,3,60,22,0,1161,1162,1,0,0,0,1162,1163,6,128,11,0,1163,273, + 1,0,0,0,1164,1165,3,62,23,0,1165,1166,1,0,0,0,1166,1167,6,129,11,0,1167, + 275,1,0,0,0,1168,1169,3,64,24,0,1169,1170,1,0,0,0,1170,1171,6,130,11,0, + 1171,277,1,0,0,0,1172,1173,3,80,32,0,1173,1174,1,0,0,0,1174,1175,6,131, + 14,0,1175,1176,6,131,15,0,1176,1177,6,131,15,0,1177,279,1,0,0,0,1178,1179, + 3,114,49,0,1179,1180,1,0,0,0,1180,1181,6,132,19,0,1181,281,1,0,0,0,1182, + 1183,3,118,51,0,1183,1184,1,0,0,0,1184,1185,6,133,18,0,1185,283,1,0,0,0, + 1186,1187,3,122,53,0,1187,1188,1,0,0,0,1188,1189,6,134,22,0,1189,285,1, + 0,0,0,1190,1191,3,264,124,0,1191,1192,1,0,0,0,1192,1193,6,135,27,0,1193, + 287,1,0,0,0,1194,1195,3,232,108,0,1195,1196,1,0,0,0,1196,1197,6,136,23, + 0,1197,289,1,0,0,0,1198,1199,3,190,87,0,1199,1200,1,0,0,0,1200,1201,6,137, + 28,0,1201,291,1,0,0,0,1202,1203,3,60,22,0,1203,1204,1,0,0,0,1204,1205,6, + 138,11,0,1205,293,1,0,0,0,1206,1207,3,62,23,0,1207,1208,1,0,0,0,1208,1209, + 6,139,11,0,1209,295,1,0,0,0,1210,1211,3,64,24,0,1211,1212,1,0,0,0,1212, + 1213,6,140,11,0,1213,297,1,0,0,0,1214,1215,3,80,32,0,1215,1216,1,0,0,0, + 1216,1217,6,141,14,0,1217,1218,6,141,15,0,1218,299,1,0,0,0,1219,1220,3, + 368,176,0,1220,1221,1,0,0,0,1221,1222,6,142,17,0,1222,301,1,0,0,0,1223, + 1224,3,118,51,0,1224,1225,1,0,0,0,1225,1226,6,143,18,0,1226,303,1,0,0,0, + 1227,1228,3,122,53,0,1228,1229,1,0,0,0,1229,1230,6,144,22,0,1230,305,1, + 0,0,0,1231,1232,3,262,123,0,1232,1233,1,0,0,0,1233,1234,6,145,29,0,1234, + 1235,6,145,30,0,1235,307,1,0,0,0,1236,1237,3,68,26,0,1237,1238,1,0,0,0, + 1238,1239,6,146,20,0,1239,309,1,0,0,0,1240,1241,3,102,43,0,1241,1242,1, + 0,0,0,1242,1243,6,147,21,0,1243,311,1,0,0,0,1244,1245,3,60,22,0,1245,1246, + 1,0,0,0,1246,1247,6,148,11,0,1247,313,1,0,0,0,1248,1249,3,62,23,0,1249, + 1250,1,0,0,0,1250,1251,6,149,11,0,1251,315,1,0,0,0,1252,1253,3,64,24,0, + 1253,1254,1,0,0,0,1254,1255,6,150,11,0,1255,317,1,0,0,0,1256,1257,3,80, + 32,0,1257,1258,1,0,0,0,1258,1259,6,151,14,0,1259,1260,6,151,15,0,1260,1261, + 6,151,15,0,1261,319,1,0,0,0,1262,1263,3,118,51,0,1263,1264,1,0,0,0,1264, + 1265,6,152,18,0,1265,321,1,0,0,0,1266,1267,3,122,53,0,1267,1268,1,0,0,0, + 1268,1269,6,153,22,0,1269,323,1,0,0,0,1270,1271,3,232,108,0,1271,1272,1, + 0,0,0,1272,1273,6,154,23,0,1273,325,1,0,0,0,1274,1275,3,60,22,0,1275,1276, + 1,0,0,0,1276,1277,6,155,11,0,1277,327,1,0,0,0,1278,1279,3,62,23,0,1279, + 1280,1,0,0,0,1280,1281,6,156,11,0,1281,329,1,0,0,0,1282,1283,3,64,24,0, + 1283,1284,1,0,0,0,1284,1285,6,157,11,0,1285,331,1,0,0,0,1286,1287,3,80, + 32,0,1287,1288,1,0,0,0,1288,1289,6,158,14,0,1289,1290,6,158,15,0,1290,333, + 1,0,0,0,1291,1292,3,122,53,0,1292,1293,1,0,0,0,1293,1294,6,159,22,0,1294, + 335,1,0,0,0,1295,1296,3,190,87,0,1296,1297,1,0,0,0,1297,1298,6,160,28,0, + 1298,337,1,0,0,0,1299,1300,3,186,85,0,1300,1301,1,0,0,0,1301,1302,6,161, + 31,0,1302,339,1,0,0,0,1303,1304,3,60,22,0,1304,1305,1,0,0,0,1305,1306,6, + 162,11,0,1306,341,1,0,0,0,1307,1308,3,62,23,0,1308,1309,1,0,0,0,1309,1310, + 6,163,11,0,1310,343,1,0,0,0,1311,1312,3,64,24,0,1312,1313,1,0,0,0,1313, + 1314,6,164,11,0,1314,345,1,0,0,0,1315,1316,3,80,32,0,1316,1317,1,0,0,0, + 1317,1318,6,165,14,0,1318,1319,6,165,15,0,1319,347,1,0,0,0,1320,1321,7, + 1,0,0,1321,1322,7,9,0,0,1322,1323,7,15,0,0,1323,1324,7,7,0,0,1324,349,1, + 0,0,0,1325,1326,3,60,22,0,1326,1327,1,0,0,0,1327,1328,6,167,11,0,1328,351, + 1,0,0,0,1329,1330,3,62,23,0,1330,1331,1,0,0,0,1331,1332,6,168,11,0,1332, + 353,1,0,0,0,1333,1334,3,64,24,0,1334,1335,1,0,0,0,1335,1336,6,169,11,0, + 1336,355,1,0,0,0,1337,1338,3,80,32,0,1338,1339,1,0,0,0,1339,1340,6,170, + 14,0,1340,1341,6,170,15,0,1341,357,1,0,0,0,1342,1343,7,15,0,0,1343,1344, + 7,19,0,0,1344,1345,7,9,0,0,1345,1346,7,4,0,0,1346,1347,7,5,0,0,1347,1348, + 7,1,0,0,1348,1349,7,7,0,0,1349,1350,7,9,0,0,1350,1351,7,2,0,0,1351,359, + 1,0,0,0,1352,1353,3,60,22,0,1353,1354,1,0,0,0,1354,1355,6,172,11,0,1355, + 361,1,0,0,0,1356,1357,3,62,23,0,1357,1358,1,0,0,0,1358,1359,6,173,11,0, + 1359,363,1,0,0,0,1360,1361,3,64,24,0,1361,1362,1,0,0,0,1362,1363,6,174, + 11,0,1363,365,1,0,0,0,1364,1365,3,184,84,0,1365,1366,1,0,0,0,1366,1367, + 6,175,16,0,1367,1368,6,175,15,0,1368,367,1,0,0,0,1369,1370,5,58,0,0,1370, + 369,1,0,0,0,1371,1377,3,92,38,0,1372,1377,3,82,33,0,1373,1377,3,122,53, + 0,1374,1377,3,84,34,0,1375,1377,3,98,41,0,1376,1371,1,0,0,0,1376,1372,1, + 0,0,0,1376,1373,1,0,0,0,1376,1374,1,0,0,0,1376,1375,1,0,0,0,1377,1378,1, + 0,0,0,1378,1376,1,0,0,0,1378,1379,1,0,0,0,1379,371,1,0,0,0,1380,1381,3, + 60,22,0,1381,1382,1,0,0,0,1382,1383,6,178,11,0,1383,373,1,0,0,0,1384,1385, + 3,62,23,0,1385,1386,1,0,0,0,1386,1387,6,179,11,0,1387,375,1,0,0,0,1388, + 1389,3,64,24,0,1389,1390,1,0,0,0,1390,1391,6,180,11,0,1391,377,1,0,0,0, + 1392,1393,3,80,32,0,1393,1394,1,0,0,0,1394,1395,6,181,14,0,1395,1396,6, + 181,15,0,1396,379,1,0,0,0,1397,1398,3,68,26,0,1398,1399,1,0,0,0,1399,1400, + 6,182,20,0,1400,1401,6,182,15,0,1401,1402,6,182,32,0,1402,381,1,0,0,0,1403, + 1404,3,102,43,0,1404,1405,1,0,0,0,1405,1406,6,183,21,0,1406,1407,6,183, + 15,0,1407,1408,6,183,32,0,1408,383,1,0,0,0,1409,1410,3,60,22,0,1410,1411, + 1,0,0,0,1411,1412,6,184,11,0,1412,385,1,0,0,0,1413,1414,3,62,23,0,1414, + 1415,1,0,0,0,1415,1416,6,185,11,0,1416,387,1,0,0,0,1417,1418,3,64,24,0, + 1418,1419,1,0,0,0,1419,1420,6,186,11,0,1420,389,1,0,0,0,1421,1422,3,368, + 176,0,1422,1423,1,0,0,0,1423,1424,6,187,17,0,1424,1425,6,187,15,0,1425, + 1426,6,187,7,0,1426,391,1,0,0,0,1427,1428,3,118,51,0,1428,1429,1,0,0,0, + 1429,1430,6,188,18,0,1430,1431,6,188,15,0,1431,1432,6,188,7,0,1432,393, + 1,0,0,0,1433,1434,3,60,22,0,1434,1435,1,0,0,0,1435,1436,6,189,11,0,1436, + 395,1,0,0,0,1437,1438,3,62,23,0,1438,1439,1,0,0,0,1439,1440,6,190,11,0, + 1440,397,1,0,0,0,1441,1442,3,64,24,0,1442,1443,1,0,0,0,1443,1444,6,191, + 11,0,1444,399,1,0,0,0,1445,1446,3,190,87,0,1446,1447,1,0,0,0,1447,1448, + 6,192,15,0,1448,1449,6,192,0,0,1449,1450,6,192,28,0,1450,401,1,0,0,0,1451, + 1452,3,186,85,0,1452,1453,1,0,0,0,1453,1454,6,193,15,0,1454,1455,6,193, + 0,0,1455,1456,6,193,31,0,1456,403,1,0,0,0,1457,1458,3,108,46,0,1458,1459, + 1,0,0,0,1459,1460,6,194,15,0,1460,1461,6,194,0,0,1461,1462,6,194,33,0,1462, + 405,1,0,0,0,1463,1464,3,80,32,0,1464,1465,1,0,0,0,1465,1466,6,195,14,0, + 1466,1467,6,195,15,0,1467,407,1,0,0,0,65,0,1,2,3,4,5,6,7,8,9,10,11,12,13, + 14,15,588,598,602,605,614,616,627,634,639,678,683,692,699,704,706,717,725, + 728,730,735,740,746,753,758,764,767,775,779,909,916,918,934,939,944,946, + 952,1041,1045,1050,1055,1060,1062,1066,1068,1145,1149,1154,1376,1378,34, + 5,2,0,5,4,0,5,6,0,5,1,0,5,3,0,5,8,0,5,12,0,5,14,0,5,10,0,5,5,0,5,11,0,0, + 1,0,7,71,0,5,0,0,7,30,0,4,0,0,7,72,0,7,116,0,7,39,0,7,37,0,7,26,0,7,31, + 0,7,41,0,7,82,0,5,13,0,5,7,0,7,92,0,7,91,0,7,74,0,7,90,0,5,9,0,7,73,0,5, + 15,0,7,34,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 5d243a504386c..d7e78ceda4578 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_parser.g4 +++ b/packages/kbn-esql-ast/src/antlr/esql_parser.g4 @@ -52,6 +52,7 @@ processingCommand | grokCommand | enrichCommand | mvExpandCommand + | matchCommand ; whereCommand @@ -75,7 +76,7 @@ regexBooleanExpression ; matchBooleanExpression - : qualifiedName MATCH queryString=string + : qualifiedName MATCH_OPERATOR queryString=string ; valueExpression @@ -305,4 +306,12 @@ enrichWithClause lookupCommand : LOOKUP tableName=indexPattern ON matchFields=qualifiedNamePatterns + ; + +matchCommand + : MATCH matchQuery + ; + +matchQuery + : QUOTED_STRING ; \ No newline at end of file diff --git a/packages/kbn-esql-ast/src/antlr/esql_parser.interp b/packages/kbn-esql-ast/src/antlr/esql_parser.interp index b52db660b55ee..f415b4fce3170 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_parser.interp +++ b/packages/kbn-esql-ast/src/antlr/esql_parser.interp @@ -28,6 +28,7 @@ null null null null +null '|' null null @@ -47,7 +48,7 @@ null 'last' 'like' '(' -'match' +null 'not' 'null' 'nulls' @@ -148,6 +149,7 @@ SHOW SORT STATS WHERE +MATCH UNKNOWN_CMD LINE_COMMENT MULTILINE_COMMENT @@ -175,7 +177,7 @@ IS LAST LIKE LP -MATCH +MATCH_OPERATOR NOT NULL NULLS @@ -314,7 +316,9 @@ metaCommand enrichCommand enrichWithClause lookupCommand +matchCommand +matchQuery atn: -[4, 1, 125, 574, 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, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 128, 8, 1, 10, 1, 12, 1, 131, 9, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 139, 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, 1, 3, 3, 3, 155, 8, 3, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 168, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 175, 8, 5, 10, 5, 12, 5, 178, 9, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 185, 8, 5, 1, 5, 1, 5, 3, 5, 189, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 197, 8, 5, 10, 5, 12, 5, 200, 9, 5, 1, 6, 1, 6, 3, 6, 204, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 211, 8, 6, 1, 6, 1, 6, 1, 6, 3, 6, 216, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 227, 8, 8, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 233, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9, 241, 8, 9, 10, 9, 12, 9, 244, 9, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 254, 8, 10, 1, 10, 1, 10, 1, 10, 5, 10, 259, 8, 10, 10, 10, 12, 10, 262, 9, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 5, 11, 270, 8, 11, 10, 11, 12, 11, 273, 9, 11, 3, 11, 275, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 5, 14, 287, 8, 14, 10, 14, 12, 14, 290, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 297, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 303, 8, 16, 10, 16, 12, 16, 306, 9, 16, 1, 16, 3, 16, 309, 8, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 316, 8, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 3, 20, 324, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 330, 8, 21, 10, 21, 12, 21, 333, 9, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 343, 8, 23, 10, 23, 12, 23, 346, 9, 23, 1, 23, 3, 23, 349, 8, 23, 1, 23, 1, 23, 3, 23, 353, 8, 23, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 3, 25, 360, 8, 25, 1, 25, 1, 25, 3, 25, 364, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 370, 8, 26, 1, 27, 1, 27, 1, 27, 5, 27, 375, 8, 27, 10, 27, 12, 27, 378, 9, 27, 1, 28, 1, 28, 1, 28, 5, 28, 383, 8, 28, 10, 28, 12, 28, 386, 9, 28, 1, 29, 1, 29, 1, 29, 5, 29, 391, 8, 29, 10, 29, 12, 29, 394, 9, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 413, 8, 32, 10, 32, 12, 32, 416, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 424, 8, 32, 10, 32, 12, 32, 427, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 435, 8, 32, 10, 32, 12, 32, 438, 9, 32, 1, 32, 1, 32, 3, 32, 442, 8, 32, 1, 33, 1, 33, 3, 33, 446, 8, 33, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 5, 35, 455, 8, 35, 10, 35, 12, 35, 458, 9, 35, 1, 36, 1, 36, 3, 36, 462, 8, 36, 1, 36, 1, 36, 3, 36, 466, 8, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 478, 8, 39, 10, 39, 12, 39, 481, 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 491, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 5, 44, 503, 8, 44, 10, 44, 12, 44, 506, 9, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 3, 47, 516, 8, 47, 1, 48, 3, 48, 519, 8, 48, 1, 48, 1, 48, 1, 49, 3, 49, 524, 8, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 3, 56, 549, 8, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 555, 8, 56, 10, 56, 12, 56, 558, 9, 56, 3, 56, 560, 8, 56, 1, 57, 1, 57, 1, 57, 3, 57, 565, 8, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 0, 4, 2, 10, 18, 20, 59, 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, 108, 110, 112, 114, 116, 0, 8, 1, 0, 64, 65, 1, 0, 66, 68, 2, 0, 25, 25, 30, 30, 1, 0, 72, 73, 2, 0, 35, 35, 39, 39, 2, 0, 42, 42, 45, 45, 2, 0, 41, 41, 56, 56, 2, 0, 57, 57, 59, 63, 599, 0, 118, 1, 0, 0, 0, 2, 121, 1, 0, 0, 0, 4, 138, 1, 0, 0, 0, 6, 154, 1, 0, 0, 0, 8, 156, 1, 0, 0, 0, 10, 188, 1, 0, 0, 0, 12, 215, 1, 0, 0, 0, 14, 217, 1, 0, 0, 0, 16, 226, 1, 0, 0, 0, 18, 232, 1, 0, 0, 0, 20, 253, 1, 0, 0, 0, 22, 263, 1, 0, 0, 0, 24, 278, 1, 0, 0, 0, 26, 280, 1, 0, 0, 0, 28, 283, 1, 0, 0, 0, 30, 296, 1, 0, 0, 0, 32, 298, 1, 0, 0, 0, 34, 315, 1, 0, 0, 0, 36, 317, 1, 0, 0, 0, 38, 319, 1, 0, 0, 0, 40, 323, 1, 0, 0, 0, 42, 325, 1, 0, 0, 0, 44, 334, 1, 0, 0, 0, 46, 338, 1, 0, 0, 0, 48, 354, 1, 0, 0, 0, 50, 357, 1, 0, 0, 0, 52, 365, 1, 0, 0, 0, 54, 371, 1, 0, 0, 0, 56, 379, 1, 0, 0, 0, 58, 387, 1, 0, 0, 0, 60, 395, 1, 0, 0, 0, 62, 397, 1, 0, 0, 0, 64, 441, 1, 0, 0, 0, 66, 445, 1, 0, 0, 0, 68, 447, 1, 0, 0, 0, 70, 450, 1, 0, 0, 0, 72, 459, 1, 0, 0, 0, 74, 467, 1, 0, 0, 0, 76, 470, 1, 0, 0, 0, 78, 473, 1, 0, 0, 0, 80, 482, 1, 0, 0, 0, 82, 486, 1, 0, 0, 0, 84, 492, 1, 0, 0, 0, 86, 496, 1, 0, 0, 0, 88, 499, 1, 0, 0, 0, 90, 507, 1, 0, 0, 0, 92, 511, 1, 0, 0, 0, 94, 515, 1, 0, 0, 0, 96, 518, 1, 0, 0, 0, 98, 523, 1, 0, 0, 0, 100, 527, 1, 0, 0, 0, 102, 529, 1, 0, 0, 0, 104, 531, 1, 0, 0, 0, 106, 534, 1, 0, 0, 0, 108, 538, 1, 0, 0, 0, 110, 541, 1, 0, 0, 0, 112, 544, 1, 0, 0, 0, 114, 564, 1, 0, 0, 0, 116, 568, 1, 0, 0, 0, 118, 119, 3, 2, 1, 0, 119, 120, 5, 0, 0, 1, 120, 1, 1, 0, 0, 0, 121, 122, 6, 1, -1, 0, 122, 123, 3, 4, 2, 0, 123, 129, 1, 0, 0, 0, 124, 125, 10, 1, 0, 0, 125, 126, 5, 29, 0, 0, 126, 128, 3, 6, 3, 0, 127, 124, 1, 0, 0, 0, 128, 131, 1, 0, 0, 0, 129, 127, 1, 0, 0, 0, 129, 130, 1, 0, 0, 0, 130, 3, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0, 132, 139, 3, 104, 52, 0, 133, 139, 3, 32, 16, 0, 134, 139, 3, 26, 13, 0, 135, 139, 3, 46, 23, 0, 136, 139, 3, 108, 54, 0, 137, 139, 3, 110, 55, 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, 5, 1, 0, 0, 0, 140, 155, 3, 48, 24, 0, 141, 155, 3, 52, 26, 0, 142, 155, 3, 68, 34, 0, 143, 155, 3, 116, 58, 0, 144, 155, 3, 74, 37, 0, 145, 155, 3, 70, 35, 0, 146, 155, 3, 50, 25, 0, 147, 155, 3, 8, 4, 0, 148, 155, 3, 76, 38, 0, 149, 155, 3, 78, 39, 0, 150, 155, 3, 82, 41, 0, 151, 155, 3, 84, 42, 0, 152, 155, 3, 112, 56, 0, 153, 155, 3, 86, 43, 0, 154, 140, 1, 0, 0, 0, 154, 141, 1, 0, 0, 0, 154, 142, 1, 0, 0, 0, 154, 143, 1, 0, 0, 0, 154, 144, 1, 0, 0, 0, 154, 145, 1, 0, 0, 0, 154, 146, 1, 0, 0, 0, 154, 147, 1, 0, 0, 0, 154, 148, 1, 0, 0, 0, 154, 149, 1, 0, 0, 0, 154, 150, 1, 0, 0, 0, 154, 151, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 154, 153, 1, 0, 0, 0, 155, 7, 1, 0, 0, 0, 156, 157, 5, 20, 0, 0, 157, 158, 3, 10, 5, 0, 158, 9, 1, 0, 0, 0, 159, 160, 6, 5, -1, 0, 160, 161, 5, 49, 0, 0, 161, 189, 3, 10, 5, 8, 162, 189, 3, 16, 8, 0, 163, 189, 3, 12, 6, 0, 164, 189, 3, 14, 7, 0, 165, 167, 3, 16, 8, 0, 166, 168, 5, 49, 0, 0, 167, 166, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0, 168, 169, 1, 0, 0, 0, 169, 170, 5, 43, 0, 0, 170, 171, 5, 47, 0, 0, 171, 176, 3, 16, 8, 0, 172, 173, 5, 38, 0, 0, 173, 175, 3, 16, 8, 0, 174, 172, 1, 0, 0, 0, 175, 178, 1, 0, 0, 0, 176, 174, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 179, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 179, 180, 5, 55, 0, 0, 180, 189, 1, 0, 0, 0, 181, 182, 3, 16, 8, 0, 182, 184, 5, 44, 0, 0, 183, 185, 5, 49, 0, 0, 184, 183, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 186, 1, 0, 0, 0, 186, 187, 5, 50, 0, 0, 187, 189, 1, 0, 0, 0, 188, 159, 1, 0, 0, 0, 188, 162, 1, 0, 0, 0, 188, 163, 1, 0, 0, 0, 188, 164, 1, 0, 0, 0, 188, 165, 1, 0, 0, 0, 188, 181, 1, 0, 0, 0, 189, 198, 1, 0, 0, 0, 190, 191, 10, 4, 0, 0, 191, 192, 5, 34, 0, 0, 192, 197, 3, 10, 5, 5, 193, 194, 10, 3, 0, 0, 194, 195, 5, 52, 0, 0, 195, 197, 3, 10, 5, 4, 196, 190, 1, 0, 0, 0, 196, 193, 1, 0, 0, 0, 197, 200, 1, 0, 0, 0, 198, 196, 1, 0, 0, 0, 198, 199, 1, 0, 0, 0, 199, 11, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 201, 203, 3, 16, 8, 0, 202, 204, 5, 49, 0, 0, 203, 202, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 206, 5, 46, 0, 0, 206, 207, 3, 100, 50, 0, 207, 216, 1, 0, 0, 0, 208, 210, 3, 16, 8, 0, 209, 211, 5, 49, 0, 0, 210, 209, 1, 0, 0, 0, 210, 211, 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 213, 5, 54, 0, 0, 213, 214, 3, 100, 50, 0, 214, 216, 1, 0, 0, 0, 215, 201, 1, 0, 0, 0, 215, 208, 1, 0, 0, 0, 216, 13, 1, 0, 0, 0, 217, 218, 3, 54, 27, 0, 218, 219, 5, 48, 0, 0, 219, 220, 3, 100, 50, 0, 220, 15, 1, 0, 0, 0, 221, 227, 3, 18, 9, 0, 222, 223, 3, 18, 9, 0, 223, 224, 3, 102, 51, 0, 224, 225, 3, 18, 9, 0, 225, 227, 1, 0, 0, 0, 226, 221, 1, 0, 0, 0, 226, 222, 1, 0, 0, 0, 227, 17, 1, 0, 0, 0, 228, 229, 6, 9, -1, 0, 229, 233, 3, 20, 10, 0, 230, 231, 7, 0, 0, 0, 231, 233, 3, 18, 9, 3, 232, 228, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 233, 242, 1, 0, 0, 0, 234, 235, 10, 2, 0, 0, 235, 236, 7, 1, 0, 0, 236, 241, 3, 18, 9, 3, 237, 238, 10, 1, 0, 0, 238, 239, 7, 0, 0, 0, 239, 241, 3, 18, 9, 2, 240, 234, 1, 0, 0, 0, 240, 237, 1, 0, 0, 0, 241, 244, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 19, 1, 0, 0, 0, 244, 242, 1, 0, 0, 0, 245, 246, 6, 10, -1, 0, 246, 254, 3, 64, 32, 0, 247, 254, 3, 54, 27, 0, 248, 254, 3, 22, 11, 0, 249, 250, 5, 47, 0, 0, 250, 251, 3, 10, 5, 0, 251, 252, 5, 55, 0, 0, 252, 254, 1, 0, 0, 0, 253, 245, 1, 0, 0, 0, 253, 247, 1, 0, 0, 0, 253, 248, 1, 0, 0, 0, 253, 249, 1, 0, 0, 0, 254, 260, 1, 0, 0, 0, 255, 256, 10, 1, 0, 0, 256, 257, 5, 37, 0, 0, 257, 259, 3, 24, 12, 0, 258, 255, 1, 0, 0, 0, 259, 262, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, 21, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 263, 264, 3, 60, 30, 0, 264, 274, 5, 47, 0, 0, 265, 275, 5, 66, 0, 0, 266, 271, 3, 10, 5, 0, 267, 268, 5, 38, 0, 0, 268, 270, 3, 10, 5, 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, 275, 1, 0, 0, 0, 273, 271, 1, 0, 0, 0, 274, 265, 1, 0, 0, 0, 274, 266, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 277, 5, 55, 0, 0, 277, 23, 1, 0, 0, 0, 278, 279, 3, 60, 30, 0, 279, 25, 1, 0, 0, 0, 280, 281, 5, 16, 0, 0, 281, 282, 3, 28, 14, 0, 282, 27, 1, 0, 0, 0, 283, 288, 3, 30, 15, 0, 284, 285, 5, 38, 0, 0, 285, 287, 3, 30, 15, 0, 286, 284, 1, 0, 0, 0, 287, 290, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 29, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 291, 297, 3, 10, 5, 0, 292, 293, 3, 54, 27, 0, 293, 294, 5, 36, 0, 0, 294, 295, 3, 10, 5, 0, 295, 297, 1, 0, 0, 0, 296, 291, 1, 0, 0, 0, 296, 292, 1, 0, 0, 0, 297, 31, 1, 0, 0, 0, 298, 299, 5, 6, 0, 0, 299, 304, 3, 34, 17, 0, 300, 301, 5, 38, 0, 0, 301, 303, 3, 34, 17, 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, 308, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 307, 309, 3, 40, 20, 0, 308, 307, 1, 0, 0, 0, 308, 309, 1, 0, 0, 0, 309, 33, 1, 0, 0, 0, 310, 311, 3, 36, 18, 0, 311, 312, 5, 115, 0, 0, 312, 313, 3, 38, 19, 0, 313, 316, 1, 0, 0, 0, 314, 316, 3, 38, 19, 0, 315, 310, 1, 0, 0, 0, 315, 314, 1, 0, 0, 0, 316, 35, 1, 0, 0, 0, 317, 318, 5, 25, 0, 0, 318, 37, 1, 0, 0, 0, 319, 320, 7, 2, 0, 0, 320, 39, 1, 0, 0, 0, 321, 324, 3, 42, 21, 0, 322, 324, 3, 44, 22, 0, 323, 321, 1, 0, 0, 0, 323, 322, 1, 0, 0, 0, 324, 41, 1, 0, 0, 0, 325, 326, 5, 77, 0, 0, 326, 331, 5, 25, 0, 0, 327, 328, 5, 38, 0, 0, 328, 330, 5, 25, 0, 0, 329, 327, 1, 0, 0, 0, 330, 333, 1, 0, 0, 0, 331, 329, 1, 0, 0, 0, 331, 332, 1, 0, 0, 0, 332, 43, 1, 0, 0, 0, 333, 331, 1, 0, 0, 0, 334, 335, 5, 70, 0, 0, 335, 336, 3, 42, 21, 0, 336, 337, 5, 71, 0, 0, 337, 45, 1, 0, 0, 0, 338, 339, 5, 13, 0, 0, 339, 344, 3, 34, 17, 0, 340, 341, 5, 38, 0, 0, 341, 343, 3, 34, 17, 0, 342, 340, 1, 0, 0, 0, 343, 346, 1, 0, 0, 0, 344, 342, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 348, 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 347, 349, 3, 28, 14, 0, 348, 347, 1, 0, 0, 0, 348, 349, 1, 0, 0, 0, 349, 352, 1, 0, 0, 0, 350, 351, 5, 33, 0, 0, 351, 353, 3, 28, 14, 0, 352, 350, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 47, 1, 0, 0, 0, 354, 355, 5, 4, 0, 0, 355, 356, 3, 28, 14, 0, 356, 49, 1, 0, 0, 0, 357, 359, 5, 19, 0, 0, 358, 360, 3, 28, 14, 0, 359, 358, 1, 0, 0, 0, 359, 360, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361, 362, 5, 33, 0, 0, 362, 364, 3, 28, 14, 0, 363, 361, 1, 0, 0, 0, 363, 364, 1, 0, 0, 0, 364, 51, 1, 0, 0, 0, 365, 366, 5, 8, 0, 0, 366, 369, 3, 28, 14, 0, 367, 368, 5, 33, 0, 0, 368, 370, 3, 28, 14, 0, 369, 367, 1, 0, 0, 0, 369, 370, 1, 0, 0, 0, 370, 53, 1, 0, 0, 0, 371, 376, 3, 60, 30, 0, 372, 373, 5, 40, 0, 0, 373, 375, 3, 60, 30, 0, 374, 372, 1, 0, 0, 0, 375, 378, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 55, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 379, 384, 3, 62, 31, 0, 380, 381, 5, 40, 0, 0, 381, 383, 3, 62, 31, 0, 382, 380, 1, 0, 0, 0, 383, 386, 1, 0, 0, 0, 384, 382, 1, 0, 0, 0, 384, 385, 1, 0, 0, 0, 385, 57, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0, 387, 392, 3, 56, 28, 0, 388, 389, 5, 38, 0, 0, 389, 391, 3, 56, 28, 0, 390, 388, 1, 0, 0, 0, 391, 394, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 59, 1, 0, 0, 0, 394, 392, 1, 0, 0, 0, 395, 396, 7, 3, 0, 0, 396, 61, 1, 0, 0, 0, 397, 398, 5, 81, 0, 0, 398, 63, 1, 0, 0, 0, 399, 442, 5, 50, 0, 0, 400, 401, 3, 98, 49, 0, 401, 402, 5, 72, 0, 0, 402, 442, 1, 0, 0, 0, 403, 442, 3, 96, 48, 0, 404, 442, 3, 98, 49, 0, 405, 442, 3, 92, 46, 0, 406, 442, 3, 66, 33, 0, 407, 442, 3, 100, 50, 0, 408, 409, 5, 70, 0, 0, 409, 414, 3, 94, 47, 0, 410, 411, 5, 38, 0, 0, 411, 413, 3, 94, 47, 0, 412, 410, 1, 0, 0, 0, 413, 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 417, 1, 0, 0, 0, 416, 414, 1, 0, 0, 0, 417, 418, 5, 71, 0, 0, 418, 442, 1, 0, 0, 0, 419, 420, 5, 70, 0, 0, 420, 425, 3, 92, 46, 0, 421, 422, 5, 38, 0, 0, 422, 424, 3, 92, 46, 0, 423, 421, 1, 0, 0, 0, 424, 427, 1, 0, 0, 0, 425, 423, 1, 0, 0, 0, 425, 426, 1, 0, 0, 0, 426, 428, 1, 0, 0, 0, 427, 425, 1, 0, 0, 0, 428, 429, 5, 71, 0, 0, 429, 442, 1, 0, 0, 0, 430, 431, 5, 70, 0, 0, 431, 436, 3, 100, 50, 0, 432, 433, 5, 38, 0, 0, 433, 435, 3, 100, 50, 0, 434, 432, 1, 0, 0, 0, 435, 438, 1, 0, 0, 0, 436, 434, 1, 0, 0, 0, 436, 437, 1, 0, 0, 0, 437, 439, 1, 0, 0, 0, 438, 436, 1, 0, 0, 0, 439, 440, 5, 71, 0, 0, 440, 442, 1, 0, 0, 0, 441, 399, 1, 0, 0, 0, 441, 400, 1, 0, 0, 0, 441, 403, 1, 0, 0, 0, 441, 404, 1, 0, 0, 0, 441, 405, 1, 0, 0, 0, 441, 406, 1, 0, 0, 0, 441, 407, 1, 0, 0, 0, 441, 408, 1, 0, 0, 0, 441, 419, 1, 0, 0, 0, 441, 430, 1, 0, 0, 0, 442, 65, 1, 0, 0, 0, 443, 446, 5, 53, 0, 0, 444, 446, 5, 69, 0, 0, 445, 443, 1, 0, 0, 0, 445, 444, 1, 0, 0, 0, 446, 67, 1, 0, 0, 0, 447, 448, 5, 10, 0, 0, 448, 449, 5, 31, 0, 0, 449, 69, 1, 0, 0, 0, 450, 451, 5, 18, 0, 0, 451, 456, 3, 72, 36, 0, 452, 453, 5, 38, 0, 0, 453, 455, 3, 72, 36, 0, 454, 452, 1, 0, 0, 0, 455, 458, 1, 0, 0, 0, 456, 454, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 71, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 459, 461, 3, 10, 5, 0, 460, 462, 7, 4, 0, 0, 461, 460, 1, 0, 0, 0, 461, 462, 1, 0, 0, 0, 462, 465, 1, 0, 0, 0, 463, 464, 5, 51, 0, 0, 464, 466, 7, 5, 0, 0, 465, 463, 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 73, 1, 0, 0, 0, 467, 468, 5, 9, 0, 0, 468, 469, 3, 58, 29, 0, 469, 75, 1, 0, 0, 0, 470, 471, 5, 2, 0, 0, 471, 472, 3, 58, 29, 0, 472, 77, 1, 0, 0, 0, 473, 474, 5, 15, 0, 0, 474, 479, 3, 80, 40, 0, 475, 476, 5, 38, 0, 0, 476, 478, 3, 80, 40, 0, 477, 475, 1, 0, 0, 0, 478, 481, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 79, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 483, 3, 56, 28, 0, 483, 484, 5, 85, 0, 0, 484, 485, 3, 56, 28, 0, 485, 81, 1, 0, 0, 0, 486, 487, 5, 1, 0, 0, 487, 488, 3, 20, 10, 0, 488, 490, 3, 100, 50, 0, 489, 491, 3, 88, 44, 0, 490, 489, 1, 0, 0, 0, 490, 491, 1, 0, 0, 0, 491, 83, 1, 0, 0, 0, 492, 493, 5, 7, 0, 0, 493, 494, 3, 20, 10, 0, 494, 495, 3, 100, 50, 0, 495, 85, 1, 0, 0, 0, 496, 497, 5, 14, 0, 0, 497, 498, 3, 54, 27, 0, 498, 87, 1, 0, 0, 0, 499, 504, 3, 90, 45, 0, 500, 501, 5, 38, 0, 0, 501, 503, 3, 90, 45, 0, 502, 500, 1, 0, 0, 0, 503, 506, 1, 0, 0, 0, 504, 502, 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 89, 1, 0, 0, 0, 506, 504, 1, 0, 0, 0, 507, 508, 3, 60, 30, 0, 508, 509, 5, 36, 0, 0, 509, 510, 3, 64, 32, 0, 510, 91, 1, 0, 0, 0, 511, 512, 7, 6, 0, 0, 512, 93, 1, 0, 0, 0, 513, 516, 3, 96, 48, 0, 514, 516, 3, 98, 49, 0, 515, 513, 1, 0, 0, 0, 515, 514, 1, 0, 0, 0, 516, 95, 1, 0, 0, 0, 517, 519, 7, 0, 0, 0, 518, 517, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 521, 5, 32, 0, 0, 521, 97, 1, 0, 0, 0, 522, 524, 7, 0, 0, 0, 523, 522, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 526, 5, 31, 0, 0, 526, 99, 1, 0, 0, 0, 527, 528, 5, 30, 0, 0, 528, 101, 1, 0, 0, 0, 529, 530, 7, 7, 0, 0, 530, 103, 1, 0, 0, 0, 531, 532, 5, 5, 0, 0, 532, 533, 3, 106, 53, 0, 533, 105, 1, 0, 0, 0, 534, 535, 5, 70, 0, 0, 535, 536, 3, 2, 1, 0, 536, 537, 5, 71, 0, 0, 537, 107, 1, 0, 0, 0, 538, 539, 5, 17, 0, 0, 539, 540, 5, 107, 0, 0, 540, 109, 1, 0, 0, 0, 541, 542, 5, 12, 0, 0, 542, 543, 5, 111, 0, 0, 543, 111, 1, 0, 0, 0, 544, 545, 5, 3, 0, 0, 545, 548, 5, 91, 0, 0, 546, 547, 5, 89, 0, 0, 547, 549, 3, 56, 28, 0, 548, 546, 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549, 559, 1, 0, 0, 0, 550, 551, 5, 90, 0, 0, 551, 556, 3, 114, 57, 0, 552, 553, 5, 38, 0, 0, 553, 555, 3, 114, 57, 0, 554, 552, 1, 0, 0, 0, 555, 558, 1, 0, 0, 0, 556, 554, 1, 0, 0, 0, 556, 557, 1, 0, 0, 0, 557, 560, 1, 0, 0, 0, 558, 556, 1, 0, 0, 0, 559, 550, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 113, 1, 0, 0, 0, 561, 562, 3, 56, 28, 0, 562, 563, 5, 36, 0, 0, 563, 565, 1, 0, 0, 0, 564, 561, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 566, 1, 0, 0, 0, 566, 567, 3, 56, 28, 0, 567, 115, 1, 0, 0, 0, 568, 569, 5, 11, 0, 0, 569, 570, 3, 34, 17, 0, 570, 571, 5, 89, 0, 0, 571, 572, 3, 58, 29, 0, 572, 117, 1, 0, 0, 0, 54, 129, 138, 154, 167, 176, 184, 188, 196, 198, 203, 210, 215, 226, 232, 240, 242, 253, 260, 271, 274, 288, 296, 304, 308, 315, 323, 331, 344, 348, 352, 359, 363, 369, 376, 384, 392, 414, 425, 436, 441, 445, 456, 461, 465, 479, 490, 504, 515, 518, 523, 548, 556, 559, 564] \ No newline at end of file +[4, 1, 126, 584, 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, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 132, 8, 1, 10, 1, 12, 1, 135, 9, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 143, 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, 1, 3, 1, 3, 3, 3, 160, 8, 3, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 173, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 180, 8, 5, 10, 5, 12, 5, 183, 9, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 190, 8, 5, 1, 5, 1, 5, 3, 5, 194, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 202, 8, 5, 10, 5, 12, 5, 205, 9, 5, 1, 6, 1, 6, 3, 6, 209, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 216, 8, 6, 1, 6, 1, 6, 1, 6, 3, 6, 221, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 232, 8, 8, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 238, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9, 246, 8, 9, 10, 9, 12, 9, 249, 9, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 259, 8, 10, 1, 10, 1, 10, 1, 10, 5, 10, 264, 8, 10, 10, 10, 12, 10, 267, 9, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 5, 11, 275, 8, 11, 10, 11, 12, 11, 278, 9, 11, 3, 11, 280, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 5, 14, 292, 8, 14, 10, 14, 12, 14, 295, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 302, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 308, 8, 16, 10, 16, 12, 16, 311, 9, 16, 1, 16, 3, 16, 314, 8, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 321, 8, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 3, 20, 329, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 335, 8, 21, 10, 21, 12, 21, 338, 9, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 348, 8, 23, 10, 23, 12, 23, 351, 9, 23, 1, 23, 3, 23, 354, 8, 23, 1, 23, 1, 23, 3, 23, 358, 8, 23, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 3, 25, 365, 8, 25, 1, 25, 1, 25, 3, 25, 369, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 375, 8, 26, 1, 27, 1, 27, 1, 27, 5, 27, 380, 8, 27, 10, 27, 12, 27, 383, 9, 27, 1, 28, 1, 28, 1, 28, 5, 28, 388, 8, 28, 10, 28, 12, 28, 391, 9, 28, 1, 29, 1, 29, 1, 29, 5, 29, 396, 8, 29, 10, 29, 12, 29, 399, 9, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 418, 8, 32, 10, 32, 12, 32, 421, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 429, 8, 32, 10, 32, 12, 32, 432, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 440, 8, 32, 10, 32, 12, 32, 443, 9, 32, 1, 32, 1, 32, 3, 32, 447, 8, 32, 1, 33, 1, 33, 3, 33, 451, 8, 33, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 5, 35, 460, 8, 35, 10, 35, 12, 35, 463, 9, 35, 1, 36, 1, 36, 3, 36, 467, 8, 36, 1, 36, 1, 36, 3, 36, 471, 8, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 483, 8, 39, 10, 39, 12, 39, 486, 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 496, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 5, 44, 508, 8, 44, 10, 44, 12, 44, 511, 9, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 3, 47, 521, 8, 47, 1, 48, 3, 48, 524, 8, 48, 1, 48, 1, 48, 1, 49, 3, 49, 529, 8, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 3, 56, 554, 8, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 560, 8, 56, 10, 56, 12, 56, 563, 9, 56, 3, 56, 565, 8, 56, 1, 57, 1, 57, 1, 57, 3, 57, 570, 8, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 0, 4, 2, 10, 18, 20, 61, 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, 108, 110, 112, 114, 116, 118, 120, 0, 8, 1, 0, 65, 66, 1, 0, 67, 69, 2, 0, 26, 26, 31, 31, 1, 0, 73, 74, 2, 0, 36, 36, 40, 40, 2, 0, 43, 43, 46, 46, 2, 0, 42, 42, 57, 57, 2, 0, 58, 58, 60, 64, 608, 0, 122, 1, 0, 0, 0, 2, 125, 1, 0, 0, 0, 4, 142, 1, 0, 0, 0, 6, 159, 1, 0, 0, 0, 8, 161, 1, 0, 0, 0, 10, 193, 1, 0, 0, 0, 12, 220, 1, 0, 0, 0, 14, 222, 1, 0, 0, 0, 16, 231, 1, 0, 0, 0, 18, 237, 1, 0, 0, 0, 20, 258, 1, 0, 0, 0, 22, 268, 1, 0, 0, 0, 24, 283, 1, 0, 0, 0, 26, 285, 1, 0, 0, 0, 28, 288, 1, 0, 0, 0, 30, 301, 1, 0, 0, 0, 32, 303, 1, 0, 0, 0, 34, 320, 1, 0, 0, 0, 36, 322, 1, 0, 0, 0, 38, 324, 1, 0, 0, 0, 40, 328, 1, 0, 0, 0, 42, 330, 1, 0, 0, 0, 44, 339, 1, 0, 0, 0, 46, 343, 1, 0, 0, 0, 48, 359, 1, 0, 0, 0, 50, 362, 1, 0, 0, 0, 52, 370, 1, 0, 0, 0, 54, 376, 1, 0, 0, 0, 56, 384, 1, 0, 0, 0, 58, 392, 1, 0, 0, 0, 60, 400, 1, 0, 0, 0, 62, 402, 1, 0, 0, 0, 64, 446, 1, 0, 0, 0, 66, 450, 1, 0, 0, 0, 68, 452, 1, 0, 0, 0, 70, 455, 1, 0, 0, 0, 72, 464, 1, 0, 0, 0, 74, 472, 1, 0, 0, 0, 76, 475, 1, 0, 0, 0, 78, 478, 1, 0, 0, 0, 80, 487, 1, 0, 0, 0, 82, 491, 1, 0, 0, 0, 84, 497, 1, 0, 0, 0, 86, 501, 1, 0, 0, 0, 88, 504, 1, 0, 0, 0, 90, 512, 1, 0, 0, 0, 92, 516, 1, 0, 0, 0, 94, 520, 1, 0, 0, 0, 96, 523, 1, 0, 0, 0, 98, 528, 1, 0, 0, 0, 100, 532, 1, 0, 0, 0, 102, 534, 1, 0, 0, 0, 104, 536, 1, 0, 0, 0, 106, 539, 1, 0, 0, 0, 108, 543, 1, 0, 0, 0, 110, 546, 1, 0, 0, 0, 112, 549, 1, 0, 0, 0, 114, 569, 1, 0, 0, 0, 116, 573, 1, 0, 0, 0, 118, 578, 1, 0, 0, 0, 120, 581, 1, 0, 0, 0, 122, 123, 3, 2, 1, 0, 123, 124, 5, 0, 0, 1, 124, 1, 1, 0, 0, 0, 125, 126, 6, 1, -1, 0, 126, 127, 3, 4, 2, 0, 127, 133, 1, 0, 0, 0, 128, 129, 10, 1, 0, 0, 129, 130, 5, 30, 0, 0, 130, 132, 3, 6, 3, 0, 131, 128, 1, 0, 0, 0, 132, 135, 1, 0, 0, 0, 133, 131, 1, 0, 0, 0, 133, 134, 1, 0, 0, 0, 134, 3, 1, 0, 0, 0, 135, 133, 1, 0, 0, 0, 136, 143, 3, 104, 52, 0, 137, 143, 3, 32, 16, 0, 138, 143, 3, 26, 13, 0, 139, 143, 3, 46, 23, 0, 140, 143, 3, 108, 54, 0, 141, 143, 3, 110, 55, 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, 5, 1, 0, 0, 0, 144, 160, 3, 48, 24, 0, 145, 160, 3, 52, 26, 0, 146, 160, 3, 68, 34, 0, 147, 160, 3, 116, 58, 0, 148, 160, 3, 74, 37, 0, 149, 160, 3, 70, 35, 0, 150, 160, 3, 50, 25, 0, 151, 160, 3, 8, 4, 0, 152, 160, 3, 76, 38, 0, 153, 160, 3, 78, 39, 0, 154, 160, 3, 82, 41, 0, 155, 160, 3, 84, 42, 0, 156, 160, 3, 112, 56, 0, 157, 160, 3, 86, 43, 0, 158, 160, 3, 118, 59, 0, 159, 144, 1, 0, 0, 0, 159, 145, 1, 0, 0, 0, 159, 146, 1, 0, 0, 0, 159, 147, 1, 0, 0, 0, 159, 148, 1, 0, 0, 0, 159, 149, 1, 0, 0, 0, 159, 150, 1, 0, 0, 0, 159, 151, 1, 0, 0, 0, 159, 152, 1, 0, 0, 0, 159, 153, 1, 0, 0, 0, 159, 154, 1, 0, 0, 0, 159, 155, 1, 0, 0, 0, 159, 156, 1, 0, 0, 0, 159, 157, 1, 0, 0, 0, 159, 158, 1, 0, 0, 0, 160, 7, 1, 0, 0, 0, 161, 162, 5, 20, 0, 0, 162, 163, 3, 10, 5, 0, 163, 9, 1, 0, 0, 0, 164, 165, 6, 5, -1, 0, 165, 166, 5, 50, 0, 0, 166, 194, 3, 10, 5, 8, 167, 194, 3, 16, 8, 0, 168, 194, 3, 12, 6, 0, 169, 194, 3, 14, 7, 0, 170, 172, 3, 16, 8, 0, 171, 173, 5, 50, 0, 0, 172, 171, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 175, 5, 44, 0, 0, 175, 176, 5, 48, 0, 0, 176, 181, 3, 16, 8, 0, 177, 178, 5, 39, 0, 0, 178, 180, 3, 16, 8, 0, 179, 177, 1, 0, 0, 0, 180, 183, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 184, 1, 0, 0, 0, 183, 181, 1, 0, 0, 0, 184, 185, 5, 56, 0, 0, 185, 194, 1, 0, 0, 0, 186, 187, 3, 16, 8, 0, 187, 189, 5, 45, 0, 0, 188, 190, 5, 50, 0, 0, 189, 188, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 192, 5, 51, 0, 0, 192, 194, 1, 0, 0, 0, 193, 164, 1, 0, 0, 0, 193, 167, 1, 0, 0, 0, 193, 168, 1, 0, 0, 0, 193, 169, 1, 0, 0, 0, 193, 170, 1, 0, 0, 0, 193, 186, 1, 0, 0, 0, 194, 203, 1, 0, 0, 0, 195, 196, 10, 4, 0, 0, 196, 197, 5, 35, 0, 0, 197, 202, 3, 10, 5, 5, 198, 199, 10, 3, 0, 0, 199, 200, 5, 53, 0, 0, 200, 202, 3, 10, 5, 4, 201, 195, 1, 0, 0, 0, 201, 198, 1, 0, 0, 0, 202, 205, 1, 0, 0, 0, 203, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 11, 1, 0, 0, 0, 205, 203, 1, 0, 0, 0, 206, 208, 3, 16, 8, 0, 207, 209, 5, 50, 0, 0, 208, 207, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 211, 5, 47, 0, 0, 211, 212, 3, 100, 50, 0, 212, 221, 1, 0, 0, 0, 213, 215, 3, 16, 8, 0, 214, 216, 5, 50, 0, 0, 215, 214, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 217, 1, 0, 0, 0, 217, 218, 5, 55, 0, 0, 218, 219, 3, 100, 50, 0, 219, 221, 1, 0, 0, 0, 220, 206, 1, 0, 0, 0, 220, 213, 1, 0, 0, 0, 221, 13, 1, 0, 0, 0, 222, 223, 3, 54, 27, 0, 223, 224, 5, 49, 0, 0, 224, 225, 3, 100, 50, 0, 225, 15, 1, 0, 0, 0, 226, 232, 3, 18, 9, 0, 227, 228, 3, 18, 9, 0, 228, 229, 3, 102, 51, 0, 229, 230, 3, 18, 9, 0, 230, 232, 1, 0, 0, 0, 231, 226, 1, 0, 0, 0, 231, 227, 1, 0, 0, 0, 232, 17, 1, 0, 0, 0, 233, 234, 6, 9, -1, 0, 234, 238, 3, 20, 10, 0, 235, 236, 7, 0, 0, 0, 236, 238, 3, 18, 9, 3, 237, 233, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 238, 247, 1, 0, 0, 0, 239, 240, 10, 2, 0, 0, 240, 241, 7, 1, 0, 0, 241, 246, 3, 18, 9, 3, 242, 243, 10, 1, 0, 0, 243, 244, 7, 0, 0, 0, 244, 246, 3, 18, 9, 2, 245, 239, 1, 0, 0, 0, 245, 242, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 19, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 6, 10, -1, 0, 251, 259, 3, 64, 32, 0, 252, 259, 3, 54, 27, 0, 253, 259, 3, 22, 11, 0, 254, 255, 5, 48, 0, 0, 255, 256, 3, 10, 5, 0, 256, 257, 5, 56, 0, 0, 257, 259, 1, 0, 0, 0, 258, 250, 1, 0, 0, 0, 258, 252, 1, 0, 0, 0, 258, 253, 1, 0, 0, 0, 258, 254, 1, 0, 0, 0, 259, 265, 1, 0, 0, 0, 260, 261, 10, 1, 0, 0, 261, 262, 5, 38, 0, 0, 262, 264, 3, 24, 12, 0, 263, 260, 1, 0, 0, 0, 264, 267, 1, 0, 0, 0, 265, 263, 1, 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 21, 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 268, 269, 3, 60, 30, 0, 269, 279, 5, 48, 0, 0, 270, 280, 5, 67, 0, 0, 271, 276, 3, 10, 5, 0, 272, 273, 5, 39, 0, 0, 273, 275, 3, 10, 5, 0, 274, 272, 1, 0, 0, 0, 275, 278, 1, 0, 0, 0, 276, 274, 1, 0, 0, 0, 276, 277, 1, 0, 0, 0, 277, 280, 1, 0, 0, 0, 278, 276, 1, 0, 0, 0, 279, 270, 1, 0, 0, 0, 279, 271, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 282, 5, 56, 0, 0, 282, 23, 1, 0, 0, 0, 283, 284, 3, 60, 30, 0, 284, 25, 1, 0, 0, 0, 285, 286, 5, 16, 0, 0, 286, 287, 3, 28, 14, 0, 287, 27, 1, 0, 0, 0, 288, 293, 3, 30, 15, 0, 289, 290, 5, 39, 0, 0, 290, 292, 3, 30, 15, 0, 291, 289, 1, 0, 0, 0, 292, 295, 1, 0, 0, 0, 293, 291, 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 29, 1, 0, 0, 0, 295, 293, 1, 0, 0, 0, 296, 302, 3, 10, 5, 0, 297, 298, 3, 54, 27, 0, 298, 299, 5, 37, 0, 0, 299, 300, 3, 10, 5, 0, 300, 302, 1, 0, 0, 0, 301, 296, 1, 0, 0, 0, 301, 297, 1, 0, 0, 0, 302, 31, 1, 0, 0, 0, 303, 304, 5, 6, 0, 0, 304, 309, 3, 34, 17, 0, 305, 306, 5, 39, 0, 0, 306, 308, 3, 34, 17, 0, 307, 305, 1, 0, 0, 0, 308, 311, 1, 0, 0, 0, 309, 307, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 313, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 312, 314, 3, 40, 20, 0, 313, 312, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 33, 1, 0, 0, 0, 315, 316, 3, 36, 18, 0, 316, 317, 5, 116, 0, 0, 317, 318, 3, 38, 19, 0, 318, 321, 1, 0, 0, 0, 319, 321, 3, 38, 19, 0, 320, 315, 1, 0, 0, 0, 320, 319, 1, 0, 0, 0, 321, 35, 1, 0, 0, 0, 322, 323, 5, 26, 0, 0, 323, 37, 1, 0, 0, 0, 324, 325, 7, 2, 0, 0, 325, 39, 1, 0, 0, 0, 326, 329, 3, 42, 21, 0, 327, 329, 3, 44, 22, 0, 328, 326, 1, 0, 0, 0, 328, 327, 1, 0, 0, 0, 329, 41, 1, 0, 0, 0, 330, 331, 5, 78, 0, 0, 331, 336, 5, 26, 0, 0, 332, 333, 5, 39, 0, 0, 333, 335, 5, 26, 0, 0, 334, 332, 1, 0, 0, 0, 335, 338, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0, 337, 43, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 340, 5, 71, 0, 0, 340, 341, 3, 42, 21, 0, 341, 342, 5, 72, 0, 0, 342, 45, 1, 0, 0, 0, 343, 344, 5, 13, 0, 0, 344, 349, 3, 34, 17, 0, 345, 346, 5, 39, 0, 0, 346, 348, 3, 34, 17, 0, 347, 345, 1, 0, 0, 0, 348, 351, 1, 0, 0, 0, 349, 347, 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 353, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 352, 354, 3, 28, 14, 0, 353, 352, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 357, 1, 0, 0, 0, 355, 356, 5, 34, 0, 0, 356, 358, 3, 28, 14, 0, 357, 355, 1, 0, 0, 0, 357, 358, 1, 0, 0, 0, 358, 47, 1, 0, 0, 0, 359, 360, 5, 4, 0, 0, 360, 361, 3, 28, 14, 0, 361, 49, 1, 0, 0, 0, 362, 364, 5, 19, 0, 0, 363, 365, 3, 28, 14, 0, 364, 363, 1, 0, 0, 0, 364, 365, 1, 0, 0, 0, 365, 368, 1, 0, 0, 0, 366, 367, 5, 34, 0, 0, 367, 369, 3, 28, 14, 0, 368, 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 51, 1, 0, 0, 0, 370, 371, 5, 8, 0, 0, 371, 374, 3, 28, 14, 0, 372, 373, 5, 34, 0, 0, 373, 375, 3, 28, 14, 0, 374, 372, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375, 53, 1, 0, 0, 0, 376, 381, 3, 60, 30, 0, 377, 378, 5, 41, 0, 0, 378, 380, 3, 60, 30, 0, 379, 377, 1, 0, 0, 0, 380, 383, 1, 0, 0, 0, 381, 379, 1, 0, 0, 0, 381, 382, 1, 0, 0, 0, 382, 55, 1, 0, 0, 0, 383, 381, 1, 0, 0, 0, 384, 389, 3, 62, 31, 0, 385, 386, 5, 41, 0, 0, 386, 388, 3, 62, 31, 0, 387, 385, 1, 0, 0, 0, 388, 391, 1, 0, 0, 0, 389, 387, 1, 0, 0, 0, 389, 390, 1, 0, 0, 0, 390, 57, 1, 0, 0, 0, 391, 389, 1, 0, 0, 0, 392, 397, 3, 56, 28, 0, 393, 394, 5, 39, 0, 0, 394, 396, 3, 56, 28, 0, 395, 393, 1, 0, 0, 0, 396, 399, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 59, 1, 0, 0, 0, 399, 397, 1, 0, 0, 0, 400, 401, 7, 3, 0, 0, 401, 61, 1, 0, 0, 0, 402, 403, 5, 82, 0, 0, 403, 63, 1, 0, 0, 0, 404, 447, 5, 51, 0, 0, 405, 406, 3, 98, 49, 0, 406, 407, 5, 73, 0, 0, 407, 447, 1, 0, 0, 0, 408, 447, 3, 96, 48, 0, 409, 447, 3, 98, 49, 0, 410, 447, 3, 92, 46, 0, 411, 447, 3, 66, 33, 0, 412, 447, 3, 100, 50, 0, 413, 414, 5, 71, 0, 0, 414, 419, 3, 94, 47, 0, 415, 416, 5, 39, 0, 0, 416, 418, 3, 94, 47, 0, 417, 415, 1, 0, 0, 0, 418, 421, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 419, 420, 1, 0, 0, 0, 420, 422, 1, 0, 0, 0, 421, 419, 1, 0, 0, 0, 422, 423, 5, 72, 0, 0, 423, 447, 1, 0, 0, 0, 424, 425, 5, 71, 0, 0, 425, 430, 3, 92, 46, 0, 426, 427, 5, 39, 0, 0, 427, 429, 3, 92, 46, 0, 428, 426, 1, 0, 0, 0, 429, 432, 1, 0, 0, 0, 430, 428, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 433, 1, 0, 0, 0, 432, 430, 1, 0, 0, 0, 433, 434, 5, 72, 0, 0, 434, 447, 1, 0, 0, 0, 435, 436, 5, 71, 0, 0, 436, 441, 3, 100, 50, 0, 437, 438, 5, 39, 0, 0, 438, 440, 3, 100, 50, 0, 439, 437, 1, 0, 0, 0, 440, 443, 1, 0, 0, 0, 441, 439, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 444, 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 444, 445, 5, 72, 0, 0, 445, 447, 1, 0, 0, 0, 446, 404, 1, 0, 0, 0, 446, 405, 1, 0, 0, 0, 446, 408, 1, 0, 0, 0, 446, 409, 1, 0, 0, 0, 446, 410, 1, 0, 0, 0, 446, 411, 1, 0, 0, 0, 446, 412, 1, 0, 0, 0, 446, 413, 1, 0, 0, 0, 446, 424, 1, 0, 0, 0, 446, 435, 1, 0, 0, 0, 447, 65, 1, 0, 0, 0, 448, 451, 5, 54, 0, 0, 449, 451, 5, 70, 0, 0, 450, 448, 1, 0, 0, 0, 450, 449, 1, 0, 0, 0, 451, 67, 1, 0, 0, 0, 452, 453, 5, 10, 0, 0, 453, 454, 5, 32, 0, 0, 454, 69, 1, 0, 0, 0, 455, 456, 5, 18, 0, 0, 456, 461, 3, 72, 36, 0, 457, 458, 5, 39, 0, 0, 458, 460, 3, 72, 36, 0, 459, 457, 1, 0, 0, 0, 460, 463, 1, 0, 0, 0, 461, 459, 1, 0, 0, 0, 461, 462, 1, 0, 0, 0, 462, 71, 1, 0, 0, 0, 463, 461, 1, 0, 0, 0, 464, 466, 3, 10, 5, 0, 465, 467, 7, 4, 0, 0, 466, 465, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 469, 5, 52, 0, 0, 469, 471, 7, 5, 0, 0, 470, 468, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 73, 1, 0, 0, 0, 472, 473, 5, 9, 0, 0, 473, 474, 3, 58, 29, 0, 474, 75, 1, 0, 0, 0, 475, 476, 5, 2, 0, 0, 476, 477, 3, 58, 29, 0, 477, 77, 1, 0, 0, 0, 478, 479, 5, 15, 0, 0, 479, 484, 3, 80, 40, 0, 480, 481, 5, 39, 0, 0, 481, 483, 3, 80, 40, 0, 482, 480, 1, 0, 0, 0, 483, 486, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 79, 1, 0, 0, 0, 486, 484, 1, 0, 0, 0, 487, 488, 3, 56, 28, 0, 488, 489, 5, 86, 0, 0, 489, 490, 3, 56, 28, 0, 490, 81, 1, 0, 0, 0, 491, 492, 5, 1, 0, 0, 492, 493, 3, 20, 10, 0, 493, 495, 3, 100, 50, 0, 494, 496, 3, 88, 44, 0, 495, 494, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 83, 1, 0, 0, 0, 497, 498, 5, 7, 0, 0, 498, 499, 3, 20, 10, 0, 499, 500, 3, 100, 50, 0, 500, 85, 1, 0, 0, 0, 501, 502, 5, 14, 0, 0, 502, 503, 3, 54, 27, 0, 503, 87, 1, 0, 0, 0, 504, 509, 3, 90, 45, 0, 505, 506, 5, 39, 0, 0, 506, 508, 3, 90, 45, 0, 507, 505, 1, 0, 0, 0, 508, 511, 1, 0, 0, 0, 509, 507, 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 510, 89, 1, 0, 0, 0, 511, 509, 1, 0, 0, 0, 512, 513, 3, 60, 30, 0, 513, 514, 5, 37, 0, 0, 514, 515, 3, 64, 32, 0, 515, 91, 1, 0, 0, 0, 516, 517, 7, 6, 0, 0, 517, 93, 1, 0, 0, 0, 518, 521, 3, 96, 48, 0, 519, 521, 3, 98, 49, 0, 520, 518, 1, 0, 0, 0, 520, 519, 1, 0, 0, 0, 521, 95, 1, 0, 0, 0, 522, 524, 7, 0, 0, 0, 523, 522, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 526, 5, 33, 0, 0, 526, 97, 1, 0, 0, 0, 527, 529, 7, 0, 0, 0, 528, 527, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529, 530, 1, 0, 0, 0, 530, 531, 5, 32, 0, 0, 531, 99, 1, 0, 0, 0, 532, 533, 5, 31, 0, 0, 533, 101, 1, 0, 0, 0, 534, 535, 7, 7, 0, 0, 535, 103, 1, 0, 0, 0, 536, 537, 5, 5, 0, 0, 537, 538, 3, 106, 53, 0, 538, 105, 1, 0, 0, 0, 539, 540, 5, 71, 0, 0, 540, 541, 3, 2, 1, 0, 541, 542, 5, 72, 0, 0, 542, 107, 1, 0, 0, 0, 543, 544, 5, 17, 0, 0, 544, 545, 5, 108, 0, 0, 545, 109, 1, 0, 0, 0, 546, 547, 5, 12, 0, 0, 547, 548, 5, 112, 0, 0, 548, 111, 1, 0, 0, 0, 549, 550, 5, 3, 0, 0, 550, 553, 5, 92, 0, 0, 551, 552, 5, 90, 0, 0, 552, 554, 3, 56, 28, 0, 553, 551, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 564, 1, 0, 0, 0, 555, 556, 5, 91, 0, 0, 556, 561, 3, 114, 57, 0, 557, 558, 5, 39, 0, 0, 558, 560, 3, 114, 57, 0, 559, 557, 1, 0, 0, 0, 560, 563, 1, 0, 0, 0, 561, 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 565, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 564, 555, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 113, 1, 0, 0, 0, 566, 567, 3, 56, 28, 0, 567, 568, 5, 37, 0, 0, 568, 570, 1, 0, 0, 0, 569, 566, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 572, 3, 56, 28, 0, 572, 115, 1, 0, 0, 0, 573, 574, 5, 11, 0, 0, 574, 575, 3, 34, 17, 0, 575, 576, 5, 90, 0, 0, 576, 577, 3, 58, 29, 0, 577, 117, 1, 0, 0, 0, 578, 579, 5, 21, 0, 0, 579, 580, 3, 120, 60, 0, 580, 119, 1, 0, 0, 0, 581, 582, 5, 31, 0, 0, 582, 121, 1, 0, 0, 0, 54, 133, 142, 159, 172, 181, 189, 193, 201, 203, 208, 215, 220, 231, 237, 245, 247, 258, 265, 276, 279, 293, 301, 309, 313, 320, 328, 336, 349, 353, 357, 364, 368, 374, 381, 389, 397, 419, 430, 441, 446, 450, 461, 466, 470, 484, 495, 509, 520, 523, 528, 553, 561, 564, 569] \ 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 4cac289a33634..2d4bb481826f5 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_parser.tokens +++ b/packages/kbn-esql-ast/src/antlr/esql_parser.tokens @@ -18,111 +18,112 @@ SHOW=17 SORT=18 STATS=19 WHERE=20 -UNKNOWN_CMD=21 -LINE_COMMENT=22 -MULTILINE_COMMENT=23 -WS=24 -UNQUOTED_SOURCE=25 -EXPLAIN_WS=26 -EXPLAIN_LINE_COMMENT=27 -EXPLAIN_MULTILINE_COMMENT=28 -PIPE=29 -QUOTED_STRING=30 -INTEGER_LITERAL=31 -DECIMAL_LITERAL=32 -BY=33 -AND=34 -ASC=35 -ASSIGN=36 -CAST_OP=37 -COMMA=38 -DESC=39 -DOT=40 -FALSE=41 -FIRST=42 -IN=43 -IS=44 -LAST=45 -LIKE=46 -LP=47 -MATCH=48 -NOT=49 -NULL=50 -NULLS=51 -OR=52 -PARAM=53 -RLIKE=54 -RP=55 -TRUE=56 -EQ=57 -CIEQ=58 -NEQ=59 -LT=60 -LTE=61 -GT=62 -GTE=63 -PLUS=64 -MINUS=65 -ASTERISK=66 -SLASH=67 -PERCENT=68 -NAMED_OR_POSITIONAL_PARAM=69 -OPENING_BRACKET=70 -CLOSING_BRACKET=71 -UNQUOTED_IDENTIFIER=72 -QUOTED_IDENTIFIER=73 -EXPR_LINE_COMMENT=74 -EXPR_MULTILINE_COMMENT=75 -EXPR_WS=76 -METADATA=77 -FROM_LINE_COMMENT=78 -FROM_MULTILINE_COMMENT=79 -FROM_WS=80 -ID_PATTERN=81 -PROJECT_LINE_COMMENT=82 -PROJECT_MULTILINE_COMMENT=83 -PROJECT_WS=84 -AS=85 -RENAME_LINE_COMMENT=86 -RENAME_MULTILINE_COMMENT=87 -RENAME_WS=88 -ON=89 -WITH=90 -ENRICH_POLICY_NAME=91 -ENRICH_LINE_COMMENT=92 -ENRICH_MULTILINE_COMMENT=93 -ENRICH_WS=94 -ENRICH_FIELD_LINE_COMMENT=95 -ENRICH_FIELD_MULTILINE_COMMENT=96 -ENRICH_FIELD_WS=97 -LOOKUP_LINE_COMMENT=98 -LOOKUP_MULTILINE_COMMENT=99 -LOOKUP_WS=100 -LOOKUP_FIELD_LINE_COMMENT=101 -LOOKUP_FIELD_MULTILINE_COMMENT=102 -LOOKUP_FIELD_WS=103 -MVEXPAND_LINE_COMMENT=104 -MVEXPAND_MULTILINE_COMMENT=105 -MVEXPAND_WS=106 -INFO=107 -SHOW_LINE_COMMENT=108 -SHOW_MULTILINE_COMMENT=109 -SHOW_WS=110 -FUNCTIONS=111 -META_LINE_COMMENT=112 -META_MULTILINE_COMMENT=113 -META_WS=114 -COLON=115 -SETTING=116 -SETTING_LINE_COMMENT=117 -SETTTING_MULTILINE_COMMENT=118 -SETTING_WS=119 -METRICS_LINE_COMMENT=120 -METRICS_MULTILINE_COMMENT=121 -METRICS_WS=122 -CLOSING_METRICS_LINE_COMMENT=123 -CLOSING_METRICS_MULTILINE_COMMENT=124 -CLOSING_METRICS_WS=125 +MATCH=21 +UNKNOWN_CMD=22 +LINE_COMMENT=23 +MULTILINE_COMMENT=24 +WS=25 +UNQUOTED_SOURCE=26 +EXPLAIN_WS=27 +EXPLAIN_LINE_COMMENT=28 +EXPLAIN_MULTILINE_COMMENT=29 +PIPE=30 +QUOTED_STRING=31 +INTEGER_LITERAL=32 +DECIMAL_LITERAL=33 +BY=34 +AND=35 +ASC=36 +ASSIGN=37 +CAST_OP=38 +COMMA=39 +DESC=40 +DOT=41 +FALSE=42 +FIRST=43 +IN=44 +IS=45 +LAST=46 +LIKE=47 +LP=48 +MATCH_OPERATOR=49 +NOT=50 +NULL=51 +NULLS=52 +OR=53 +PARAM=54 +RLIKE=55 +RP=56 +TRUE=57 +EQ=58 +CIEQ=59 +NEQ=60 +LT=61 +LTE=62 +GT=63 +GTE=64 +PLUS=65 +MINUS=66 +ASTERISK=67 +SLASH=68 +PERCENT=69 +NAMED_OR_POSITIONAL_PARAM=70 +OPENING_BRACKET=71 +CLOSING_BRACKET=72 +UNQUOTED_IDENTIFIER=73 +QUOTED_IDENTIFIER=74 +EXPR_LINE_COMMENT=75 +EXPR_MULTILINE_COMMENT=76 +EXPR_WS=77 +METADATA=78 +FROM_LINE_COMMENT=79 +FROM_MULTILINE_COMMENT=80 +FROM_WS=81 +ID_PATTERN=82 +PROJECT_LINE_COMMENT=83 +PROJECT_MULTILINE_COMMENT=84 +PROJECT_WS=85 +AS=86 +RENAME_LINE_COMMENT=87 +RENAME_MULTILINE_COMMENT=88 +RENAME_WS=89 +ON=90 +WITH=91 +ENRICH_POLICY_NAME=92 +ENRICH_LINE_COMMENT=93 +ENRICH_MULTILINE_COMMENT=94 +ENRICH_WS=95 +ENRICH_FIELD_LINE_COMMENT=96 +ENRICH_FIELD_MULTILINE_COMMENT=97 +ENRICH_FIELD_WS=98 +LOOKUP_LINE_COMMENT=99 +LOOKUP_MULTILINE_COMMENT=100 +LOOKUP_WS=101 +LOOKUP_FIELD_LINE_COMMENT=102 +LOOKUP_FIELD_MULTILINE_COMMENT=103 +LOOKUP_FIELD_WS=104 +MVEXPAND_LINE_COMMENT=105 +MVEXPAND_MULTILINE_COMMENT=106 +MVEXPAND_WS=107 +INFO=108 +SHOW_LINE_COMMENT=109 +SHOW_MULTILINE_COMMENT=110 +SHOW_WS=111 +FUNCTIONS=112 +META_LINE_COMMENT=113 +META_MULTILINE_COMMENT=114 +META_WS=115 +COLON=116 +SETTING=117 +SETTING_LINE_COMMENT=118 +SETTTING_MULTILINE_COMMENT=119 +SETTING_WS=120 +METRICS_LINE_COMMENT=121 +METRICS_MULTILINE_COMMENT=122 +METRICS_WS=123 +CLOSING_METRICS_LINE_COMMENT=124 +CLOSING_METRICS_MULTILINE_COMMENT=125 +CLOSING_METRICS_WS=126 'dissect'=1 'drop'=2 'enrich'=3 @@ -143,48 +144,47 @@ CLOSING_METRICS_WS=125 'sort'=18 'stats'=19 'where'=20 -'|'=29 -'by'=33 -'and'=34 -'asc'=35 -'='=36 -'::'=37 -','=38 -'desc'=39 -'.'=40 -'false'=41 -'first'=42 -'in'=43 -'is'=44 -'last'=45 -'like'=46 -'('=47 -'match'=48 -'not'=49 -'null'=50 -'nulls'=51 -'or'=52 -'?'=53 -'rlike'=54 -')'=55 -'true'=56 -'=='=57 -'=~'=58 -'!='=59 -'<'=60 -'<='=61 -'>'=62 -'>='=63 -'+'=64 -'-'=65 -'*'=66 -'/'=67 -'%'=68 -']'=71 -'metadata'=77 -'as'=85 -'on'=89 -'with'=90 -'info'=107 -'functions'=111 -':'=115 +'|'=30 +'by'=34 +'and'=35 +'asc'=36 +'='=37 +'::'=38 +','=39 +'desc'=40 +'.'=41 +'false'=42 +'first'=43 +'in'=44 +'is'=45 +'last'=46 +'like'=47 +'('=48 +'not'=50 +'null'=51 +'nulls'=52 +'or'=53 +'?'=54 +'rlike'=55 +')'=56 +'true'=57 +'=='=58 +'=~'=59 +'!='=60 +'<'=61 +'<='=62 +'>'=63 +'>='=64 +'+'=65 +'-'=66 +'*'=67 +'/'=68 +'%'=69 +']'=72 +'metadata'=78 +'as'=86 +'on'=90 +'with'=91 +'info'=108 +'functions'=112 +':'=116 diff --git a/packages/kbn-esql-ast/src/antlr/esql_parser.ts b/packages/kbn-esql-ast/src/antlr/esql_parser.ts index b6b55f3c1d089..f2903de828ca5 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_parser.ts +++ b/packages/kbn-esql-ast/src/antlr/esql_parser.ts @@ -1,5 +1,5 @@ // @ts-nocheck -// Generated from src/antlr/esql_parser.g4 by ANTLR 4.13.1 +// Generated from src/antlr/esql_parser.g4 by ANTLR 4.13.2 // noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols import { @@ -38,112 +38,113 @@ export default class esql_parser extends Parser { public static readonly SORT = 18; public static readonly STATS = 19; public static readonly WHERE = 20; - public static readonly UNKNOWN_CMD = 21; - public static readonly LINE_COMMENT = 22; - public static readonly MULTILINE_COMMENT = 23; - public static readonly WS = 24; - public static readonly UNQUOTED_SOURCE = 25; - public static readonly EXPLAIN_WS = 26; - public static readonly EXPLAIN_LINE_COMMENT = 27; - public static readonly EXPLAIN_MULTILINE_COMMENT = 28; - public static readonly PIPE = 29; - public static readonly QUOTED_STRING = 30; - public static readonly INTEGER_LITERAL = 31; - public static readonly DECIMAL_LITERAL = 32; - public static readonly BY = 33; - public static readonly AND = 34; - public static readonly ASC = 35; - public static readonly ASSIGN = 36; - public static readonly CAST_OP = 37; - public static readonly COMMA = 38; - public static readonly DESC = 39; - public static readonly DOT = 40; - public static readonly FALSE = 41; - public static readonly FIRST = 42; - public static readonly IN = 43; - public static readonly IS = 44; - public static readonly LAST = 45; - public static readonly LIKE = 46; - public static readonly LP = 47; - public static readonly MATCH = 48; - public static readonly NOT = 49; - public static readonly NULL = 50; - public static readonly NULLS = 51; - public static readonly OR = 52; - public static readonly PARAM = 53; - public static readonly RLIKE = 54; - public static readonly RP = 55; - public static readonly TRUE = 56; - public static readonly EQ = 57; - public static readonly CIEQ = 58; - public static readonly NEQ = 59; - public static readonly LT = 60; - public static readonly LTE = 61; - public static readonly GT = 62; - public static readonly GTE = 63; - public static readonly PLUS = 64; - public static readonly MINUS = 65; - public static readonly ASTERISK = 66; - public static readonly SLASH = 67; - public static readonly PERCENT = 68; - public static readonly NAMED_OR_POSITIONAL_PARAM = 69; - public static readonly OPENING_BRACKET = 70; - public static readonly CLOSING_BRACKET = 71; - public static readonly UNQUOTED_IDENTIFIER = 72; - public static readonly QUOTED_IDENTIFIER = 73; - public static readonly EXPR_LINE_COMMENT = 74; - public static readonly EXPR_MULTILINE_COMMENT = 75; - public static readonly EXPR_WS = 76; - public static readonly METADATA = 77; - public static readonly FROM_LINE_COMMENT = 78; - public static readonly FROM_MULTILINE_COMMENT = 79; - public static readonly FROM_WS = 80; - public static readonly ID_PATTERN = 81; - public static readonly PROJECT_LINE_COMMENT = 82; - public static readonly PROJECT_MULTILINE_COMMENT = 83; - public static readonly PROJECT_WS = 84; - public static readonly AS = 85; - public static readonly RENAME_LINE_COMMENT = 86; - public static readonly RENAME_MULTILINE_COMMENT = 87; - public static readonly RENAME_WS = 88; - public static readonly ON = 89; - public static readonly WITH = 90; - public static readonly ENRICH_POLICY_NAME = 91; - public static readonly ENRICH_LINE_COMMENT = 92; - public static readonly ENRICH_MULTILINE_COMMENT = 93; - public static readonly ENRICH_WS = 94; - public static readonly ENRICH_FIELD_LINE_COMMENT = 95; - public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 96; - public static readonly ENRICH_FIELD_WS = 97; - public static readonly LOOKUP_LINE_COMMENT = 98; - public static readonly LOOKUP_MULTILINE_COMMENT = 99; - public static readonly LOOKUP_WS = 100; - public static readonly LOOKUP_FIELD_LINE_COMMENT = 101; - public static readonly LOOKUP_FIELD_MULTILINE_COMMENT = 102; - public static readonly LOOKUP_FIELD_WS = 103; - public static readonly MVEXPAND_LINE_COMMENT = 104; - public static readonly MVEXPAND_MULTILINE_COMMENT = 105; - public static readonly MVEXPAND_WS = 106; - public static readonly INFO = 107; - public static readonly SHOW_LINE_COMMENT = 108; - public static readonly SHOW_MULTILINE_COMMENT = 109; - public static readonly SHOW_WS = 110; - public static readonly FUNCTIONS = 111; - public static readonly META_LINE_COMMENT = 112; - public static readonly META_MULTILINE_COMMENT = 113; - public static readonly META_WS = 114; - public static readonly COLON = 115; - public static readonly SETTING = 116; - public static readonly SETTING_LINE_COMMENT = 117; - public static readonly SETTTING_MULTILINE_COMMENT = 118; - public static readonly SETTING_WS = 119; - public static readonly METRICS_LINE_COMMENT = 120; - public static readonly METRICS_MULTILINE_COMMENT = 121; - public static readonly METRICS_WS = 122; - public static readonly CLOSING_METRICS_LINE_COMMENT = 123; - public static readonly CLOSING_METRICS_MULTILINE_COMMENT = 124; - public static readonly CLOSING_METRICS_WS = 125; - public static readonly EOF = Token.EOF; + public static readonly MATCH = 21; + public static readonly UNKNOWN_CMD = 22; + public static readonly LINE_COMMENT = 23; + public static readonly MULTILINE_COMMENT = 24; + public static readonly WS = 25; + public static readonly UNQUOTED_SOURCE = 26; + public static readonly EXPLAIN_WS = 27; + public static readonly EXPLAIN_LINE_COMMENT = 28; + public static readonly EXPLAIN_MULTILINE_COMMENT = 29; + public static readonly PIPE = 30; + public static readonly QUOTED_STRING = 31; + public static readonly INTEGER_LITERAL = 32; + public static readonly DECIMAL_LITERAL = 33; + public static readonly BY = 34; + public static readonly AND = 35; + public static readonly ASC = 36; + public static readonly ASSIGN = 37; + public static readonly CAST_OP = 38; + public static readonly COMMA = 39; + public static readonly DESC = 40; + public static readonly DOT = 41; + public static readonly FALSE = 42; + public static readonly FIRST = 43; + public static readonly IN = 44; + public static readonly IS = 45; + public static readonly LAST = 46; + public static readonly LIKE = 47; + public static readonly LP = 48; + public static readonly MATCH_OPERATOR = 49; + public static readonly NOT = 50; + public static readonly NULL = 51; + public static readonly NULLS = 52; + public static readonly OR = 53; + public static readonly PARAM = 54; + public static readonly RLIKE = 55; + public static readonly RP = 56; + public static readonly TRUE = 57; + public static readonly EQ = 58; + public static readonly CIEQ = 59; + public static readonly NEQ = 60; + public static readonly LT = 61; + public static readonly LTE = 62; + public static readonly GT = 63; + public static readonly GTE = 64; + public static readonly PLUS = 65; + public static readonly MINUS = 66; + public static readonly ASTERISK = 67; + public static readonly SLASH = 68; + public static readonly PERCENT = 69; + public static readonly NAMED_OR_POSITIONAL_PARAM = 70; + public static readonly OPENING_BRACKET = 71; + public static readonly CLOSING_BRACKET = 72; + public static readonly UNQUOTED_IDENTIFIER = 73; + public static readonly QUOTED_IDENTIFIER = 74; + public static readonly EXPR_LINE_COMMENT = 75; + public static readonly EXPR_MULTILINE_COMMENT = 76; + public static readonly EXPR_WS = 77; + public static readonly METADATA = 78; + public static readonly FROM_LINE_COMMENT = 79; + public static readonly FROM_MULTILINE_COMMENT = 80; + public static readonly FROM_WS = 81; + public static readonly ID_PATTERN = 82; + public static readonly PROJECT_LINE_COMMENT = 83; + public static readonly PROJECT_MULTILINE_COMMENT = 84; + public static readonly PROJECT_WS = 85; + public static readonly AS = 86; + public static readonly RENAME_LINE_COMMENT = 87; + public static readonly RENAME_MULTILINE_COMMENT = 88; + public static readonly RENAME_WS = 89; + public static readonly ON = 90; + public static readonly WITH = 91; + public static readonly ENRICH_POLICY_NAME = 92; + public static readonly ENRICH_LINE_COMMENT = 93; + public static readonly ENRICH_MULTILINE_COMMENT = 94; + public static readonly ENRICH_WS = 95; + public static readonly ENRICH_FIELD_LINE_COMMENT = 96; + public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 97; + public static readonly ENRICH_FIELD_WS = 98; + public static readonly LOOKUP_LINE_COMMENT = 99; + public static readonly LOOKUP_MULTILINE_COMMENT = 100; + public static readonly LOOKUP_WS = 101; + public static readonly LOOKUP_FIELD_LINE_COMMENT = 102; + public static readonly LOOKUP_FIELD_MULTILINE_COMMENT = 103; + public static readonly LOOKUP_FIELD_WS = 104; + public static readonly MVEXPAND_LINE_COMMENT = 105; + public static readonly MVEXPAND_MULTILINE_COMMENT = 106; + public static readonly MVEXPAND_WS = 107; + public static readonly INFO = 108; + public static readonly SHOW_LINE_COMMENT = 109; + public static readonly SHOW_MULTILINE_COMMENT = 110; + public static readonly SHOW_WS = 111; + public static readonly FUNCTIONS = 112; + public static readonly META_LINE_COMMENT = 113; + public static readonly META_MULTILINE_COMMENT = 114; + public static readonly META_WS = 115; + public static readonly COLON = 116; + public static readonly SETTING = 117; + public static readonly SETTING_LINE_COMMENT = 118; + public static readonly SETTTING_MULTILINE_COMMENT = 119; + public static readonly SETTING_WS = 120; + public static readonly METRICS_LINE_COMMENT = 121; + public static readonly METRICS_MULTILINE_COMMENT = 122; + public static readonly METRICS_WS = 123; + public static readonly CLOSING_METRICS_LINE_COMMENT = 124; + public static readonly CLOSING_METRICS_MULTILINE_COMMENT = 125; + public static readonly CLOSING_METRICS_WS = 126; + public static override readonly EOF = Token.EOF; public static readonly RULE_singleStatement = 0; public static readonly RULE_query = 1; public static readonly RULE_sourceCommand = 2; @@ -203,6 +204,8 @@ export default class esql_parser extends Parser { public static readonly RULE_enrichCommand = 56; public static readonly RULE_enrichWithClause = 57; public static readonly RULE_lookupCommand = 58; + public static readonly RULE_matchCommand = 59; + public static readonly RULE_matchQuery = 60; public static readonly literalNames: (string | null)[] = [ null, "'dissect'", "'drop'", "'enrich'", "'eval'", "'explain'", @@ -219,31 +222,32 @@ export default class esql_parser extends Parser { null, null, null, null, null, null, - null, "'|'", null, null, - null, "'by'", - "'and'", "'asc'", - "'='", "'::'", - "','", "'desc'", - "'.'", "'false'", - "'first'", "'in'", - "'is'", "'last'", - "'like'", "'('", - "'match'", "'not'", - "'null'", "'nulls'", - "'or'", "'?'", - "'rlike'", "')'", - "'true'", "'=='", - "'=~'", "'!='", - "'<'", "'<='", - "'>'", "'>='", - "'+'", "'-'", - "'*'", "'/'", - "'%'", null, - null, "']'", + "'|'", null, null, null, + "'by'", "'and'", + "'asc'", "'='", + "'::'", "','", + "'desc'", "'.'", + "'false'", "'first'", + "'in'", "'is'", + "'last'", "'like'", + "'('", null, + "'not'", "'null'", + "'nulls'", "'or'", + "'?'", "'rlike'", + "')'", "'true'", + "'=='", "'=~'", + "'!='", "'<'", + "'<='", "'>'", + "'>='", "'+'", + "'-'", "'*'", + "'/'", "'%'", null, null, - null, "'metadata'", + "']'", null, + null, null, + null, null, + "'metadata'", null, null, null, null, null, null, @@ -275,7 +279,7 @@ export default class esql_parser extends Parser { "RENAME", "ROW", "SHOW", "SORT", "STATS", "WHERE", - "UNKNOWN_CMD", + "MATCH", "UNKNOWN_CMD", "LINE_COMMENT", "MULTILINE_COMMENT", "WS", "UNQUOTED_SOURCE", @@ -293,16 +297,16 @@ export default class esql_parser extends Parser { "FIRST", "IN", "IS", "LAST", "LIKE", "LP", - "MATCH", "NOT", - "NULL", "NULLS", - "OR", "PARAM", - "RLIKE", "RP", - "TRUE", "EQ", - "CIEQ", "NEQ", - "LT", "LTE", - "GT", "GTE", - "PLUS", "MINUS", - "ASTERISK", + "MATCH_OPERATOR", + "NOT", "NULL", + "NULLS", "OR", + "PARAM", "RLIKE", + "RP", "TRUE", + "EQ", "CIEQ", + "NEQ", "LT", + "LTE", "GT", + "GTE", "PLUS", + "MINUS", "ASTERISK", "SLASH", "PERCENT", "NAMED_OR_POSITIONAL_PARAM", "OPENING_BRACKET", @@ -371,7 +375,8 @@ export default class esql_parser extends Parser { "dissectCommand", "grokCommand", "mvExpandCommand", "commandOptions", "commandOption", "booleanValue", "numericValue", "decimalValue", "integerValue", "string", "comparisonOperator", "explainCommand", "subqueryExpression", - "showCommand", "metaCommand", "enrichCommand", "enrichWithClause", "lookupCommand", + "showCommand", "metaCommand", "enrichCommand", "enrichWithClause", "lookupCommand", + "matchCommand", "matchQuery", ]; public get grammarFileName(): string { return "esql_parser.g4"; } public get literalNames(): (string | null)[] { return esql_parser.literalNames; } @@ -394,9 +399,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 118; + this.state = 122; this.query(0); - this.state = 119; + this.state = 123; this.match(esql_parser.EOF); } } @@ -438,11 +443,11 @@ export default class esql_parser extends Parser { this._ctx = localctx; _prevctx = localctx; - this.state = 122; + this.state = 126; this.sourceCommand(); } this._ctx.stop = this._input.LT(-1); - this.state = 129; + this.state = 133; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 0, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { @@ -455,18 +460,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 = 124; + this.state = 128; if (!(this.precpred(this._ctx, 1))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); } - this.state = 125; + this.state = 129; this.match(esql_parser.PIPE); - this.state = 126; + this.state = 130; this.processingCommand(); } } } - this.state = 131; + this.state = 135; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 0, this._ctx); } @@ -491,48 +496,48 @@ 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 = 138; + this.state = 142; this._errHandler.sync(this); switch (this._input.LA(1)) { case 5: this.enterOuterAlt(localctx, 1); { - this.state = 132; + this.state = 136; this.explainCommand(); } break; case 6: this.enterOuterAlt(localctx, 2); { - this.state = 133; + this.state = 137; this.fromCommand(); } break; case 16: this.enterOuterAlt(localctx, 3); { - this.state = 134; + this.state = 138; this.rowCommand(); } break; case 13: this.enterOuterAlt(localctx, 4); { - this.state = 135; + this.state = 139; this.metricsCommand(); } break; case 17: this.enterOuterAlt(localctx, 5); { - this.state = 136; + this.state = 140; this.showCommand(); } break; case 12: this.enterOuterAlt(localctx, 6); { - this.state = 137; + this.state = 141; this.metaCommand(); } break; @@ -559,107 +564,114 @@ 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 = 154; + this.state = 159; this._errHandler.sync(this); switch (this._input.LA(1)) { case 4: this.enterOuterAlt(localctx, 1); { - this.state = 140; + this.state = 144; this.evalCommand(); } break; case 8: this.enterOuterAlt(localctx, 2); { - this.state = 141; + this.state = 145; this.inlinestatsCommand(); } break; case 10: this.enterOuterAlt(localctx, 3); { - this.state = 142; + this.state = 146; this.limitCommand(); } break; case 11: this.enterOuterAlt(localctx, 4); { - this.state = 143; + this.state = 147; this.lookupCommand(); } break; case 9: this.enterOuterAlt(localctx, 5); { - this.state = 144; + this.state = 148; this.keepCommand(); } break; case 18: this.enterOuterAlt(localctx, 6); { - this.state = 145; + this.state = 149; this.sortCommand(); } break; case 19: this.enterOuterAlt(localctx, 7); { - this.state = 146; + this.state = 150; this.statsCommand(); } break; case 20: this.enterOuterAlt(localctx, 8); { - this.state = 147; + this.state = 151; this.whereCommand(); } break; case 2: this.enterOuterAlt(localctx, 9); { - this.state = 148; + this.state = 152; this.dropCommand(); } break; case 15: this.enterOuterAlt(localctx, 10); { - this.state = 149; + this.state = 153; this.renameCommand(); } break; case 1: this.enterOuterAlt(localctx, 11); { - this.state = 150; + this.state = 154; this.dissectCommand(); } break; case 7: this.enterOuterAlt(localctx, 12); { - this.state = 151; + this.state = 155; this.grokCommand(); } break; case 3: this.enterOuterAlt(localctx, 13); { - this.state = 152; + this.state = 156; this.enrichCommand(); } break; case 14: this.enterOuterAlt(localctx, 14); { - this.state = 153; + this.state = 157; this.mvExpandCommand(); } break; + case 21: + this.enterOuterAlt(localctx, 15); + { + this.state = 158; + this.matchCommand(); + } + break; default: throw new NoViableAltException(this); } @@ -685,9 +697,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 156; + this.state = 161; this.match(esql_parser.WHERE); - this.state = 157; + this.state = 162; this.booleanExpression(0); } } @@ -725,7 +737,7 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 188; + this.state = 193; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 6, this._ctx) ) { case 1: @@ -734,9 +746,9 @@ export default class esql_parser extends Parser { this._ctx = localctx; _prevctx = localctx; - this.state = 160; + this.state = 165; this.match(esql_parser.NOT); - this.state = 161; + this.state = 166; this.booleanExpression(8); } break; @@ -745,7 +757,7 @@ export default class esql_parser extends Parser { localctx = new BooleanDefaultContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 162; + this.state = 167; this.valueExpression(); } break; @@ -754,7 +766,7 @@ export default class esql_parser extends Parser { localctx = new RegexExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 163; + this.state = 168; this.regexBooleanExpression(); } break; @@ -763,7 +775,7 @@ export default class esql_parser extends Parser { localctx = new MatchExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 164; + this.state = 169; this.matchBooleanExpression(); } break; @@ -772,41 +784,41 @@ export default class esql_parser extends Parser { localctx = new LogicalInContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 165; + this.state = 170; this.valueExpression(); - this.state = 167; + this.state = 172; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la===49) { + if (_la===50) { { - this.state = 166; + this.state = 171; this.match(esql_parser.NOT); } } - this.state = 169; + this.state = 174; this.match(esql_parser.IN); - this.state = 170; + this.state = 175; this.match(esql_parser.LP); - this.state = 171; - this.valueExpression(); this.state = 176; + this.valueExpression(); + this.state = 181; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la===38) { + while (_la===39) { { { - this.state = 172; + this.state = 177; this.match(esql_parser.COMMA); - this.state = 173; + this.state = 178; this.valueExpression(); } } - this.state = 178; + this.state = 183; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 179; + this.state = 184; this.match(esql_parser.RP); } break; @@ -815,27 +827,27 @@ export default class esql_parser extends Parser { localctx = new IsNullContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 181; + this.state = 186; this.valueExpression(); - this.state = 182; + this.state = 187; this.match(esql_parser.IS); - this.state = 184; + this.state = 189; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la===49) { + if (_la===50) { { - this.state = 183; + this.state = 188; this.match(esql_parser.NOT); } } - this.state = 186; + this.state = 191; this.match(esql_parser.NULL); } break; } this._ctx.stop = this._input.LT(-1); - this.state = 198; + this.state = 203; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 8, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { @@ -845,7 +857,7 @@ export default class esql_parser extends Parser { } _prevctx = localctx; { - this.state = 196; + this.state = 201; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 7, this._ctx) ) { case 1: @@ -853,13 +865,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 = 190; + this.state = 195; if (!(this.precpred(this._ctx, 4))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 4)"); } - this.state = 191; + this.state = 196; (localctx as LogicalBinaryContext)._operator = this.match(esql_parser.AND); - this.state = 192; + this.state = 197; (localctx as LogicalBinaryContext)._right = this.booleanExpression(5); } break; @@ -868,20 +880,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 = 193; + this.state = 198; if (!(this.precpred(this._ctx, 3))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); } - this.state = 194; + this.state = 199; (localctx as LogicalBinaryContext)._operator = this.match(esql_parser.OR); - this.state = 195; + this.state = 200; (localctx as LogicalBinaryContext)._right = this.booleanExpression(4); } break; } } } - this.state = 200; + this.state = 205; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 8, this._ctx); } @@ -907,48 +919,48 @@ export default class esql_parser extends Parser { this.enterRule(localctx, 12, esql_parser.RULE_regexBooleanExpression); let _la: number; try { - this.state = 215; + this.state = 220; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 11, this._ctx) ) { case 1: this.enterOuterAlt(localctx, 1); { - this.state = 201; + this.state = 206; this.valueExpression(); - this.state = 203; + this.state = 208; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la===49) { + if (_la===50) { { - this.state = 202; + this.state = 207; this.match(esql_parser.NOT); } } - this.state = 205; + this.state = 210; localctx._kind = this.match(esql_parser.LIKE); - this.state = 206; + this.state = 211; localctx._pattern = this.string_(); } break; case 2: this.enterOuterAlt(localctx, 2); { - this.state = 208; + this.state = 213; this.valueExpression(); - this.state = 210; + this.state = 215; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la===49) { + if (_la===50) { { - this.state = 209; + this.state = 214; this.match(esql_parser.NOT); } } - this.state = 212; + this.state = 217; localctx._kind = this.match(esql_parser.RLIKE); - this.state = 213; + this.state = 218; localctx._pattern = this.string_(); } break; @@ -975,11 +987,11 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 217; + this.state = 222; this.qualifiedName(); - this.state = 218; - this.match(esql_parser.MATCH); - this.state = 219; + this.state = 223; + this.match(esql_parser.MATCH_OPERATOR); + this.state = 224; localctx._queryString = this.string_(); } } @@ -1002,14 +1014,14 @@ export default class esql_parser extends Parser { let localctx: ValueExpressionContext = new ValueExpressionContext(this, this._ctx, this.state); this.enterRule(localctx, 16, esql_parser.RULE_valueExpression); try { - this.state = 226; + this.state = 231; 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 = 221; + this.state = 226; this.operatorExpression(0); } break; @@ -1017,11 +1029,11 @@ export default class esql_parser extends Parser { localctx = new ComparisonContext(this, localctx); this.enterOuterAlt(localctx, 2); { - this.state = 222; + this.state = 227; (localctx as ComparisonContext)._left = this.operatorExpression(0); - this.state = 223; + this.state = 228; this.comparisonOperator(); - this.state = 224; + this.state = 229; (localctx as ComparisonContext)._right = this.operatorExpression(0); } break; @@ -1061,7 +1073,7 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 232; + this.state = 237; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 13, this._ctx) ) { case 1: @@ -1070,7 +1082,7 @@ export default class esql_parser extends Parser { this._ctx = localctx; _prevctx = localctx; - this.state = 229; + this.state = 234; this.primaryExpression(0); } break; @@ -1079,23 +1091,23 @@ export default class esql_parser extends Parser { localctx = new ArithmeticUnaryContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 230; + this.state = 235; (localctx as ArithmeticUnaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); - if(!(_la===64 || _la===65)) { + if(!(_la===65 || _la===66)) { (localctx as ArithmeticUnaryContext)._operator = this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 231; + this.state = 236; this.operatorExpression(3); } break; } this._ctx.stop = this._input.LT(-1); - this.state = 242; + this.state = 247; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 15, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { @@ -1105,7 +1117,7 @@ export default class esql_parser extends Parser { } _prevctx = localctx; { - this.state = 240; + this.state = 245; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 14, this._ctx) ) { case 1: @@ -1113,21 +1125,21 @@ 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 = 234; + this.state = 239; if (!(this.precpred(this._ctx, 2))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); } - this.state = 235; + this.state = 240; (localctx as ArithmeticBinaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); - if(!(((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 7) !== 0))) { + if(!(((((_la - 67)) & ~0x1F) === 0 && ((1 << (_la - 67)) & 7) !== 0))) { (localctx as ArithmeticBinaryContext)._operator = this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 236; + this.state = 241; (localctx as ArithmeticBinaryContext)._right = this.operatorExpression(3); } break; @@ -1136,28 +1148,28 @@ 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 = 237; + this.state = 242; if (!(this.precpred(this._ctx, 1))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); } - this.state = 238; + this.state = 243; (localctx as ArithmeticBinaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); - if(!(_la===64 || _la===65)) { + if(!(_la===65 || _la===66)) { (localctx as ArithmeticBinaryContext)._operator = this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 239; + this.state = 244; (localctx as ArithmeticBinaryContext)._right = this.operatorExpression(2); } break; } } } - this.state = 244; + this.state = 249; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 15, this._ctx); } @@ -1196,7 +1208,7 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 253; + this.state = 258; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 16, this._ctx) ) { case 1: @@ -1205,7 +1217,7 @@ export default class esql_parser extends Parser { this._ctx = localctx; _prevctx = localctx; - this.state = 246; + this.state = 251; this.constant(); } break; @@ -1214,7 +1226,7 @@ export default class esql_parser extends Parser { localctx = new DereferenceContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 247; + this.state = 252; this.qualifiedName(); } break; @@ -1223,7 +1235,7 @@ export default class esql_parser extends Parser { localctx = new FunctionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 248; + this.state = 253; this.functionExpression(); } break; @@ -1232,17 +1244,17 @@ export default class esql_parser extends Parser { localctx = new ParenthesizedExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; - this.state = 249; + this.state = 254; this.match(esql_parser.LP); - this.state = 250; + this.state = 255; this.booleanExpression(0); - this.state = 251; + this.state = 256; this.match(esql_parser.RP); } break; } this._ctx.stop = this._input.LT(-1); - this.state = 260; + this.state = 265; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 17, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { @@ -1255,18 +1267,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 = 255; + this.state = 260; if (!(this.precpred(this._ctx, 1))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); } - this.state = 256; + this.state = 261; this.match(esql_parser.CAST_OP); - this.state = 257; + this.state = 262; this.dataType(); } } } - this.state = 262; + this.state = 267; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 17, this._ctx); } @@ -1294,63 +1306,63 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 263; + this.state = 268; this.identifier(); - this.state = 264; + this.state = 269; this.match(esql_parser.LP); - this.state = 274; + this.state = 279; this._errHandler.sync(this); switch (this._input.LA(1)) { - case 66: + case 67: { - this.state = 265; + this.state = 270; this.match(esql_parser.ASTERISK); } break; - case 30: case 31: case 32: - case 41: - case 47: - case 49: + case 33: + case 42: + case 48: case 50: - case 53: - case 56: - case 64: + case 51: + case 54: + case 57: case 65: - case 69: + case 66: case 70: - case 72: + case 71: case 73: + case 74: { { - this.state = 266; - this.booleanExpression(0); this.state = 271; + this.booleanExpression(0); + this.state = 276; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la===38) { + while (_la===39) { { { - this.state = 267; + this.state = 272; this.match(esql_parser.COMMA); - this.state = 268; + this.state = 273; this.booleanExpression(0); } } - this.state = 273; + this.state = 278; this._errHandler.sync(this); _la = this._input.LA(1); } } } break; - case 55: + case 56: break; default: break; } - this.state = 276; + this.state = 281; this.match(esql_parser.RP); } } @@ -1376,7 +1388,7 @@ export default class esql_parser extends Parser { localctx = new ToDataTypeContext(this, localctx); this.enterOuterAlt(localctx, 1); { - this.state = 278; + this.state = 283; this.identifier(); } } @@ -1401,9 +1413,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 280; + this.state = 285; this.match(esql_parser.ROW); - this.state = 281; + this.state = 286; this.fields(); } } @@ -1429,23 +1441,23 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 283; - this.field(); this.state = 288; + this.field(); + this.state = 293; 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 = 284; + this.state = 289; this.match(esql_parser.COMMA); - this.state = 285; + this.state = 290; this.field(); } } } - this.state = 290; + this.state = 295; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 20, this._ctx); } @@ -1470,24 +1482,24 @@ export default class esql_parser extends Parser { let localctx: FieldContext = new FieldContext(this, this._ctx, this.state); this.enterRule(localctx, 30, esql_parser.RULE_field); try { - this.state = 296; + this.state = 301; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 21, this._ctx) ) { case 1: this.enterOuterAlt(localctx, 1); { - this.state = 291; + this.state = 296; this.booleanExpression(0); } break; case 2: this.enterOuterAlt(localctx, 2); { - this.state = 292; + this.state = 297; this.qualifiedName(); - this.state = 293; + this.state = 298; this.match(esql_parser.ASSIGN); - this.state = 294; + this.state = 299; this.booleanExpression(0); } break; @@ -1515,34 +1527,34 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 298; + this.state = 303; this.match(esql_parser.FROM); - this.state = 299; - this.indexPattern(); this.state = 304; + this.indexPattern(); + this.state = 309; 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 = 300; + this.state = 305; this.match(esql_parser.COMMA); - this.state = 301; + this.state = 306; this.indexPattern(); } } } - this.state = 306; + this.state = 311; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 22, this._ctx); } - this.state = 308; + this.state = 313; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 23, this._ctx) ) { case 1: { - this.state = 307; + this.state = 312; this.metadata(); } break; @@ -1568,24 +1580,24 @@ export default class esql_parser extends Parser { let localctx: IndexPatternContext = new IndexPatternContext(this, this._ctx, this.state); this.enterRule(localctx, 34, esql_parser.RULE_indexPattern); try { - this.state = 315; + this.state = 320; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 24, this._ctx) ) { case 1: this.enterOuterAlt(localctx, 1); { - this.state = 310; + this.state = 315; this.clusterString(); - this.state = 311; + this.state = 316; this.match(esql_parser.COLON); - this.state = 312; + this.state = 317; this.indexString(); } break; case 2: this.enterOuterAlt(localctx, 2); { - this.state = 314; + this.state = 319; this.indexString(); } break; @@ -1612,7 +1624,7 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 317; + this.state = 322; this.match(esql_parser.UNQUOTED_SOURCE); } } @@ -1638,9 +1650,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 319; + this.state = 324; _la = this._input.LA(1); - if(!(_la===25 || _la===30)) { + if(!(_la===26 || _la===31)) { this._errHandler.recoverInline(this); } else { @@ -1668,20 +1680,20 @@ export default class esql_parser extends Parser { let localctx: MetadataContext = new MetadataContext(this, this._ctx, this.state); this.enterRule(localctx, 40, esql_parser.RULE_metadata); try { - this.state = 323; + this.state = 328; this._errHandler.sync(this); switch (this._input.LA(1)) { - case 77: + case 78: this.enterOuterAlt(localctx, 1); { - this.state = 321; + this.state = 326; this.metadataOption(); } break; - case 70: + case 71: this.enterOuterAlt(localctx, 2); { - this.state = 322; + this.state = 327; this.deprecated_metadata(); } break; @@ -1711,25 +1723,25 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 325; + this.state = 330; this.match(esql_parser.METADATA); - this.state = 326; - this.match(esql_parser.UNQUOTED_SOURCE); this.state = 331; + this.match(esql_parser.UNQUOTED_SOURCE); + this.state = 336; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 26, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 327; + this.state = 332; this.match(esql_parser.COMMA); - this.state = 328; + this.state = 333; this.match(esql_parser.UNQUOTED_SOURCE); } } } - this.state = 333; + this.state = 338; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 26, this._ctx); } @@ -1756,11 +1768,11 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 334; + this.state = 339; this.match(esql_parser.OPENING_BRACKET); - this.state = 335; + this.state = 340; this.metadataOption(); - this.state = 336; + this.state = 341; this.match(esql_parser.CLOSING_BRACKET); } } @@ -1786,46 +1798,46 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 338; + this.state = 343; this.match(esql_parser.METRICS); - this.state = 339; - this.indexPattern(); this.state = 344; + this.indexPattern(); + this.state = 349; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 27, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 340; + this.state = 345; this.match(esql_parser.COMMA); - this.state = 341; + this.state = 346; this.indexPattern(); } } } - this.state = 346; + this.state = 351; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 27, this._ctx); } - this.state = 348; + this.state = 353; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 28, this._ctx) ) { case 1: { - this.state = 347; + this.state = 352; localctx._aggregates = this.fields(); } break; } - this.state = 352; + this.state = 357; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 29, this._ctx) ) { case 1: { - this.state = 350; + this.state = 355; this.match(esql_parser.BY); - this.state = 351; + this.state = 356; localctx._grouping = this.fields(); } break; @@ -1853,9 +1865,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 354; + this.state = 359; this.match(esql_parser.EVAL); - this.state = 355; + this.state = 360; this.fields(); } } @@ -1880,26 +1892,26 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 357; + this.state = 362; this.match(esql_parser.STATS); - this.state = 359; + this.state = 364; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 30, this._ctx) ) { case 1: { - this.state = 358; + this.state = 363; localctx._stats = this.fields(); } break; } - this.state = 363; + this.state = 368; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 31, this._ctx) ) { case 1: { - this.state = 361; + this.state = 366; this.match(esql_parser.BY); - this.state = 362; + this.state = 367; localctx._grouping = this.fields(); } break; @@ -1927,18 +1939,18 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 365; + this.state = 370; this.match(esql_parser.INLINESTATS); - this.state = 366; + this.state = 371; localctx._stats = this.fields(); - this.state = 369; + this.state = 374; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 32, this._ctx) ) { case 1: { - this.state = 367; + this.state = 372; this.match(esql_parser.BY); - this.state = 368; + this.state = 373; localctx._grouping = this.fields(); } break; @@ -1967,23 +1979,23 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 371; - this.identifier(); this.state = 376; + this.identifier(); + this.state = 381; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 33, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 372; + this.state = 377; this.match(esql_parser.DOT); - this.state = 373; + this.state = 378; this.identifier(); } } } - this.state = 378; + this.state = 383; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 33, this._ctx); } @@ -2011,23 +2023,23 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 379; - this.identifierPattern(); this.state = 384; + this.identifierPattern(); + this.state = 389; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 34, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 380; + this.state = 385; this.match(esql_parser.DOT); - this.state = 381; + this.state = 386; this.identifierPattern(); } } } - this.state = 386; + this.state = 391; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 34, this._ctx); } @@ -2055,23 +2067,23 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 387; - this.qualifiedNamePattern(); this.state = 392; + this.qualifiedNamePattern(); + this.state = 397; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 35, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 388; + this.state = 393; this.match(esql_parser.COMMA); - this.state = 389; + this.state = 394; this.qualifiedNamePattern(); } } } - this.state = 394; + this.state = 399; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 35, this._ctx); } @@ -2099,9 +2111,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 395; + this.state = 400; _la = this._input.LA(1); - if(!(_la===72 || _la===73)) { + if(!(_la===73 || _la===74)) { this._errHandler.recoverInline(this); } else { @@ -2131,7 +2143,7 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 397; + this.state = 402; this.match(esql_parser.ID_PATTERN); } } @@ -2155,14 +2167,14 @@ export default class esql_parser extends Parser { this.enterRule(localctx, 64, esql_parser.RULE_constant); let _la: number; try { - this.state = 441; + this.state = 446; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 39, this._ctx) ) { case 1: localctx = new NullLiteralContext(this, localctx); this.enterOuterAlt(localctx, 1); { - this.state = 399; + this.state = 404; this.match(esql_parser.NULL); } break; @@ -2170,9 +2182,9 @@ export default class esql_parser extends Parser { localctx = new QualifiedIntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 2); { - this.state = 400; + this.state = 405; this.integerValue(); - this.state = 401; + this.state = 406; this.match(esql_parser.UNQUOTED_IDENTIFIER); } break; @@ -2180,7 +2192,7 @@ export default class esql_parser extends Parser { localctx = new DecimalLiteralContext(this, localctx); this.enterOuterAlt(localctx, 3); { - this.state = 403; + this.state = 408; this.decimalValue(); } break; @@ -2188,7 +2200,7 @@ export default class esql_parser extends Parser { localctx = new IntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 4); { - this.state = 404; + this.state = 409; this.integerValue(); } break; @@ -2196,7 +2208,7 @@ export default class esql_parser extends Parser { localctx = new BooleanLiteralContext(this, localctx); this.enterOuterAlt(localctx, 5); { - this.state = 405; + this.state = 410; this.booleanValue(); } break; @@ -2204,7 +2216,7 @@ export default class esql_parser extends Parser { localctx = new InputParamsContext(this, localctx); this.enterOuterAlt(localctx, 6); { - this.state = 406; + this.state = 411; this.params(); } break; @@ -2212,7 +2224,7 @@ export default class esql_parser extends Parser { localctx = new StringLiteralContext(this, localctx); this.enterOuterAlt(localctx, 7); { - this.state = 407; + this.state = 412; this.string_(); } break; @@ -2220,27 +2232,27 @@ export default class esql_parser extends Parser { localctx = new NumericArrayLiteralContext(this, localctx); this.enterOuterAlt(localctx, 8); { - this.state = 408; + this.state = 413; this.match(esql_parser.OPENING_BRACKET); - this.state = 409; - this.numericValue(); this.state = 414; + this.numericValue(); + this.state = 419; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la===38) { + while (_la===39) { { { - this.state = 410; + this.state = 415; this.match(esql_parser.COMMA); - this.state = 411; + this.state = 416; this.numericValue(); } } - this.state = 416; + this.state = 421; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 417; + this.state = 422; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -2248,27 +2260,27 @@ export default class esql_parser extends Parser { localctx = new BooleanArrayLiteralContext(this, localctx); this.enterOuterAlt(localctx, 9); { - this.state = 419; + this.state = 424; this.match(esql_parser.OPENING_BRACKET); - this.state = 420; - this.booleanValue(); this.state = 425; + this.booleanValue(); + this.state = 430; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la===38) { + while (_la===39) { { { - this.state = 421; + this.state = 426; this.match(esql_parser.COMMA); - this.state = 422; + this.state = 427; this.booleanValue(); } } - this.state = 427; + this.state = 432; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 428; + this.state = 433; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -2276,27 +2288,27 @@ export default class esql_parser extends Parser { localctx = new StringArrayLiteralContext(this, localctx); this.enterOuterAlt(localctx, 10); { - this.state = 430; + this.state = 435; this.match(esql_parser.OPENING_BRACKET); - this.state = 431; - this.string_(); this.state = 436; + this.string_(); + this.state = 441; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la===38) { + while (_la===39) { { { - this.state = 432; + this.state = 437; this.match(esql_parser.COMMA); - this.state = 433; + this.state = 438; this.string_(); } } - this.state = 438; + this.state = 443; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 439; + this.state = 444; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -2321,22 +2333,22 @@ export default class esql_parser extends Parser { let localctx: ParamsContext = new ParamsContext(this, this._ctx, this.state); this.enterRule(localctx, 66, esql_parser.RULE_params); try { - this.state = 445; + this.state = 450; this._errHandler.sync(this); switch (this._input.LA(1)) { - case 53: + case 54: localctx = new InputParamContext(this, localctx); this.enterOuterAlt(localctx, 1); { - this.state = 443; + this.state = 448; this.match(esql_parser.PARAM); } break; - case 69: + case 70: localctx = new InputNamedOrPositionalParamContext(this, localctx); this.enterOuterAlt(localctx, 2); { - this.state = 444; + this.state = 449; this.match(esql_parser.NAMED_OR_POSITIONAL_PARAM); } break; @@ -2365,9 +2377,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 447; + this.state = 452; this.match(esql_parser.LIMIT); - this.state = 448; + this.state = 453; this.match(esql_parser.INTEGER_LITERAL); } } @@ -2393,25 +2405,25 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 450; + this.state = 455; this.match(esql_parser.SORT); - this.state = 451; - this.orderExpression(); this.state = 456; + this.orderExpression(); + this.state = 461; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 41, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 452; + this.state = 457; this.match(esql_parser.COMMA); - this.state = 453; + this.state = 458; this.orderExpression(); } } } - this.state = 458; + this.state = 463; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 41, this._ctx); } @@ -2439,17 +2451,17 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 459; + this.state = 464; this.booleanExpression(0); - this.state = 461; + this.state = 466; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 42, this._ctx) ) { case 1: { - this.state = 460; + this.state = 465; localctx._ordering = this._input.LT(1); _la = this._input.LA(1); - if(!(_la===35 || _la===39)) { + if(!(_la===36 || _la===40)) { localctx._ordering = this._errHandler.recoverInline(this); } else { @@ -2459,17 +2471,17 @@ export default class esql_parser extends Parser { } break; } - this.state = 465; + this.state = 470; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 43, this._ctx) ) { case 1: { - this.state = 463; + this.state = 468; this.match(esql_parser.NULLS); - this.state = 464; + this.state = 469; localctx._nullOrdering = this._input.LT(1); _la = this._input.LA(1); - if(!(_la===42 || _la===45)) { + if(!(_la===43 || _la===46)) { localctx._nullOrdering = this._errHandler.recoverInline(this); } else { @@ -2502,9 +2514,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 467; + this.state = 472; this.match(esql_parser.KEEP); - this.state = 468; + this.state = 473; this.qualifiedNamePatterns(); } } @@ -2529,9 +2541,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 470; + this.state = 475; this.match(esql_parser.DROP); - this.state = 471; + this.state = 476; this.qualifiedNamePatterns(); } } @@ -2557,25 +2569,25 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 473; + this.state = 478; this.match(esql_parser.RENAME); - this.state = 474; - this.renameClause(); this.state = 479; + this.renameClause(); + this.state = 484; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 44, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 475; + this.state = 480; this.match(esql_parser.COMMA); - this.state = 476; + this.state = 481; this.renameClause(); } } } - this.state = 481; + this.state = 486; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 44, this._ctx); } @@ -2602,11 +2614,11 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 482; + this.state = 487; localctx._oldName = this.qualifiedNamePattern(); - this.state = 483; + this.state = 488; this.match(esql_parser.AS); - this.state = 484; + this.state = 489; localctx._newName = this.qualifiedNamePattern(); } } @@ -2631,18 +2643,18 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 486; + this.state = 491; this.match(esql_parser.DISSECT); - this.state = 487; + this.state = 492; this.primaryExpression(0); - this.state = 488; + this.state = 493; this.string_(); - this.state = 490; + this.state = 495; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 45, this._ctx) ) { case 1: { - this.state = 489; + this.state = 494; this.commandOptions(); } break; @@ -2670,11 +2682,11 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 492; + this.state = 497; this.match(esql_parser.GROK); - this.state = 493; + this.state = 498; this.primaryExpression(0); - this.state = 494; + this.state = 499; this.string_(); } } @@ -2699,9 +2711,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 496; + this.state = 501; this.match(esql_parser.MV_EXPAND); - this.state = 497; + this.state = 502; this.qualifiedName(); } } @@ -2727,23 +2739,23 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 499; - this.commandOption(); this.state = 504; + this.commandOption(); + this.state = 509; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 46, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 500; + this.state = 505; this.match(esql_parser.COMMA); - this.state = 501; + this.state = 506; this.commandOption(); } } } - this.state = 506; + this.state = 511; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 46, this._ctx); } @@ -2770,11 +2782,11 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 507; + this.state = 512; this.identifier(); - this.state = 508; + this.state = 513; this.match(esql_parser.ASSIGN); - this.state = 509; + this.state = 514; this.constant(); } } @@ -2800,9 +2812,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 511; + this.state = 516; _la = this._input.LA(1); - if(!(_la===41 || _la===56)) { + if(!(_la===42 || _la===57)) { this._errHandler.recoverInline(this); } else { @@ -2830,20 +2842,20 @@ export default class esql_parser extends Parser { let localctx: NumericValueContext = new NumericValueContext(this, this._ctx, this.state); this.enterRule(localctx, 94, esql_parser.RULE_numericValue); try { - this.state = 515; + this.state = 520; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 47, this._ctx) ) { case 1: this.enterOuterAlt(localctx, 1); { - this.state = 513; + this.state = 518; this.decimalValue(); } break; case 2: this.enterOuterAlt(localctx, 2); { - this.state = 514; + this.state = 519; this.integerValue(); } break; @@ -2871,14 +2883,14 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 518; + this.state = 523; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la===64 || _la===65) { + if (_la===65 || _la===66) { { - this.state = 517; + this.state = 522; _la = this._input.LA(1); - if(!(_la===64 || _la===65)) { + if(!(_la===65 || _la===66)) { this._errHandler.recoverInline(this); } else { @@ -2888,7 +2900,7 @@ export default class esql_parser extends Parser { } } - this.state = 520; + this.state = 525; this.match(esql_parser.DECIMAL_LITERAL); } } @@ -2914,14 +2926,14 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 523; + this.state = 528; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la===64 || _la===65) { + if (_la===65 || _la===66) { { - this.state = 522; + this.state = 527; _la = this._input.LA(1); - if(!(_la===64 || _la===65)) { + if(!(_la===65 || _la===66)) { this._errHandler.recoverInline(this); } else { @@ -2931,7 +2943,7 @@ export default class esql_parser extends Parser { } } - this.state = 525; + this.state = 530; this.match(esql_parser.INTEGER_LITERAL); } } @@ -2956,7 +2968,7 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 527; + this.state = 532; this.match(esql_parser.QUOTED_STRING); } } @@ -2982,9 +2994,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 529; + this.state = 534; _la = this._input.LA(1); - if(!(((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 125) !== 0))) { + if(!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 125) !== 0))) { this._errHandler.recoverInline(this); } else { @@ -3014,9 +3026,9 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 531; + this.state = 536; this.match(esql_parser.EXPLAIN); - this.state = 532; + this.state = 537; this.subqueryExpression(); } } @@ -3041,11 +3053,11 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 534; + this.state = 539; this.match(esql_parser.OPENING_BRACKET); - this.state = 535; + this.state = 540; this.query(0); - this.state = 536; + this.state = 541; this.match(esql_parser.CLOSING_BRACKET); } } @@ -3071,9 +3083,9 @@ export default class esql_parser extends Parser { localctx = new ShowInfoContext(this, localctx); this.enterOuterAlt(localctx, 1); { - this.state = 538; + this.state = 543; this.match(esql_parser.SHOW); - this.state = 539; + this.state = 544; this.match(esql_parser.INFO); } } @@ -3099,9 +3111,9 @@ export default class esql_parser extends Parser { localctx = new MetaFunctionsContext(this, localctx); this.enterOuterAlt(localctx, 1); { - this.state = 541; + this.state = 546; this.match(esql_parser.META); - this.state = 542; + this.state = 547; this.match(esql_parser.FUNCTIONS); } } @@ -3127,46 +3139,46 @@ export default class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(localctx, 1); { - this.state = 544; + this.state = 549; this.match(esql_parser.ENRICH); - this.state = 545; + this.state = 550; localctx._policyName = this.match(esql_parser.ENRICH_POLICY_NAME); - this.state = 548; + this.state = 553; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 50, this._ctx) ) { case 1: { - this.state = 546; + this.state = 551; this.match(esql_parser.ON); - this.state = 547; + this.state = 552; localctx._matchField = this.qualifiedNamePattern(); } break; } - this.state = 559; + this.state = 564; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 52, this._ctx) ) { case 1: { - this.state = 550; + this.state = 555; this.match(esql_parser.WITH); - this.state = 551; - this.enrichWithClause(); this.state = 556; + this.enrichWithClause(); + this.state = 561; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 51, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 552; + this.state = 557; this.match(esql_parser.COMMA); - this.state = 553; + this.state = 558; this.enrichWithClause(); } } } - this.state = 558; + this.state = 563; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input, 51, this._ctx); } @@ -3196,19 +3208,19 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 564; + this.state = 569; this._errHandler.sync(this); switch ( this._interp.adaptivePredict(this._input, 53, this._ctx) ) { case 1: { - this.state = 561; + this.state = 566; localctx._newName = this.qualifiedNamePattern(); - this.state = 562; + this.state = 567; this.match(esql_parser.ASSIGN); } break; } - this.state = 566; + this.state = 571; localctx._enrichField = this.qualifiedNamePattern(); } } @@ -3233,13 +3245,13 @@ export default class esql_parser extends Parser { try { this.enterOuterAlt(localctx, 1); { - this.state = 568; + this.state = 573; this.match(esql_parser.LOOKUP); - this.state = 569; + this.state = 574; localctx._tableName = this.indexPattern(); - this.state = 570; + this.state = 575; this.match(esql_parser.ON); - this.state = 571; + this.state = 576; localctx._matchFields = this.qualifiedNamePatterns(); } } @@ -3257,6 +3269,58 @@ export default class esql_parser extends Parser { } return localctx; } + // @RuleVersion(0) + public matchCommand(): MatchCommandContext { + let localctx: MatchCommandContext = new MatchCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 118, esql_parser.RULE_matchCommand); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 578; + this.match(esql_parser.MATCH); + this.state = 579; + this.matchQuery(); + } + } + 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 matchQuery(): MatchQueryContext { + let localctx: MatchQueryContext = new MatchQueryContext(this, this._ctx, this.state); + this.enterRule(localctx, 120, esql_parser.RULE_matchQuery); + try { + this.enterOuterAlt(localctx, 1); + { + this.state = 581; + this.match(esql_parser.QUOTED_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; + } public sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { switch (ruleIndex) { @@ -3304,7 +3368,7 @@ export default class esql_parser extends Parser { return true; } - public static readonly _serializedATN: number[] = [4,1,125,574,2,0,7,0, + public static readonly _serializedATN: number[] = [4,1,126,584,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, @@ -3312,185 +3376,188 @@ export default class esql_parser extends Parser { 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,1,0,1,0,1,0,1,1, - 1,1,1,1,1,1,1,1,1,1,5,1,128,8,1,10,1,12,1,131,9,1,1,2,1,2,1,2,1,2,1,2,1, - 2,3,2,139,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,1,3,3, - 3,155,8,3,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,168,8,5,1,5,1, - 5,1,5,1,5,1,5,5,5,175,8,5,10,5,12,5,178,9,5,1,5,1,5,1,5,1,5,1,5,3,5,185, - 8,5,1,5,1,5,3,5,189,8,5,1,5,1,5,1,5,1,5,1,5,1,5,5,5,197,8,5,10,5,12,5,200, - 9,5,1,6,1,6,3,6,204,8,6,1,6,1,6,1,6,1,6,1,6,3,6,211,8,6,1,6,1,6,1,6,3,6, - 216,8,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,3,8,227,8,8,1,9,1,9,1,9,1,9, - 3,9,233,8,9,1,9,1,9,1,9,1,9,1,9,1,9,5,9,241,8,9,10,9,12,9,244,9,9,1,10, - 1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,254,8,10,1,10,1,10,1,10,5,10,259, - 8,10,10,10,12,10,262,9,10,1,11,1,11,1,11,1,11,1,11,1,11,5,11,270,8,11,10, - 11,12,11,273,9,11,3,11,275,8,11,1,11,1,11,1,12,1,12,1,13,1,13,1,13,1,14, - 1,14,1,14,5,14,287,8,14,10,14,12,14,290,9,14,1,15,1,15,1,15,1,15,1,15,3, - 15,297,8,15,1,16,1,16,1,16,1,16,5,16,303,8,16,10,16,12,16,306,9,16,1,16, - 3,16,309,8,16,1,17,1,17,1,17,1,17,1,17,3,17,316,8,17,1,18,1,18,1,19,1,19, - 1,20,1,20,3,20,324,8,20,1,21,1,21,1,21,1,21,5,21,330,8,21,10,21,12,21,333, - 9,21,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,5,23,343,8,23,10,23,12,23, - 346,9,23,1,23,3,23,349,8,23,1,23,1,23,3,23,353,8,23,1,24,1,24,1,24,1,25, - 1,25,3,25,360,8,25,1,25,1,25,3,25,364,8,25,1,26,1,26,1,26,1,26,3,26,370, - 8,26,1,27,1,27,1,27,5,27,375,8,27,10,27,12,27,378,9,27,1,28,1,28,1,28,5, - 28,383,8,28,10,28,12,28,386,9,28,1,29,1,29,1,29,5,29,391,8,29,10,29,12, - 29,394,9,29,1,30,1,30,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32, - 1,32,1,32,1,32,1,32,1,32,5,32,413,8,32,10,32,12,32,416,9,32,1,32,1,32,1, - 32,1,32,1,32,1,32,5,32,424,8,32,10,32,12,32,427,9,32,1,32,1,32,1,32,1,32, - 1,32,1,32,5,32,435,8,32,10,32,12,32,438,9,32,1,32,1,32,3,32,442,8,32,1, - 33,1,33,3,33,446,8,33,1,34,1,34,1,34,1,35,1,35,1,35,1,35,5,35,455,8,35, - 10,35,12,35,458,9,35,1,36,1,36,3,36,462,8,36,1,36,1,36,3,36,466,8,36,1, - 37,1,37,1,37,1,38,1,38,1,38,1,39,1,39,1,39,1,39,5,39,478,8,39,10,39,12, - 39,481,9,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,3,41,491,8,41,1,42, - 1,42,1,42,1,42,1,43,1,43,1,43,1,44,1,44,1,44,5,44,503,8,44,10,44,12,44, - 506,9,44,1,45,1,45,1,45,1,45,1,46,1,46,1,47,1,47,3,47,516,8,47,1,48,3,48, - 519,8,48,1,48,1,48,1,49,3,49,524,8,49,1,49,1,49,1,50,1,50,1,51,1,51,1,52, - 1,52,1,52,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,55,1,55,1,55,1,56,1,56,1, - 56,1,56,3,56,549,8,56,1,56,1,56,1,56,1,56,5,56,555,8,56,10,56,12,56,558, - 9,56,3,56,560,8,56,1,57,1,57,1,57,3,57,565,8,57,1,57,1,57,1,58,1,58,1,58, - 1,58,1,58,1,58,0,4,2,10,18,20,59,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,108,110,112,114,116,0, - 8,1,0,64,65,1,0,66,68,2,0,25,25,30,30,1,0,72,73,2,0,35,35,39,39,2,0,42, - 42,45,45,2,0,41,41,56,56,2,0,57,57,59,63,599,0,118,1,0,0,0,2,121,1,0,0, - 0,4,138,1,0,0,0,6,154,1,0,0,0,8,156,1,0,0,0,10,188,1,0,0,0,12,215,1,0,0, - 0,14,217,1,0,0,0,16,226,1,0,0,0,18,232,1,0,0,0,20,253,1,0,0,0,22,263,1, - 0,0,0,24,278,1,0,0,0,26,280,1,0,0,0,28,283,1,0,0,0,30,296,1,0,0,0,32,298, - 1,0,0,0,34,315,1,0,0,0,36,317,1,0,0,0,38,319,1,0,0,0,40,323,1,0,0,0,42, - 325,1,0,0,0,44,334,1,0,0,0,46,338,1,0,0,0,48,354,1,0,0,0,50,357,1,0,0,0, - 52,365,1,0,0,0,54,371,1,0,0,0,56,379,1,0,0,0,58,387,1,0,0,0,60,395,1,0, - 0,0,62,397,1,0,0,0,64,441,1,0,0,0,66,445,1,0,0,0,68,447,1,0,0,0,70,450, - 1,0,0,0,72,459,1,0,0,0,74,467,1,0,0,0,76,470,1,0,0,0,78,473,1,0,0,0,80, - 482,1,0,0,0,82,486,1,0,0,0,84,492,1,0,0,0,86,496,1,0,0,0,88,499,1,0,0,0, - 90,507,1,0,0,0,92,511,1,0,0,0,94,515,1,0,0,0,96,518,1,0,0,0,98,523,1,0, - 0,0,100,527,1,0,0,0,102,529,1,0,0,0,104,531,1,0,0,0,106,534,1,0,0,0,108, - 538,1,0,0,0,110,541,1,0,0,0,112,544,1,0,0,0,114,564,1,0,0,0,116,568,1,0, - 0,0,118,119,3,2,1,0,119,120,5,0,0,1,120,1,1,0,0,0,121,122,6,1,-1,0,122, - 123,3,4,2,0,123,129,1,0,0,0,124,125,10,1,0,0,125,126,5,29,0,0,126,128,3, - 6,3,0,127,124,1,0,0,0,128,131,1,0,0,0,129,127,1,0,0,0,129,130,1,0,0,0,130, - 3,1,0,0,0,131,129,1,0,0,0,132,139,3,104,52,0,133,139,3,32,16,0,134,139, - 3,26,13,0,135,139,3,46,23,0,136,139,3,108,54,0,137,139,3,110,55,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,5,1,0,0,0,140,155,3,48,24,0,141,155,3,52,26,0,142,155, - 3,68,34,0,143,155,3,116,58,0,144,155,3,74,37,0,145,155,3,70,35,0,146,155, - 3,50,25,0,147,155,3,8,4,0,148,155,3,76,38,0,149,155,3,78,39,0,150,155,3, - 82,41,0,151,155,3,84,42,0,152,155,3,112,56,0,153,155,3,86,43,0,154,140, - 1,0,0,0,154,141,1,0,0,0,154,142,1,0,0,0,154,143,1,0,0,0,154,144,1,0,0,0, - 154,145,1,0,0,0,154,146,1,0,0,0,154,147,1,0,0,0,154,148,1,0,0,0,154,149, - 1,0,0,0,154,150,1,0,0,0,154,151,1,0,0,0,154,152,1,0,0,0,154,153,1,0,0,0, - 155,7,1,0,0,0,156,157,5,20,0,0,157,158,3,10,5,0,158,9,1,0,0,0,159,160,6, - 5,-1,0,160,161,5,49,0,0,161,189,3,10,5,8,162,189,3,16,8,0,163,189,3,12, - 6,0,164,189,3,14,7,0,165,167,3,16,8,0,166,168,5,49,0,0,167,166,1,0,0,0, - 167,168,1,0,0,0,168,169,1,0,0,0,169,170,5,43,0,0,170,171,5,47,0,0,171,176, - 3,16,8,0,172,173,5,38,0,0,173,175,3,16,8,0,174,172,1,0,0,0,175,178,1,0, - 0,0,176,174,1,0,0,0,176,177,1,0,0,0,177,179,1,0,0,0,178,176,1,0,0,0,179, - 180,5,55,0,0,180,189,1,0,0,0,181,182,3,16,8,0,182,184,5,44,0,0,183,185, - 5,49,0,0,184,183,1,0,0,0,184,185,1,0,0,0,185,186,1,0,0,0,186,187,5,50,0, - 0,187,189,1,0,0,0,188,159,1,0,0,0,188,162,1,0,0,0,188,163,1,0,0,0,188,164, - 1,0,0,0,188,165,1,0,0,0,188,181,1,0,0,0,189,198,1,0,0,0,190,191,10,4,0, - 0,191,192,5,34,0,0,192,197,3,10,5,5,193,194,10,3,0,0,194,195,5,52,0,0,195, - 197,3,10,5,4,196,190,1,0,0,0,196,193,1,0,0,0,197,200,1,0,0,0,198,196,1, - 0,0,0,198,199,1,0,0,0,199,11,1,0,0,0,200,198,1,0,0,0,201,203,3,16,8,0,202, - 204,5,49,0,0,203,202,1,0,0,0,203,204,1,0,0,0,204,205,1,0,0,0,205,206,5, - 46,0,0,206,207,3,100,50,0,207,216,1,0,0,0,208,210,3,16,8,0,209,211,5,49, - 0,0,210,209,1,0,0,0,210,211,1,0,0,0,211,212,1,0,0,0,212,213,5,54,0,0,213, - 214,3,100,50,0,214,216,1,0,0,0,215,201,1,0,0,0,215,208,1,0,0,0,216,13,1, - 0,0,0,217,218,3,54,27,0,218,219,5,48,0,0,219,220,3,100,50,0,220,15,1,0, - 0,0,221,227,3,18,9,0,222,223,3,18,9,0,223,224,3,102,51,0,224,225,3,18,9, - 0,225,227,1,0,0,0,226,221,1,0,0,0,226,222,1,0,0,0,227,17,1,0,0,0,228,229, - 6,9,-1,0,229,233,3,20,10,0,230,231,7,0,0,0,231,233,3,18,9,3,232,228,1,0, - 0,0,232,230,1,0,0,0,233,242,1,0,0,0,234,235,10,2,0,0,235,236,7,1,0,0,236, - 241,3,18,9,3,237,238,10,1,0,0,238,239,7,0,0,0,239,241,3,18,9,2,240,234, - 1,0,0,0,240,237,1,0,0,0,241,244,1,0,0,0,242,240,1,0,0,0,242,243,1,0,0,0, - 243,19,1,0,0,0,244,242,1,0,0,0,245,246,6,10,-1,0,246,254,3,64,32,0,247, - 254,3,54,27,0,248,254,3,22,11,0,249,250,5,47,0,0,250,251,3,10,5,0,251,252, - 5,55,0,0,252,254,1,0,0,0,253,245,1,0,0,0,253,247,1,0,0,0,253,248,1,0,0, - 0,253,249,1,0,0,0,254,260,1,0,0,0,255,256,10,1,0,0,256,257,5,37,0,0,257, - 259,3,24,12,0,258,255,1,0,0,0,259,262,1,0,0,0,260,258,1,0,0,0,260,261,1, - 0,0,0,261,21,1,0,0,0,262,260,1,0,0,0,263,264,3,60,30,0,264,274,5,47,0,0, - 265,275,5,66,0,0,266,271,3,10,5,0,267,268,5,38,0,0,268,270,3,10,5,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,275,1,0, - 0,0,273,271,1,0,0,0,274,265,1,0,0,0,274,266,1,0,0,0,274,275,1,0,0,0,275, - 276,1,0,0,0,276,277,5,55,0,0,277,23,1,0,0,0,278,279,3,60,30,0,279,25,1, - 0,0,0,280,281,5,16,0,0,281,282,3,28,14,0,282,27,1,0,0,0,283,288,3,30,15, - 0,284,285,5,38,0,0,285,287,3,30,15,0,286,284,1,0,0,0,287,290,1,0,0,0,288, - 286,1,0,0,0,288,289,1,0,0,0,289,29,1,0,0,0,290,288,1,0,0,0,291,297,3,10, - 5,0,292,293,3,54,27,0,293,294,5,36,0,0,294,295,3,10,5,0,295,297,1,0,0,0, - 296,291,1,0,0,0,296,292,1,0,0,0,297,31,1,0,0,0,298,299,5,6,0,0,299,304, - 3,34,17,0,300,301,5,38,0,0,301,303,3,34,17,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,308,1,0,0,0,306,304,1,0,0,0,307, - 309,3,40,20,0,308,307,1,0,0,0,308,309,1,0,0,0,309,33,1,0,0,0,310,311,3, - 36,18,0,311,312,5,115,0,0,312,313,3,38,19,0,313,316,1,0,0,0,314,316,3,38, - 19,0,315,310,1,0,0,0,315,314,1,0,0,0,316,35,1,0,0,0,317,318,5,25,0,0,318, - 37,1,0,0,0,319,320,7,2,0,0,320,39,1,0,0,0,321,324,3,42,21,0,322,324,3,44, - 22,0,323,321,1,0,0,0,323,322,1,0,0,0,324,41,1,0,0,0,325,326,5,77,0,0,326, - 331,5,25,0,0,327,328,5,38,0,0,328,330,5,25,0,0,329,327,1,0,0,0,330,333, - 1,0,0,0,331,329,1,0,0,0,331,332,1,0,0,0,332,43,1,0,0,0,333,331,1,0,0,0, - 334,335,5,70,0,0,335,336,3,42,21,0,336,337,5,71,0,0,337,45,1,0,0,0,338, - 339,5,13,0,0,339,344,3,34,17,0,340,341,5,38,0,0,341,343,3,34,17,0,342,340, - 1,0,0,0,343,346,1,0,0,0,344,342,1,0,0,0,344,345,1,0,0,0,345,348,1,0,0,0, - 346,344,1,0,0,0,347,349,3,28,14,0,348,347,1,0,0,0,348,349,1,0,0,0,349,352, - 1,0,0,0,350,351,5,33,0,0,351,353,3,28,14,0,352,350,1,0,0,0,352,353,1,0, - 0,0,353,47,1,0,0,0,354,355,5,4,0,0,355,356,3,28,14,0,356,49,1,0,0,0,357, - 359,5,19,0,0,358,360,3,28,14,0,359,358,1,0,0,0,359,360,1,0,0,0,360,363, - 1,0,0,0,361,362,5,33,0,0,362,364,3,28,14,0,363,361,1,0,0,0,363,364,1,0, - 0,0,364,51,1,0,0,0,365,366,5,8,0,0,366,369,3,28,14,0,367,368,5,33,0,0,368, - 370,3,28,14,0,369,367,1,0,0,0,369,370,1,0,0,0,370,53,1,0,0,0,371,376,3, - 60,30,0,372,373,5,40,0,0,373,375,3,60,30,0,374,372,1,0,0,0,375,378,1,0, - 0,0,376,374,1,0,0,0,376,377,1,0,0,0,377,55,1,0,0,0,378,376,1,0,0,0,379, - 384,3,62,31,0,380,381,5,40,0,0,381,383,3,62,31,0,382,380,1,0,0,0,383,386, - 1,0,0,0,384,382,1,0,0,0,384,385,1,0,0,0,385,57,1,0,0,0,386,384,1,0,0,0, - 387,392,3,56,28,0,388,389,5,38,0,0,389,391,3,56,28,0,390,388,1,0,0,0,391, - 394,1,0,0,0,392,390,1,0,0,0,392,393,1,0,0,0,393,59,1,0,0,0,394,392,1,0, - 0,0,395,396,7,3,0,0,396,61,1,0,0,0,397,398,5,81,0,0,398,63,1,0,0,0,399, - 442,5,50,0,0,400,401,3,98,49,0,401,402,5,72,0,0,402,442,1,0,0,0,403,442, - 3,96,48,0,404,442,3,98,49,0,405,442,3,92,46,0,406,442,3,66,33,0,407,442, - 3,100,50,0,408,409,5,70,0,0,409,414,3,94,47,0,410,411,5,38,0,0,411,413, - 3,94,47,0,412,410,1,0,0,0,413,416,1,0,0,0,414,412,1,0,0,0,414,415,1,0,0, - 0,415,417,1,0,0,0,416,414,1,0,0,0,417,418,5,71,0,0,418,442,1,0,0,0,419, - 420,5,70,0,0,420,425,3,92,46,0,421,422,5,38,0,0,422,424,3,92,46,0,423,421, - 1,0,0,0,424,427,1,0,0,0,425,423,1,0,0,0,425,426,1,0,0,0,426,428,1,0,0,0, - 427,425,1,0,0,0,428,429,5,71,0,0,429,442,1,0,0,0,430,431,5,70,0,0,431,436, - 3,100,50,0,432,433,5,38,0,0,433,435,3,100,50,0,434,432,1,0,0,0,435,438, - 1,0,0,0,436,434,1,0,0,0,436,437,1,0,0,0,437,439,1,0,0,0,438,436,1,0,0,0, - 439,440,5,71,0,0,440,442,1,0,0,0,441,399,1,0,0,0,441,400,1,0,0,0,441,403, - 1,0,0,0,441,404,1,0,0,0,441,405,1,0,0,0,441,406,1,0,0,0,441,407,1,0,0,0, - 441,408,1,0,0,0,441,419,1,0,0,0,441,430,1,0,0,0,442,65,1,0,0,0,443,446, - 5,53,0,0,444,446,5,69,0,0,445,443,1,0,0,0,445,444,1,0,0,0,446,67,1,0,0, - 0,447,448,5,10,0,0,448,449,5,31,0,0,449,69,1,0,0,0,450,451,5,18,0,0,451, - 456,3,72,36,0,452,453,5,38,0,0,453,455,3,72,36,0,454,452,1,0,0,0,455,458, - 1,0,0,0,456,454,1,0,0,0,456,457,1,0,0,0,457,71,1,0,0,0,458,456,1,0,0,0, - 459,461,3,10,5,0,460,462,7,4,0,0,461,460,1,0,0,0,461,462,1,0,0,0,462,465, - 1,0,0,0,463,464,5,51,0,0,464,466,7,5,0,0,465,463,1,0,0,0,465,466,1,0,0, - 0,466,73,1,0,0,0,467,468,5,9,0,0,468,469,3,58,29,0,469,75,1,0,0,0,470,471, - 5,2,0,0,471,472,3,58,29,0,472,77,1,0,0,0,473,474,5,15,0,0,474,479,3,80, - 40,0,475,476,5,38,0,0,476,478,3,80,40,0,477,475,1,0,0,0,478,481,1,0,0,0, - 479,477,1,0,0,0,479,480,1,0,0,0,480,79,1,0,0,0,481,479,1,0,0,0,482,483, - 3,56,28,0,483,484,5,85,0,0,484,485,3,56,28,0,485,81,1,0,0,0,486,487,5,1, - 0,0,487,488,3,20,10,0,488,490,3,100,50,0,489,491,3,88,44,0,490,489,1,0, - 0,0,490,491,1,0,0,0,491,83,1,0,0,0,492,493,5,7,0,0,493,494,3,20,10,0,494, - 495,3,100,50,0,495,85,1,0,0,0,496,497,5,14,0,0,497,498,3,54,27,0,498,87, - 1,0,0,0,499,504,3,90,45,0,500,501,5,38,0,0,501,503,3,90,45,0,502,500,1, - 0,0,0,503,506,1,0,0,0,504,502,1,0,0,0,504,505,1,0,0,0,505,89,1,0,0,0,506, - 504,1,0,0,0,507,508,3,60,30,0,508,509,5,36,0,0,509,510,3,64,32,0,510,91, - 1,0,0,0,511,512,7,6,0,0,512,93,1,0,0,0,513,516,3,96,48,0,514,516,3,98,49, - 0,515,513,1,0,0,0,515,514,1,0,0,0,516,95,1,0,0,0,517,519,7,0,0,0,518,517, - 1,0,0,0,518,519,1,0,0,0,519,520,1,0,0,0,520,521,5,32,0,0,521,97,1,0,0,0, - 522,524,7,0,0,0,523,522,1,0,0,0,523,524,1,0,0,0,524,525,1,0,0,0,525,526, - 5,31,0,0,526,99,1,0,0,0,527,528,5,30,0,0,528,101,1,0,0,0,529,530,7,7,0, - 0,530,103,1,0,0,0,531,532,5,5,0,0,532,533,3,106,53,0,533,105,1,0,0,0,534, - 535,5,70,0,0,535,536,3,2,1,0,536,537,5,71,0,0,537,107,1,0,0,0,538,539,5, - 17,0,0,539,540,5,107,0,0,540,109,1,0,0,0,541,542,5,12,0,0,542,543,5,111, - 0,0,543,111,1,0,0,0,544,545,5,3,0,0,545,548,5,91,0,0,546,547,5,89,0,0,547, - 549,3,56,28,0,548,546,1,0,0,0,548,549,1,0,0,0,549,559,1,0,0,0,550,551,5, - 90,0,0,551,556,3,114,57,0,552,553,5,38,0,0,553,555,3,114,57,0,554,552,1, - 0,0,0,555,558,1,0,0,0,556,554,1,0,0,0,556,557,1,0,0,0,557,560,1,0,0,0,558, - 556,1,0,0,0,559,550,1,0,0,0,559,560,1,0,0,0,560,113,1,0,0,0,561,562,3,56, - 28,0,562,563,5,36,0,0,563,565,1,0,0,0,564,561,1,0,0,0,564,565,1,0,0,0,565, - 566,1,0,0,0,566,567,3,56,28,0,567,115,1,0,0,0,568,569,5,11,0,0,569,570, - 3,34,17,0,570,571,5,89,0,0,571,572,3,58,29,0,572,117,1,0,0,0,54,129,138, - 154,167,176,184,188,196,198,203,210,215,226,232,240,242,253,260,271,274, - 288,296,304,308,315,323,331,344,348,352,359,363,369,376,384,392,414,425, - 436,441,445,456,461,465,479,490,504,515,518,523,548,556,559,564]; + 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,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,5,1,132,8,1,10,1,12,1,135,9,1,1, + 2,1,2,1,2,1,2,1,2,1,2,3,2,143,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,1,3,1,3,3,3,160,8,3,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1, + 5,1,5,3,5,173,8,5,1,5,1,5,1,5,1,5,1,5,5,5,180,8,5,10,5,12,5,183,9,5,1,5, + 1,5,1,5,1,5,1,5,3,5,190,8,5,1,5,1,5,3,5,194,8,5,1,5,1,5,1,5,1,5,1,5,1,5, + 5,5,202,8,5,10,5,12,5,205,9,5,1,6,1,6,3,6,209,8,6,1,6,1,6,1,6,1,6,1,6,3, + 6,216,8,6,1,6,1,6,1,6,3,6,221,8,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,3, + 8,232,8,8,1,9,1,9,1,9,1,9,3,9,238,8,9,1,9,1,9,1,9,1,9,1,9,1,9,5,9,246,8, + 9,10,9,12,9,249,9,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,259,8, + 10,1,10,1,10,1,10,5,10,264,8,10,10,10,12,10,267,9,10,1,11,1,11,1,11,1,11, + 1,11,1,11,5,11,275,8,11,10,11,12,11,278,9,11,3,11,280,8,11,1,11,1,11,1, + 12,1,12,1,13,1,13,1,13,1,14,1,14,1,14,5,14,292,8,14,10,14,12,14,295,9,14, + 1,15,1,15,1,15,1,15,1,15,3,15,302,8,15,1,16,1,16,1,16,1,16,5,16,308,8,16, + 10,16,12,16,311,9,16,1,16,3,16,314,8,16,1,17,1,17,1,17,1,17,1,17,3,17,321, + 8,17,1,18,1,18,1,19,1,19,1,20,1,20,3,20,329,8,20,1,21,1,21,1,21,1,21,5, + 21,335,8,21,10,21,12,21,338,9,21,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23, + 5,23,348,8,23,10,23,12,23,351,9,23,1,23,3,23,354,8,23,1,23,1,23,3,23,358, + 8,23,1,24,1,24,1,24,1,25,1,25,3,25,365,8,25,1,25,1,25,3,25,369,8,25,1,26, + 1,26,1,26,1,26,3,26,375,8,26,1,27,1,27,1,27,5,27,380,8,27,10,27,12,27,383, + 9,27,1,28,1,28,1,28,5,28,388,8,28,10,28,12,28,391,9,28,1,29,1,29,1,29,5, + 29,396,8,29,10,29,12,29,399,9,29,1,30,1,30,1,31,1,31,1,32,1,32,1,32,1,32, + 1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,5,32,418,8,32,10,32,12,32, + 421,9,32,1,32,1,32,1,32,1,32,1,32,1,32,5,32,429,8,32,10,32,12,32,432,9, + 32,1,32,1,32,1,32,1,32,1,32,1,32,5,32,440,8,32,10,32,12,32,443,9,32,1,32, + 1,32,3,32,447,8,32,1,33,1,33,3,33,451,8,33,1,34,1,34,1,34,1,35,1,35,1,35, + 1,35,5,35,460,8,35,10,35,12,35,463,9,35,1,36,1,36,3,36,467,8,36,1,36,1, + 36,3,36,471,8,36,1,37,1,37,1,37,1,38,1,38,1,38,1,39,1,39,1,39,1,39,5,39, + 483,8,39,10,39,12,39,486,9,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,3, + 41,496,8,41,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,44,1,44,1,44,5,44,508, + 8,44,10,44,12,44,511,9,44,1,45,1,45,1,45,1,45,1,46,1,46,1,47,1,47,3,47, + 521,8,47,1,48,3,48,524,8,48,1,48,1,48,1,49,3,49,529,8,49,1,49,1,49,1,50, + 1,50,1,51,1,51,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,55,1, + 55,1,55,1,56,1,56,1,56,1,56,3,56,554,8,56,1,56,1,56,1,56,1,56,5,56,560, + 8,56,10,56,12,56,563,9,56,3,56,565,8,56,1,57,1,57,1,57,3,57,570,8,57,1, + 57,1,57,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,60,1,60,1,60,0,4,2,10, + 18,20,61,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,108,110,112,114,116,118,120,0,8,1,0,65,66,1,0, + 67,69,2,0,26,26,31,31,1,0,73,74,2,0,36,36,40,40,2,0,43,43,46,46,2,0,42, + 42,57,57,2,0,58,58,60,64,608,0,122,1,0,0,0,2,125,1,0,0,0,4,142,1,0,0,0, + 6,159,1,0,0,0,8,161,1,0,0,0,10,193,1,0,0,0,12,220,1,0,0,0,14,222,1,0,0, + 0,16,231,1,0,0,0,18,237,1,0,0,0,20,258,1,0,0,0,22,268,1,0,0,0,24,283,1, + 0,0,0,26,285,1,0,0,0,28,288,1,0,0,0,30,301,1,0,0,0,32,303,1,0,0,0,34,320, + 1,0,0,0,36,322,1,0,0,0,38,324,1,0,0,0,40,328,1,0,0,0,42,330,1,0,0,0,44, + 339,1,0,0,0,46,343,1,0,0,0,48,359,1,0,0,0,50,362,1,0,0,0,52,370,1,0,0,0, + 54,376,1,0,0,0,56,384,1,0,0,0,58,392,1,0,0,0,60,400,1,0,0,0,62,402,1,0, + 0,0,64,446,1,0,0,0,66,450,1,0,0,0,68,452,1,0,0,0,70,455,1,0,0,0,72,464, + 1,0,0,0,74,472,1,0,0,0,76,475,1,0,0,0,78,478,1,0,0,0,80,487,1,0,0,0,82, + 491,1,0,0,0,84,497,1,0,0,0,86,501,1,0,0,0,88,504,1,0,0,0,90,512,1,0,0,0, + 92,516,1,0,0,0,94,520,1,0,0,0,96,523,1,0,0,0,98,528,1,0,0,0,100,532,1,0, + 0,0,102,534,1,0,0,0,104,536,1,0,0,0,106,539,1,0,0,0,108,543,1,0,0,0,110, + 546,1,0,0,0,112,549,1,0,0,0,114,569,1,0,0,0,116,573,1,0,0,0,118,578,1,0, + 0,0,120,581,1,0,0,0,122,123,3,2,1,0,123,124,5,0,0,1,124,1,1,0,0,0,125,126, + 6,1,-1,0,126,127,3,4,2,0,127,133,1,0,0,0,128,129,10,1,0,0,129,130,5,30, + 0,0,130,132,3,6,3,0,131,128,1,0,0,0,132,135,1,0,0,0,133,131,1,0,0,0,133, + 134,1,0,0,0,134,3,1,0,0,0,135,133,1,0,0,0,136,143,3,104,52,0,137,143,3, + 32,16,0,138,143,3,26,13,0,139,143,3,46,23,0,140,143,3,108,54,0,141,143, + 3,110,55,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,5,1,0,0,0,144,160,3,48,24,0,145, + 160,3,52,26,0,146,160,3,68,34,0,147,160,3,116,58,0,148,160,3,74,37,0,149, + 160,3,70,35,0,150,160,3,50,25,0,151,160,3,8,4,0,152,160,3,76,38,0,153,160, + 3,78,39,0,154,160,3,82,41,0,155,160,3,84,42,0,156,160,3,112,56,0,157,160, + 3,86,43,0,158,160,3,118,59,0,159,144,1,0,0,0,159,145,1,0,0,0,159,146,1, + 0,0,0,159,147,1,0,0,0,159,148,1,0,0,0,159,149,1,0,0,0,159,150,1,0,0,0,159, + 151,1,0,0,0,159,152,1,0,0,0,159,153,1,0,0,0,159,154,1,0,0,0,159,155,1,0, + 0,0,159,156,1,0,0,0,159,157,1,0,0,0,159,158,1,0,0,0,160,7,1,0,0,0,161,162, + 5,20,0,0,162,163,3,10,5,0,163,9,1,0,0,0,164,165,6,5,-1,0,165,166,5,50,0, + 0,166,194,3,10,5,8,167,194,3,16,8,0,168,194,3,12,6,0,169,194,3,14,7,0,170, + 172,3,16,8,0,171,173,5,50,0,0,172,171,1,0,0,0,172,173,1,0,0,0,173,174,1, + 0,0,0,174,175,5,44,0,0,175,176,5,48,0,0,176,181,3,16,8,0,177,178,5,39,0, + 0,178,180,3,16,8,0,179,177,1,0,0,0,180,183,1,0,0,0,181,179,1,0,0,0,181, + 182,1,0,0,0,182,184,1,0,0,0,183,181,1,0,0,0,184,185,5,56,0,0,185,194,1, + 0,0,0,186,187,3,16,8,0,187,189,5,45,0,0,188,190,5,50,0,0,189,188,1,0,0, + 0,189,190,1,0,0,0,190,191,1,0,0,0,191,192,5,51,0,0,192,194,1,0,0,0,193, + 164,1,0,0,0,193,167,1,0,0,0,193,168,1,0,0,0,193,169,1,0,0,0,193,170,1,0, + 0,0,193,186,1,0,0,0,194,203,1,0,0,0,195,196,10,4,0,0,196,197,5,35,0,0,197, + 202,3,10,5,5,198,199,10,3,0,0,199,200,5,53,0,0,200,202,3,10,5,4,201,195, + 1,0,0,0,201,198,1,0,0,0,202,205,1,0,0,0,203,201,1,0,0,0,203,204,1,0,0,0, + 204,11,1,0,0,0,205,203,1,0,0,0,206,208,3,16,8,0,207,209,5,50,0,0,208,207, + 1,0,0,0,208,209,1,0,0,0,209,210,1,0,0,0,210,211,5,47,0,0,211,212,3,100, + 50,0,212,221,1,0,0,0,213,215,3,16,8,0,214,216,5,50,0,0,215,214,1,0,0,0, + 215,216,1,0,0,0,216,217,1,0,0,0,217,218,5,55,0,0,218,219,3,100,50,0,219, + 221,1,0,0,0,220,206,1,0,0,0,220,213,1,0,0,0,221,13,1,0,0,0,222,223,3,54, + 27,0,223,224,5,49,0,0,224,225,3,100,50,0,225,15,1,0,0,0,226,232,3,18,9, + 0,227,228,3,18,9,0,228,229,3,102,51,0,229,230,3,18,9,0,230,232,1,0,0,0, + 231,226,1,0,0,0,231,227,1,0,0,0,232,17,1,0,0,0,233,234,6,9,-1,0,234,238, + 3,20,10,0,235,236,7,0,0,0,236,238,3,18,9,3,237,233,1,0,0,0,237,235,1,0, + 0,0,238,247,1,0,0,0,239,240,10,2,0,0,240,241,7,1,0,0,241,246,3,18,9,3,242, + 243,10,1,0,0,243,244,7,0,0,0,244,246,3,18,9,2,245,239,1,0,0,0,245,242,1, + 0,0,0,246,249,1,0,0,0,247,245,1,0,0,0,247,248,1,0,0,0,248,19,1,0,0,0,249, + 247,1,0,0,0,250,251,6,10,-1,0,251,259,3,64,32,0,252,259,3,54,27,0,253,259, + 3,22,11,0,254,255,5,48,0,0,255,256,3,10,5,0,256,257,5,56,0,0,257,259,1, + 0,0,0,258,250,1,0,0,0,258,252,1,0,0,0,258,253,1,0,0,0,258,254,1,0,0,0,259, + 265,1,0,0,0,260,261,10,1,0,0,261,262,5,38,0,0,262,264,3,24,12,0,263,260, + 1,0,0,0,264,267,1,0,0,0,265,263,1,0,0,0,265,266,1,0,0,0,266,21,1,0,0,0, + 267,265,1,0,0,0,268,269,3,60,30,0,269,279,5,48,0,0,270,280,5,67,0,0,271, + 276,3,10,5,0,272,273,5,39,0,0,273,275,3,10,5,0,274,272,1,0,0,0,275,278, + 1,0,0,0,276,274,1,0,0,0,276,277,1,0,0,0,277,280,1,0,0,0,278,276,1,0,0,0, + 279,270,1,0,0,0,279,271,1,0,0,0,279,280,1,0,0,0,280,281,1,0,0,0,281,282, + 5,56,0,0,282,23,1,0,0,0,283,284,3,60,30,0,284,25,1,0,0,0,285,286,5,16,0, + 0,286,287,3,28,14,0,287,27,1,0,0,0,288,293,3,30,15,0,289,290,5,39,0,0,290, + 292,3,30,15,0,291,289,1,0,0,0,292,295,1,0,0,0,293,291,1,0,0,0,293,294,1, + 0,0,0,294,29,1,0,0,0,295,293,1,0,0,0,296,302,3,10,5,0,297,298,3,54,27,0, + 298,299,5,37,0,0,299,300,3,10,5,0,300,302,1,0,0,0,301,296,1,0,0,0,301,297, + 1,0,0,0,302,31,1,0,0,0,303,304,5,6,0,0,304,309,3,34,17,0,305,306,5,39,0, + 0,306,308,3,34,17,0,307,305,1,0,0,0,308,311,1,0,0,0,309,307,1,0,0,0,309, + 310,1,0,0,0,310,313,1,0,0,0,311,309,1,0,0,0,312,314,3,40,20,0,313,312,1, + 0,0,0,313,314,1,0,0,0,314,33,1,0,0,0,315,316,3,36,18,0,316,317,5,116,0, + 0,317,318,3,38,19,0,318,321,1,0,0,0,319,321,3,38,19,0,320,315,1,0,0,0,320, + 319,1,0,0,0,321,35,1,0,0,0,322,323,5,26,0,0,323,37,1,0,0,0,324,325,7,2, + 0,0,325,39,1,0,0,0,326,329,3,42,21,0,327,329,3,44,22,0,328,326,1,0,0,0, + 328,327,1,0,0,0,329,41,1,0,0,0,330,331,5,78,0,0,331,336,5,26,0,0,332,333, + 5,39,0,0,333,335,5,26,0,0,334,332,1,0,0,0,335,338,1,0,0,0,336,334,1,0,0, + 0,336,337,1,0,0,0,337,43,1,0,0,0,338,336,1,0,0,0,339,340,5,71,0,0,340,341, + 3,42,21,0,341,342,5,72,0,0,342,45,1,0,0,0,343,344,5,13,0,0,344,349,3,34, + 17,0,345,346,5,39,0,0,346,348,3,34,17,0,347,345,1,0,0,0,348,351,1,0,0,0, + 349,347,1,0,0,0,349,350,1,0,0,0,350,353,1,0,0,0,351,349,1,0,0,0,352,354, + 3,28,14,0,353,352,1,0,0,0,353,354,1,0,0,0,354,357,1,0,0,0,355,356,5,34, + 0,0,356,358,3,28,14,0,357,355,1,0,0,0,357,358,1,0,0,0,358,47,1,0,0,0,359, + 360,5,4,0,0,360,361,3,28,14,0,361,49,1,0,0,0,362,364,5,19,0,0,363,365,3, + 28,14,0,364,363,1,0,0,0,364,365,1,0,0,0,365,368,1,0,0,0,366,367,5,34,0, + 0,367,369,3,28,14,0,368,366,1,0,0,0,368,369,1,0,0,0,369,51,1,0,0,0,370, + 371,5,8,0,0,371,374,3,28,14,0,372,373,5,34,0,0,373,375,3,28,14,0,374,372, + 1,0,0,0,374,375,1,0,0,0,375,53,1,0,0,0,376,381,3,60,30,0,377,378,5,41,0, + 0,378,380,3,60,30,0,379,377,1,0,0,0,380,383,1,0,0,0,381,379,1,0,0,0,381, + 382,1,0,0,0,382,55,1,0,0,0,383,381,1,0,0,0,384,389,3,62,31,0,385,386,5, + 41,0,0,386,388,3,62,31,0,387,385,1,0,0,0,388,391,1,0,0,0,389,387,1,0,0, + 0,389,390,1,0,0,0,390,57,1,0,0,0,391,389,1,0,0,0,392,397,3,56,28,0,393, + 394,5,39,0,0,394,396,3,56,28,0,395,393,1,0,0,0,396,399,1,0,0,0,397,395, + 1,0,0,0,397,398,1,0,0,0,398,59,1,0,0,0,399,397,1,0,0,0,400,401,7,3,0,0, + 401,61,1,0,0,0,402,403,5,82,0,0,403,63,1,0,0,0,404,447,5,51,0,0,405,406, + 3,98,49,0,406,407,5,73,0,0,407,447,1,0,0,0,408,447,3,96,48,0,409,447,3, + 98,49,0,410,447,3,92,46,0,411,447,3,66,33,0,412,447,3,100,50,0,413,414, + 5,71,0,0,414,419,3,94,47,0,415,416,5,39,0,0,416,418,3,94,47,0,417,415,1, + 0,0,0,418,421,1,0,0,0,419,417,1,0,0,0,419,420,1,0,0,0,420,422,1,0,0,0,421, + 419,1,0,0,0,422,423,5,72,0,0,423,447,1,0,0,0,424,425,5,71,0,0,425,430,3, + 92,46,0,426,427,5,39,0,0,427,429,3,92,46,0,428,426,1,0,0,0,429,432,1,0, + 0,0,430,428,1,0,0,0,430,431,1,0,0,0,431,433,1,0,0,0,432,430,1,0,0,0,433, + 434,5,72,0,0,434,447,1,0,0,0,435,436,5,71,0,0,436,441,3,100,50,0,437,438, + 5,39,0,0,438,440,3,100,50,0,439,437,1,0,0,0,440,443,1,0,0,0,441,439,1,0, + 0,0,441,442,1,0,0,0,442,444,1,0,0,0,443,441,1,0,0,0,444,445,5,72,0,0,445, + 447,1,0,0,0,446,404,1,0,0,0,446,405,1,0,0,0,446,408,1,0,0,0,446,409,1,0, + 0,0,446,410,1,0,0,0,446,411,1,0,0,0,446,412,1,0,0,0,446,413,1,0,0,0,446, + 424,1,0,0,0,446,435,1,0,0,0,447,65,1,0,0,0,448,451,5,54,0,0,449,451,5,70, + 0,0,450,448,1,0,0,0,450,449,1,0,0,0,451,67,1,0,0,0,452,453,5,10,0,0,453, + 454,5,32,0,0,454,69,1,0,0,0,455,456,5,18,0,0,456,461,3,72,36,0,457,458, + 5,39,0,0,458,460,3,72,36,0,459,457,1,0,0,0,460,463,1,0,0,0,461,459,1,0, + 0,0,461,462,1,0,0,0,462,71,1,0,0,0,463,461,1,0,0,0,464,466,3,10,5,0,465, + 467,7,4,0,0,466,465,1,0,0,0,466,467,1,0,0,0,467,470,1,0,0,0,468,469,5,52, + 0,0,469,471,7,5,0,0,470,468,1,0,0,0,470,471,1,0,0,0,471,73,1,0,0,0,472, + 473,5,9,0,0,473,474,3,58,29,0,474,75,1,0,0,0,475,476,5,2,0,0,476,477,3, + 58,29,0,477,77,1,0,0,0,478,479,5,15,0,0,479,484,3,80,40,0,480,481,5,39, + 0,0,481,483,3,80,40,0,482,480,1,0,0,0,483,486,1,0,0,0,484,482,1,0,0,0,484, + 485,1,0,0,0,485,79,1,0,0,0,486,484,1,0,0,0,487,488,3,56,28,0,488,489,5, + 86,0,0,489,490,3,56,28,0,490,81,1,0,0,0,491,492,5,1,0,0,492,493,3,20,10, + 0,493,495,3,100,50,0,494,496,3,88,44,0,495,494,1,0,0,0,495,496,1,0,0,0, + 496,83,1,0,0,0,497,498,5,7,0,0,498,499,3,20,10,0,499,500,3,100,50,0,500, + 85,1,0,0,0,501,502,5,14,0,0,502,503,3,54,27,0,503,87,1,0,0,0,504,509,3, + 90,45,0,505,506,5,39,0,0,506,508,3,90,45,0,507,505,1,0,0,0,508,511,1,0, + 0,0,509,507,1,0,0,0,509,510,1,0,0,0,510,89,1,0,0,0,511,509,1,0,0,0,512, + 513,3,60,30,0,513,514,5,37,0,0,514,515,3,64,32,0,515,91,1,0,0,0,516,517, + 7,6,0,0,517,93,1,0,0,0,518,521,3,96,48,0,519,521,3,98,49,0,520,518,1,0, + 0,0,520,519,1,0,0,0,521,95,1,0,0,0,522,524,7,0,0,0,523,522,1,0,0,0,523, + 524,1,0,0,0,524,525,1,0,0,0,525,526,5,33,0,0,526,97,1,0,0,0,527,529,7,0, + 0,0,528,527,1,0,0,0,528,529,1,0,0,0,529,530,1,0,0,0,530,531,5,32,0,0,531, + 99,1,0,0,0,532,533,5,31,0,0,533,101,1,0,0,0,534,535,7,7,0,0,535,103,1,0, + 0,0,536,537,5,5,0,0,537,538,3,106,53,0,538,105,1,0,0,0,539,540,5,71,0,0, + 540,541,3,2,1,0,541,542,5,72,0,0,542,107,1,0,0,0,543,544,5,17,0,0,544,545, + 5,108,0,0,545,109,1,0,0,0,546,547,5,12,0,0,547,548,5,112,0,0,548,111,1, + 0,0,0,549,550,5,3,0,0,550,553,5,92,0,0,551,552,5,90,0,0,552,554,3,56,28, + 0,553,551,1,0,0,0,553,554,1,0,0,0,554,564,1,0,0,0,555,556,5,91,0,0,556, + 561,3,114,57,0,557,558,5,39,0,0,558,560,3,114,57,0,559,557,1,0,0,0,560, + 563,1,0,0,0,561,559,1,0,0,0,561,562,1,0,0,0,562,565,1,0,0,0,563,561,1,0, + 0,0,564,555,1,0,0,0,564,565,1,0,0,0,565,113,1,0,0,0,566,567,3,56,28,0,567, + 568,5,37,0,0,568,570,1,0,0,0,569,566,1,0,0,0,569,570,1,0,0,0,570,571,1, + 0,0,0,571,572,3,56,28,0,572,115,1,0,0,0,573,574,5,11,0,0,574,575,3,34,17, + 0,575,576,5,90,0,0,576,577,3,58,29,0,577,117,1,0,0,0,578,579,5,21,0,0,579, + 580,3,120,60,0,580,119,1,0,0,0,581,582,5,31,0,0,582,121,1,0,0,0,54,133, + 142,159,172,181,189,193,201,203,208,215,220,231,237,245,247,258,265,276, + 279,293,301,309,313,320,328,336,349,353,357,364,368,374,381,389,397,419, + 430,441,446,450,461,466,470,484,495,509,520,523,528,553,561,564,569]; private static __ATN: ATN; public static get _ATN(): ATN { @@ -3541,7 +3608,7 @@ export class QueryContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_query; } - public copyFrom(ctx: QueryContext): void { + public override copyFrom(ctx: QueryContext): void { super.copyFrom(ctx); } } @@ -3677,6 +3744,9 @@ export class ProcessingCommandContext extends ParserRuleContext { public mvExpandCommand(): MvExpandCommandContext { return this.getTypedRuleContext(MvExpandCommandContext, 0) as MvExpandCommandContext; } + public matchCommand(): MatchCommandContext { + return this.getTypedRuleContext(MatchCommandContext, 0) as MatchCommandContext; + } public get ruleIndex(): number { return esql_parser.RULE_processingCommand; } @@ -3728,7 +3798,7 @@ export class BooleanExpressionContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_booleanExpression; } - public copyFrom(ctx: BooleanExpressionContext): void { + public override copyFrom(ctx: BooleanExpressionContext): void { super.copyFrom(ctx); } } @@ -3959,8 +4029,8 @@ export class MatchBooleanExpressionContext extends ParserRuleContext { public qualifiedName(): QualifiedNameContext { return this.getTypedRuleContext(QualifiedNameContext, 0) as QualifiedNameContext; } - public MATCH(): TerminalNode { - return this.getToken(esql_parser.MATCH, 0); + public MATCH_OPERATOR(): TerminalNode { + return this.getToken(esql_parser.MATCH_OPERATOR, 0); } public string_(): StringContext { return this.getTypedRuleContext(StringContext, 0) as StringContext; @@ -3989,7 +4059,7 @@ export class ValueExpressionContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_valueExpression; } - public copyFrom(ctx: ValueExpressionContext): void { + public override copyFrom(ctx: ValueExpressionContext): void { super.copyFrom(ctx); } } @@ -4049,7 +4119,7 @@ export class OperatorExpressionContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_operatorExpression; } - public copyFrom(ctx: OperatorExpressionContext): void { + public override copyFrom(ctx: OperatorExpressionContext): void { super.copyFrom(ctx); } } @@ -4148,7 +4218,7 @@ export class PrimaryExpressionContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_primaryExpression; } - public copyFrom(ctx: PrimaryExpressionContext): void { + public override copyFrom(ctx: PrimaryExpressionContext): void { super.copyFrom(ctx); } } @@ -4314,7 +4384,7 @@ export class DataTypeContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_dataType; } - public copyFrom(ctx: DataTypeContext): void { + public override copyFrom(ctx: DataTypeContext): void { super.copyFrom(ctx); } } @@ -4944,7 +5014,7 @@ export class ConstantContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_constant; } - public copyFrom(ctx: ConstantContext): void { + public override copyFrom(ctx: ConstantContext): void { super.copyFrom(ctx); } } @@ -5196,7 +5266,7 @@ export class ParamsContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_params; } - public copyFrom(ctx: ParamsContext): void { + public override copyFrom(ctx: ParamsContext): void { super.copyFrom(ctx); } } @@ -5861,7 +5931,7 @@ export class ShowCommandContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_showCommand; } - public copyFrom(ctx: ShowCommandContext): void { + public override copyFrom(ctx: ShowCommandContext): void { super.copyFrom(ctx); } } @@ -5897,7 +5967,7 @@ export class MetaCommandContext extends ParserRuleContext { public get ruleIndex(): number { return esql_parser.RULE_metaCommand; } - public copyFrom(ctx: MetaCommandContext): void { + public override copyFrom(ctx: MetaCommandContext): void { super.copyFrom(ctx); } } @@ -6040,3 +6110,54 @@ export class LookupCommandContext extends ParserRuleContext { } } } + + +export class MatchCommandContext extends ParserRuleContext { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public MATCH(): TerminalNode { + return this.getToken(esql_parser.MATCH, 0); + } + public matchQuery(): MatchQueryContext { + return this.getTypedRuleContext(MatchQueryContext, 0) as MatchQueryContext; + } + public get ruleIndex(): number { + return esql_parser.RULE_matchCommand; + } + public enterRule(listener: esql_parserListener): void { + if(listener.enterMatchCommand) { + listener.enterMatchCommand(this); + } + } + public exitRule(listener: esql_parserListener): void { + if(listener.exitMatchCommand) { + listener.exitMatchCommand(this); + } + } +} + + +export class MatchQueryContext extends ParserRuleContext { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public QUOTED_STRING(): TerminalNode { + return this.getToken(esql_parser.QUOTED_STRING, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_matchQuery; + } + public enterRule(listener: esql_parserListener): void { + if(listener.enterMatchQuery) { + listener.enterMatchQuery(this); + } + } + public exitRule(listener: esql_parserListener): void { + if(listener.exitMatchQuery) { + listener.exitMatchQuery(this); + } + } +} 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 13d5049a6ba9d..768ff5910602f 100644 --- a/packages/kbn-esql-ast/src/antlr/esql_parser_listener.ts +++ b/packages/kbn-esql-ast/src/antlr/esql_parser_listener.ts @@ -1,92 +1,94 @@ // @ts-nocheck -// Generated from src/antlr/esql_parser.g4 by ANTLR 4.13.1 +// Generated from src/antlr/esql_parser.g4 by ANTLR 4.13.2 import {ParseTreeListener} from "antlr4"; -import { SingleStatementContext } from "./esql_parser"; -import { CompositeQueryContext } from "./esql_parser"; -import { SingleCommandQueryContext } from "./esql_parser"; -import { SourceCommandContext } from "./esql_parser"; -import { ProcessingCommandContext } from "./esql_parser"; -import { WhereCommandContext } from "./esql_parser"; -import { MatchExpressionContext } from "./esql_parser"; -import { LogicalNotContext } from "./esql_parser"; -import { BooleanDefaultContext } from "./esql_parser"; -import { IsNullContext } from "./esql_parser"; -import { RegexExpressionContext } from "./esql_parser"; -import { LogicalInContext } from "./esql_parser"; -import { LogicalBinaryContext } from "./esql_parser"; -import { RegexBooleanExpressionContext } from "./esql_parser"; -import { MatchBooleanExpressionContext } from "./esql_parser"; -import { ValueExpressionDefaultContext } from "./esql_parser"; -import { ComparisonContext } from "./esql_parser"; -import { OperatorExpressionDefaultContext } from "./esql_parser"; -import { ArithmeticBinaryContext } from "./esql_parser"; -import { ArithmeticUnaryContext } from "./esql_parser"; -import { DereferenceContext } from "./esql_parser"; -import { InlineCastContext } from "./esql_parser"; -import { ConstantDefaultContext } from "./esql_parser"; -import { ParenthesizedExpressionContext } from "./esql_parser"; -import { FunctionContext } from "./esql_parser"; -import { FunctionExpressionContext } from "./esql_parser"; -import { ToDataTypeContext } from "./esql_parser"; -import { RowCommandContext } from "./esql_parser"; -import { FieldsContext } from "./esql_parser"; -import { FieldContext } from "./esql_parser"; -import { FromCommandContext } from "./esql_parser"; -import { IndexPatternContext } from "./esql_parser"; -import { ClusterStringContext } from "./esql_parser"; -import { IndexStringContext } from "./esql_parser"; -import { MetadataContext } from "./esql_parser"; -import { MetadataOptionContext } from "./esql_parser"; -import { Deprecated_metadataContext } from "./esql_parser"; -import { MetricsCommandContext } from "./esql_parser"; -import { EvalCommandContext } from "./esql_parser"; -import { StatsCommandContext } from "./esql_parser"; -import { InlinestatsCommandContext } from "./esql_parser"; -import { QualifiedNameContext } from "./esql_parser"; -import { QualifiedNamePatternContext } from "./esql_parser"; -import { QualifiedNamePatternsContext } from "./esql_parser"; -import { IdentifierContext } from "./esql_parser"; -import { IdentifierPatternContext } from "./esql_parser"; -import { NullLiteralContext } from "./esql_parser"; -import { QualifiedIntegerLiteralContext } from "./esql_parser"; -import { DecimalLiteralContext } from "./esql_parser"; -import { IntegerLiteralContext } from "./esql_parser"; -import { BooleanLiteralContext } from "./esql_parser"; -import { InputParamsContext } from "./esql_parser"; -import { StringLiteralContext } from "./esql_parser"; -import { NumericArrayLiteralContext } from "./esql_parser"; -import { BooleanArrayLiteralContext } from "./esql_parser"; -import { StringArrayLiteralContext } from "./esql_parser"; -import { InputParamContext } from "./esql_parser"; -import { InputNamedOrPositionalParamContext } from "./esql_parser"; -import { LimitCommandContext } from "./esql_parser"; -import { SortCommandContext } from "./esql_parser"; -import { OrderExpressionContext } from "./esql_parser"; -import { KeepCommandContext } from "./esql_parser"; -import { DropCommandContext } from "./esql_parser"; -import { RenameCommandContext } from "./esql_parser"; -import { RenameClauseContext } from "./esql_parser"; -import { DissectCommandContext } from "./esql_parser"; -import { GrokCommandContext } from "./esql_parser"; -import { MvExpandCommandContext } from "./esql_parser"; -import { CommandOptionsContext } from "./esql_parser"; -import { CommandOptionContext } from "./esql_parser"; -import { BooleanValueContext } from "./esql_parser"; -import { NumericValueContext } from "./esql_parser"; -import { DecimalValueContext } from "./esql_parser"; -import { IntegerValueContext } from "./esql_parser"; -import { StringContext } from "./esql_parser"; -import { ComparisonOperatorContext } from "./esql_parser"; -import { ExplainCommandContext } from "./esql_parser"; -import { SubqueryExpressionContext } from "./esql_parser"; -import { ShowInfoContext } from "./esql_parser"; -import { MetaFunctionsContext } from "./esql_parser"; -import { EnrichCommandContext } from "./esql_parser"; -import { EnrichWithClauseContext } from "./esql_parser"; -import { LookupCommandContext } from "./esql_parser"; +import { SingleStatementContext } from "./esql_parser.js"; +import { CompositeQueryContext } from "./esql_parser.js"; +import { SingleCommandQueryContext } from "./esql_parser.js"; +import { SourceCommandContext } from "./esql_parser.js"; +import { ProcessingCommandContext } from "./esql_parser.js"; +import { WhereCommandContext } from "./esql_parser.js"; +import { MatchExpressionContext } from "./esql_parser.js"; +import { LogicalNotContext } from "./esql_parser.js"; +import { BooleanDefaultContext } from "./esql_parser.js"; +import { IsNullContext } from "./esql_parser.js"; +import { RegexExpressionContext } from "./esql_parser.js"; +import { LogicalInContext } from "./esql_parser.js"; +import { LogicalBinaryContext } from "./esql_parser.js"; +import { RegexBooleanExpressionContext } from "./esql_parser.js"; +import { MatchBooleanExpressionContext } from "./esql_parser.js"; +import { ValueExpressionDefaultContext } from "./esql_parser.js"; +import { ComparisonContext } from "./esql_parser.js"; +import { OperatorExpressionDefaultContext } from "./esql_parser.js"; +import { ArithmeticBinaryContext } from "./esql_parser.js"; +import { ArithmeticUnaryContext } from "./esql_parser.js"; +import { DereferenceContext } from "./esql_parser.js"; +import { InlineCastContext } from "./esql_parser.js"; +import { ConstantDefaultContext } from "./esql_parser.js"; +import { ParenthesizedExpressionContext } from "./esql_parser.js"; +import { FunctionContext } from "./esql_parser.js"; +import { FunctionExpressionContext } from "./esql_parser.js"; +import { ToDataTypeContext } from "./esql_parser.js"; +import { RowCommandContext } from "./esql_parser.js"; +import { FieldsContext } from "./esql_parser.js"; +import { FieldContext } from "./esql_parser.js"; +import { FromCommandContext } from "./esql_parser.js"; +import { IndexPatternContext } from "./esql_parser.js"; +import { ClusterStringContext } from "./esql_parser.js"; +import { IndexStringContext } from "./esql_parser.js"; +import { MetadataContext } from "./esql_parser.js"; +import { MetadataOptionContext } from "./esql_parser.js"; +import { Deprecated_metadataContext } from "./esql_parser.js"; +import { MetricsCommandContext } from "./esql_parser.js"; +import { EvalCommandContext } from "./esql_parser.js"; +import { StatsCommandContext } from "./esql_parser.js"; +import { InlinestatsCommandContext } from "./esql_parser.js"; +import { QualifiedNameContext } from "./esql_parser.js"; +import { QualifiedNamePatternContext } from "./esql_parser.js"; +import { QualifiedNamePatternsContext } from "./esql_parser.js"; +import { IdentifierContext } from "./esql_parser.js"; +import { IdentifierPatternContext } from "./esql_parser.js"; +import { NullLiteralContext } from "./esql_parser.js"; +import { QualifiedIntegerLiteralContext } from "./esql_parser.js"; +import { DecimalLiteralContext } from "./esql_parser.js"; +import { IntegerLiteralContext } from "./esql_parser.js"; +import { BooleanLiteralContext } from "./esql_parser.js"; +import { InputParamsContext } from "./esql_parser.js"; +import { StringLiteralContext } from "./esql_parser.js"; +import { NumericArrayLiteralContext } from "./esql_parser.js"; +import { BooleanArrayLiteralContext } from "./esql_parser.js"; +import { StringArrayLiteralContext } from "./esql_parser.js"; +import { InputParamContext } from "./esql_parser.js"; +import { InputNamedOrPositionalParamContext } from "./esql_parser.js"; +import { LimitCommandContext } from "./esql_parser.js"; +import { SortCommandContext } from "./esql_parser.js"; +import { OrderExpressionContext } from "./esql_parser.js"; +import { KeepCommandContext } from "./esql_parser.js"; +import { DropCommandContext } from "./esql_parser.js"; +import { RenameCommandContext } from "./esql_parser.js"; +import { RenameClauseContext } from "./esql_parser.js"; +import { DissectCommandContext } from "./esql_parser.js"; +import { GrokCommandContext } from "./esql_parser.js"; +import { MvExpandCommandContext } from "./esql_parser.js"; +import { CommandOptionsContext } from "./esql_parser.js"; +import { CommandOptionContext } from "./esql_parser.js"; +import { BooleanValueContext } from "./esql_parser.js"; +import { NumericValueContext } from "./esql_parser.js"; +import { DecimalValueContext } from "./esql_parser.js"; +import { IntegerValueContext } from "./esql_parser.js"; +import { StringContext } from "./esql_parser.js"; +import { ComparisonOperatorContext } from "./esql_parser.js"; +import { ExplainCommandContext } from "./esql_parser.js"; +import { SubqueryExpressionContext } from "./esql_parser.js"; +import { ShowInfoContext } from "./esql_parser.js"; +import { MetaFunctionsContext } from "./esql_parser.js"; +import { EnrichCommandContext } from "./esql_parser.js"; +import { EnrichWithClauseContext } from "./esql_parser.js"; +import { LookupCommandContext } from "./esql_parser.js"; +import { MatchCommandContext } from "./esql_parser.js"; +import { MatchQueryContext } from "./esql_parser.js"; /** @@ -992,5 +994,25 @@ export default class esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitLookupCommand?: (ctx: LookupCommandContext) => void; + /** + * Enter a parse tree produced by `esql_parser.matchCommand`. + * @param ctx the parse tree + */ + enterMatchCommand?: (ctx: MatchCommandContext) => void; + /** + * Exit a parse tree produced by `esql_parser.matchCommand`. + * @param ctx the parse tree + */ + exitMatchCommand?: (ctx: MatchCommandContext) => void; + /** + * Enter a parse tree produced by `esql_parser.matchQuery`. + * @param ctx the parse tree + */ + enterMatchQuery?: (ctx: MatchQueryContext) => void; + /** + * Exit a parse tree produced by `esql_parser.matchQuery`. + * @param ctx the parse tree + */ + exitMatchQuery?: (ctx: MatchQueryContext) => void; } diff --git a/packages/kbn-esql-ast/src/ast/constants.ts b/packages/kbn-esql-ast/src/ast/constants.ts new file mode 100644 index 0000000000000..ee78109f7fc94 --- /dev/null +++ b/packages/kbn-esql-ast/src/ast/constants.ts @@ -0,0 +1,19 @@ +/* + * 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. + */ + +/** + * The group name of a binary expression. Groups are ordered by precedence. + */ +export enum BinaryExpressionGroup { + unknown = 0, + additive = 10, + multiplicative = 20, + assignment = 30, + comparison = 40, + regex = 50, +} diff --git a/packages/kbn-esql-ast/src/ast/helpers.ts b/packages/kbn-esql-ast/src/ast/helpers.ts new file mode 100644 index 0000000000000..a7961a9ed01b9 --- /dev/null +++ b/packages/kbn-esql-ast/src/ast/helpers.ts @@ -0,0 +1,69 @@ +/* + * 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 { ESQLAstNode, ESQLBinaryExpression, ESQLFunction } from '../types'; +import { BinaryExpressionGroup } from './constants'; + +export const isFunctionExpression = (node: unknown): node is ESQLFunction => + !!node && typeof node === 'object' && !Array.isArray(node) && (node as any).type === 'function'; + +/** + * Returns true if the given node is a binary expression, i.e. an operator + * surrounded by two operands: + * + * ``` + * 1 + 1 + * column LIKE "foo" + * foo = "bar" + * ``` + * + * @param node Any ES|QL AST node. + */ +export const isBinaryExpression = (node: unknown): node is ESQLBinaryExpression => + isFunctionExpression(node) && node.subtype === 'binary-expression'; + +/** + * Returns the group of a binary expression: + * + * - `additive`: `+`, `-` + * - `multiplicative`: `*`, `/`, `%` + * - `assignment`: `=` + * - `comparison`: `==`, `=~`, `!=`, `<`, `<=`, `>`, `>=` + * - `regex`: `like`, `not_like`, `rlike`, `not_rlike` + * @param node Any ES|QL AST node. + * @returns Binary expression group or undefined if the node is not a binary expression. + */ +export const binaryExpressionGroup = (node: ESQLAstNode): BinaryExpressionGroup => { + if (isBinaryExpression(node)) { + switch (node.name) { + case '+': + case '-': + return BinaryExpressionGroup.additive; + case '*': + case '/': + case '%': + return BinaryExpressionGroup.multiplicative; + case '=': + return BinaryExpressionGroup.assignment; + case '==': + case '=~': + case '!=': + case '<': + case '<=': + case '>': + case '>=': + return BinaryExpressionGroup.comparison; + case 'like': + case 'not_like': + case 'rlike': + case 'not_rlike': + return BinaryExpressionGroup.regex; + } + } + return BinaryExpressionGroup.unknown; +}; diff --git a/packages/kbn-esql-ast/src/ast_helpers.ts b/packages/kbn-esql-ast/src/ast_helpers.ts index 6ebb3fb9c4490..e338d2eacd4a4 100644 --- a/packages/kbn-esql-ast/src/ast_helpers.ts +++ b/packages/kbn-esql-ast/src/ast_helpers.ts @@ -11,12 +11,15 @@ */ import { type Token, type ParserRuleContext, type TerminalNode } from 'antlr4'; -import type { - ArithmeticUnaryContext, - DecimalValueContext, - InlineCastContext, - IntegerValueContext, - QualifiedIntegerLiteralContext, +import { + IndexPatternContext, + QualifiedNameContext, + type ArithmeticUnaryContext, + type DecimalValueContext, + type InlineCastContext, + type IntegerValueContext, + type QualifiedIntegerLiteralContext, + QualifiedNamePatternContext, } from './antlr/esql_parser'; import { getPosition } from './ast_position_utils'; import { DOUBLE_TICKS_REGEX, SINGLE_BACKTICK, TICKS_REGEX } from './constants'; @@ -39,6 +42,7 @@ import type { FunctionSubtype, ESQLNumericLiteral, } from './types'; +import { parseIdentifier } from './parser/helpers'; export function nonNullable(v: T): v is NonNullable { return v != null; @@ -303,6 +307,34 @@ function sanitizeSourceString(ctx: ParserRuleContext) { return contextText; } +const unquoteIndexString = (indexString: string): string => { + const isStringQuoted = indexString[0] === '"'; + + if (!isStringQuoted) { + return indexString; + } + + // If wrapped by triple double quotes, simply remove them. + if (indexString.startsWith(`"""`) && indexString.endsWith(`"""`)) { + return indexString.slice(3, -3); + } + + // If wrapped by double quote, remove them and unescape the string. + if (indexString[indexString.length - 1] === '"') { + indexString = indexString.slice(1, -1); + indexString = indexString + .replace(/\\"/g, '"') + .replace(/\\r/g, '\r') + .replace(/\\n/g, '\n') + .replace(/\\t/g, '\t') + .replace(/\\\\/g, '\\'); + return indexString; + } + + // This should never happen, but if it does, return the original string. + return indexString; +}; + export function sanitizeIdentifierString(ctx: ParserRuleContext) { const result = getUnquotedText(ctx)?.getText() || @@ -349,8 +381,27 @@ export function createSource( type: 'index' | 'policy' = 'index' ): ESQLSource { const text = sanitizeSourceString(ctx); + + let cluster: string = ''; + let index: string = ''; + + if (ctx instanceof IndexPatternContext) { + const clusterString = ctx.clusterString(); + const indexString = ctx.indexString(); + + if (clusterString) { + cluster = clusterString.getText(); + } + if (indexString) { + index = indexString.getText(); + index = unquoteIndexString(index); + } + } + return { type: 'source', + cluster, + index, name: text, sourceType: type, text, @@ -360,10 +411,13 @@ export function createSource( } export function createColumnStar(ctx: TerminalNode): ESQLColumn { + const text = ctx.getText(); + return { type: 'column', - name: ctx.getText(), - text: ctx.getText(), + name: text, + parts: [text], + text, location: getPosition(ctx.symbol), incomplete: ctx.getText() === '', quoted: false, @@ -371,11 +425,22 @@ export function createColumnStar(ctx: TerminalNode): ESQLColumn { } export function createColumn(ctx: ParserRuleContext): ESQLColumn { + const parts: string[] = []; + if (ctx instanceof QualifiedNamePatternContext) { + parts.push( + ...ctx.identifierPattern_list().map((identifier) => parseIdentifier(identifier.getText())) + ); + } else if (ctx instanceof QualifiedNameContext) { + parts.push(...ctx.identifier_list().map((identifier) => parseIdentifier(identifier.getText()))); + } else { + parts.push(sanitizeIdentifierString(ctx)); + } const text = sanitizeIdentifierString(ctx); const hasQuotes = Boolean(getQuotedText(ctx) || isQuoted(ctx.getText())); return { type: 'column' as const, name: text, + parts, text: ctx.getText(), location: getPosition(ctx.start, ctx.stop), incomplete: Boolean(ctx.exception || text === ''), diff --git a/packages/kbn-esql-ast/src/parser/helpers.ts b/packages/kbn-esql-ast/src/parser/helpers.ts new file mode 100644 index 0000000000000..9aea72a3a2073 --- /dev/null +++ b/packages/kbn-esql-ast/src/parser/helpers.ts @@ -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. + */ + +export const isQuotedIdentifier = (text: string): boolean => { + const firstChar = text[0]; + const lastChar = text[text.length - 1]; + + return firstChar === '`' && lastChar === '`'; +}; + +export const parseIdentifier = (text: string): string => { + const isQuoted = isQuotedIdentifier(text); + + if (!isQuoted) { + return text; + } + + return text.slice(1, -1).replace(/``/g, '`'); +}; + +export const regexUnquotedIdentifierPattern = /^([a-z\*_\@]{1})[a-z0-9_\*]*$/i; + +export const formatIdentifier = (text: string): string => { + if (regexUnquotedIdentifierPattern.test(text)) { + return text; + } + + return `\`${text.replace(/`/g, '``')}\``; +}; + +export const formatIdentifierParts = (parts: string[]): string => + parts.map(formatIdentifier).join('.'); diff --git a/packages/kbn-esql-ast/src/pretty_print/README.md b/packages/kbn-esql-ast/src/pretty_print/README.md new file mode 100644 index 0000000000000..48066697a5a7e --- /dev/null +++ b/packages/kbn-esql-ast/src/pretty_print/README.md @@ -0,0 +1,23 @@ +# Pretty-printing + +*Pretty-printing* is the process of converting an ES|QL AST into a +human-readable string. This is useful for debugging or for displaying +the AST to the user. + +This module provides a number of pretty-printing options. + + +## `BasicPrettyPrinter` + +The `BasicPrettyPrinter` class provides the most basic pretty-printing—it +prints a query to a single line. Or it can print a query with each command on +a separate line, with the ability to customize the indentation before the pipe +character. + +It can also print a single command to a single line; or an expression to a +single line. + +- `BasicPrettyPrinter.print()` — prints query to a single line. +- `BasicPrettyPrinter.multiline()` — prints a query to multiple lines. +- `BasicPrettyPrinter.command()` — prints a command to a single line. +- `BasicPrettyPrinter.expression()` — prints an expression to a single line. diff --git a/packages/kbn-esql-ast/src/pretty_print/__tests__/basic_pretty_printer.test.ts b/packages/kbn-esql-ast/src/pretty_print/__tests__/basic_pretty_printer.test.ts new file mode 100644 index 0000000000000..0afb4e8e42ce4 --- /dev/null +++ b/packages/kbn-esql-ast/src/pretty_print/__tests__/basic_pretty_printer.test.ts @@ -0,0 +1,457 @@ +/* + * 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 { getAstAndSyntaxErrors } from '../../ast_parser'; +import { ESQLFunction } from '../../types'; +import { Walker } from '../../walker'; +import { BasicPrettyPrinter, BasicPrettyPrinterMultilineOptions } from '../basic_pretty_printer'; + +const reprint = (src: string) => { + const { ast } = getAstAndSyntaxErrors(src); + const text = BasicPrettyPrinter.print(ast); + + // console.log(JSON.stringify(ast, null, 2)); + + return { text }; +}; + +describe('single line query', () => { + describe('commands', () => { + describe('FROM', () => { + test('FROM command with a single source', () => { + const { text } = reprint('FROM index1'); + + expect(text).toBe('FROM index1'); + }); + + test('FROM command with multiple indices', () => { + const { text } = reprint('from index1, index2, index3'); + + expect(text).toBe('FROM index1, index2, index3'); + }); + + test('FROM command with METADATA', () => { + const { text } = reprint('FROM index1, index2 METADATA field1, field2'); + + expect(text).toBe('FROM index1, index2 METADATA field1, field2'); + }); + }); + + describe('SORT', () => { + test('order expression with no modifier', () => { + const { text } = reprint('FROM a | SORT b'); + + expect(text).toBe('FROM a | SORT b'); + }); + + /** @todo Enable once order expressions are supported. */ + test.skip('order expression with ASC modifier', () => { + const { text } = reprint('FROM a | SORT b ASC'); + + expect(text).toBe('FROM a | SORT b ASC'); + }); + + /** @todo Enable once order expressions are supported. */ + test.skip('order expression with ASC and NULLS FIRST modifier', () => { + const { text } = reprint('FROM a | SORT b ASC NULLS FIRST'); + + expect(text).toBe('FROM a | SORT b ASC NULLS FIRST'); + }); + }); + + describe('EXPLAIN', () => { + /** @todo Enable once query expressions are supported. */ + test.skip('a nested query', () => { + const { text } = reprint('EXPLAIN [ FROM 1 ]'); + + expect(text).toBe('EXPLAIN [ FROM 1 ]'); + }); + }); + + describe('SHOW', () => { + /** @todo Enable once show command args are parsed as columns. */ + test.skip('info page', () => { + const { text } = reprint('SHOW info'); + + expect(text).toBe('SHOW info'); + }); + }); + + describe('META', () => { + /** @todo Enable once show command args are parsed as columns. */ + test.skip('functions page', () => { + const { text } = reprint('META functions'); + + expect(text).toBe('META functions'); + }); + }); + + describe('STATS', () => { + test('with aggregates assignment', () => { + const { text } = reprint('FROM a | STATS var = agg(123, fn(true))'); + + expect(text).toBe('FROM a | STATS var = AGG(123, FN(TRUE))'); + }); + + test('with BY clause', () => { + const { text } = reprint('FROM a | STATS a(1), b(2) by asdf'); + + expect(text).toBe('FROM a | STATS A(1), B(2) BY asdf'); + }); + }); + }); + + describe('expressions', () => { + describe('source expressions', () => { + test('simple source expression', () => { + const { text } = reprint('from source'); + + expect(text).toBe('FROM source'); + }); + + test('sources with dots', () => { + const { text } = reprint('FROM a.b.c'); + + expect(text).toBe('FROM a.b.c'); + }); + + test('sources with slashes', () => { + const { text } = reprint('FROM a/b/c'); + + expect(text).toBe('FROM a/b/c'); + }); + + test('cluster source', () => { + const { text } = reprint('FROM cluster:index'); + + expect(text).toBe('FROM cluster:index'); + }); + + test('quoted source', () => { + const { text } = reprint('FROM "quoted"'); + + expect(text).toBe('FROM quoted'); + }); + + test('triple-quoted source', () => { + const { text } = reprint('FROM """quoted"""'); + + expect(text).toBe('FROM quoted'); + }); + }); + + describe('column expressions', () => { + test('simple columns expressions', () => { + const { text } = reprint('FROM a METADATA column1, _column2'); + + expect(text).toBe('FROM a METADATA column1, _column2'); + }); + + // Un-skip when columns are parsed correctly: https://github.com/elastic/kibana/issues/189913 + test.skip('nested fields', () => { + const { text } = reprint('FROM a | KEEP a.b'); + + expect(text).toBe('FROM a | KEEP a.b'); + }); + + // Un-skip when columns are parsed correctly: https://github.com/elastic/kibana/issues/189913 + test.skip('quoted nested fields', () => { + const { text } = reprint('FROM index | KEEP `a`.`b`, c.`d`'); + + expect(text).toBe('FROM index | KEEP a.b, c.d'); + }); + + // Un-skip when identifier names are escaped correctly. + test.skip('special character in identifier', () => { + const { text } = reprint('FROM a | KEEP `a 👉 b`, a.`✅`'); + + expect(text).toBe('FROM a | KEEP `a 👉 b`, a.`✅`'); + }); + }); + + describe('"function" expressions', () => { + describe('function call expression', () => { + test('no argument function', () => { + const { text } = reprint('ROW fn()'); + + expect(text).toBe('ROW FN()'); + }); + + test('functions with arguments', () => { + const { text } = reprint('ROW gg(1), wp(1, 2, 3)'); + + expect(text).toBe('ROW GG(1), WP(1, 2, 3)'); + }); + + test('functions with star argument', () => { + const { text } = reprint('ROW f(*)'); + + expect(text).toBe('ROW F(*)'); + }); + }); + + describe('unary expression', () => { + test('NOT expression', () => { + const { text } = reprint('ROW NOT a'); + + expect(text).toBe('ROW NOT a'); + }); + }); + + describe('postfix unary expression', () => { + test('IS NOT NULL expression', () => { + const { text } = reprint('ROW a IS NOT NULL'); + + expect(text).toBe('ROW a IS NOT NULL'); + }); + }); + + describe('binary expression expression', () => { + test('arithmetic expression', () => { + const { text } = reprint('ROW 1 + 2'); + + expect(text).toBe('ROW 1 + 2'); + }); + + test('assignment expression', () => { + const { text } = reprint('FROM a | STATS a != 1'); + + expect(text).toBe('FROM a | STATS a != 1'); + }); + + test('regex expression - 1', () => { + const { text } = reprint('FROM a | WHERE a NOT RLIKE "a"'); + + expect(text).toBe('FROM a | WHERE a NOT RLIKE "a"'); + }); + + test('regex expression - 2', () => { + const { text } = reprint('FROM a | WHERE a LIKE "b"'); + + expect(text).toBe('FROM a | WHERE a LIKE "b"'); + }); + }); + }); + + describe('literals expressions', () => { + test('null', () => { + const { text } = reprint('ROW null'); + + expect(text).toBe('ROW NULL'); + }); + + test('boolean', () => { + expect(reprint('ROW true').text).toBe('ROW TRUE'); + expect(reprint('ROW false').text).toBe('ROW FALSE'); + }); + + describe('numeric literal', () => { + test('integer', () => { + const { text } = reprint('ROW 1'); + + expect(text).toBe('ROW 1'); + }); + + test('decimal', () => { + const { text } = reprint('ROW 1.2'); + + expect(text).toBe('ROW 1.2'); + }); + + test('rounded decimal', () => { + const { text } = reprint('ROW 1.0'); + + expect(text).toBe('ROW 1.0'); + }); + + test('string', () => { + const { text } = reprint('ROW "abc"'); + + expect(text).toBe('ROW "abc"'); + }); + + test('string w/ special chars', () => { + const { text } = reprint('ROW "as \\" 👍"'); + + expect(text).toBe('ROW "as \\" 👍"'); + }); + }); + + describe('params', () => { + test('unnamed', () => { + const { text } = reprint('ROW ?'); + + expect(text).toBe('ROW ?'); + }); + + test('named', () => { + const { text } = reprint('ROW ?kappa'); + + expect(text).toBe('ROW ?kappa'); + }); + + test('positional', () => { + const { text } = reprint('ROW ?42'); + + expect(text).toBe('ROW ?42'); + }); + }); + }); + + describe('list literal expressions', () => { + describe('integer list', () => { + test('one element list', () => { + expect(reprint('ROW [1]').text).toBe('ROW [1]'); + }); + + test('multiple elements', () => { + expect(reprint('ROW [1, 2]').text).toBe('ROW [1, 2]'); + expect(reprint('ROW [1, 2, -1]').text).toBe('ROW [1, 2, -1]'); + }); + }); + + describe('boolean list', () => { + test('one element list', () => { + expect(reprint('ROW [true]').text).toBe('ROW [TRUE]'); + }); + + test('multiple elements', () => { + expect(reprint('ROW [TRUE, false]').text).toBe('ROW [TRUE, FALSE]'); + expect(reprint('ROW [false, FALSE, false]').text).toBe('ROW [FALSE, FALSE, FALSE]'); + }); + }); + + describe('string list', () => { + test('one element list', () => { + expect(reprint('ROW ["a"]').text).toBe('ROW ["a"]'); + }); + + test('multiple elements', () => { + expect(reprint('ROW ["a", "b"]').text).toBe('ROW ["a", "b"]'); + expect(reprint('ROW ["foo", "42", "boden"]').text).toBe('ROW ["foo", "42", "boden"]'); + }); + }); + }); + + describe('cast expressions', () => { + test('various', () => { + expect(reprint('ROW a::string').text).toBe('ROW a::string'); + expect(reprint('ROW 123::string').text).toBe('ROW 123::string'); + expect(reprint('ROW "asdf"::number').text).toBe('ROW "asdf"::number'); + }); + + test('wraps into rackets complex cast expressions', () => { + expect(reprint('ROW (1 + 2)::string').text).toBe('ROW (1 + 2)::string'); + }); + + test('does not wrap function call', () => { + expect(reprint('ROW fn()::string').text).toBe('ROW FN()::string'); + }); + }); + + describe('time interval expression', () => { + test('days', () => { + const { text } = reprint('ROW 1 d'); + + expect(text).toBe('ROW 1d'); + }); + + test('years', () => { + const { text } = reprint('ROW 42y'); + + expect(text).toBe('ROW 42y'); + }); + }); + }); +}); + +describe('multiline query', () => { + const multiline = (src: string, opts?: BasicPrettyPrinterMultilineOptions) => { + const { ast } = getAstAndSyntaxErrors(src); + const text = BasicPrettyPrinter.multiline(ast, opts); + + // console.log(JSON.stringify(ast, null, 2)); + + return { text }; + }; + + test('can print the query on multiple lines', () => { + const { text } = multiline('FROM index1 | SORT asdf | WHERE a == 1 | LIMIT 123'); + + expect(text).toBe(`FROM index1 + | SORT asdf + | WHERE a == 1 + | LIMIT 123`); + }); + + test('can customize tabbing before pipe', () => { + const query = 'FROM index1 | SORT asdf | WHERE a == 1 | LIMIT 123'; + const text1 = multiline(query, { pipeTab: '' }).text; + const text2 = multiline(query, { pipeTab: '\t' }).text; + + expect(text1).toBe(`FROM index1 +| SORT asdf +| WHERE a == 1 +| LIMIT 123`); + + expect(text2).toBe(`FROM index1 +\t| SORT asdf +\t| WHERE a == 1 +\t| LIMIT 123`); + }); + + test('large query', () => { + const query = `FROM employees, kibana_sample_data_flights, kibana_sample_data_logs, kibana_sample_data_ecommerce +| EVAL hired = DATE_FORMAT("YYYY-MM-DD", hired, "Europe/Amsterdam") +| STATS avg_salary = AVG(salary) BY hired, languages, department, dream_salary > 100000 +| EVAL avg_salary = ROUND(avg_salary) +| SORT hired, languages +| LIMIT 100`; + const text1 = multiline(query, { pipeTab: '' }).text; + + expect(text1).toBe(query); + }); +}); + +describe('single line command', () => { + test('can print an individual command', () => { + const query = `FROM employees, kibana_sample_data_flights, kibana_sample_data_logs, kibana_sample_data_ecommerce + | EVAL hired = DATE_FORMAT("YYYY-MM-DD", hired, "Europe/Amsterdam") + | STATS avg_salary = AVG(salary) BY hired, languages, department, dream_salary > 100000 + | EVAL avg_salary = ROUND(avg_salary) + | SORT hired, languages + | LIMIT 100`; + const { ast: commands } = getAstAndSyntaxErrors(query); + const line1 = BasicPrettyPrinter.command(commands[0]); + const line2 = BasicPrettyPrinter.command(commands[1]); + const line3 = BasicPrettyPrinter.command(commands[2]); + + expect(line1).toBe( + 'FROM employees, kibana_sample_data_flights, kibana_sample_data_logs, kibana_sample_data_ecommerce' + ); + expect(line2).toBe('EVAL hired = DATE_FORMAT("YYYY-MM-DD", hired, "Europe/Amsterdam")'); + expect(line3).toBe( + 'STATS avg_salary = AVG(salary) BY hired, languages, department, dream_salary > 100000' + ); + }); +}); + +describe('single line expression', () => { + test('can print a single expression', () => { + const query = `FROM a | STATS a != 1, avg(1, 2, 3)`; + const { ast } = getAstAndSyntaxErrors(query); + const comparison = Walker.match(ast, { type: 'function', name: '!=' })! as ESQLFunction; + const func = Walker.match(ast, { type: 'function', name: 'avg' })! as ESQLFunction; + + const text1 = BasicPrettyPrinter.expression(comparison); + const text2 = BasicPrettyPrinter.expression(func); + + expect(text1).toBe('a != 1'); + expect(text2).toBe('AVG(1, 2, 3)'); + }); +}); diff --git a/packages/kbn-esql-ast/src/pretty_print/__tests__/fixtures.ts b/packages/kbn-esql-ast/src/pretty_print/__tests__/fixtures.ts new file mode 100644 index 0000000000000..f50bd546fde6c --- /dev/null +++ b/packages/kbn-esql-ast/src/pretty_print/__tests__/fixtures.ts @@ -0,0 +1,66 @@ +/* + * 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 query1 = ` +from kibana_sample_data_logs +| EVAL timestamp=DATE_TRUNC(3 hour, @timestamp), status = CASE( to_integer(response.keyword) >= 200 and to_integer(response.keyword) < 400, "HTTP 2xx and 3xx", to_integer(response.keyword) >= 400 and to_integer(response.keyword) < 500, "HTTP 4xx", "HTTP 5xx") +| stats results = count(*) by \`Over time\` = BUCKET(timestamp, 50, ?t_start, ?t_end), status +`; + +export const query2 = ` +from kibana_sample_data_logs +| sort @timestamp +| eval t = now() +| eval key = case(timestamp < t - 1 hour and timestamp > t - 2 hour, "Last hour", "Other") +| stats sum = sum(bytes), count = count_distinct(clientip) by key, extension.keyword +| eval sum_last_hour = case(key == "Last hour", sum), sum_rest = case(key == "Other", sum), count_last_hour = case(key == "Last hour", count), count_rest = case(key == "Other", count) +| stats sum_last_hour = max(sum_last_hour), sum_rest = max(sum_rest), count_last_hour = max(count_last_hour), count_rest = max(count_rest) by key, extension.keyword +| eval total_bytes = to_double(coalesce(sum_last_hour, 0::long) + coalesce(sum_rest, 0::long)) +| eval total_visits = to_double(coalesce(count_last_hour, 0::long) + coalesce(count_rest, 0::long)) +| eval bytes_transform = round(total_bytes / 1000000.0, 1) +| eval bytes_transform_last_hour = round(sum_last_hour / 1000.0, 2) +| keep count_last_hour, total_visits, bytes_transform, bytes_transform_last_hour, extension.keyword +| stats count_last_hour = sum(count_last_hour), total_visits = sum(total_visits), bytes_transform = sum(bytes_transform), bytes_transform_last_hour = sum(bytes_transform_last_hour) by extension.keyword +| rename total_visits as \`Unique Visits (Total)\`, count_last_hour as \`Unique Visits (Last hour)\`, bytes_transform as \`Bytes(Total - MB)\`, bytes_transform_last_hour as \`Bytes(Last hour - KB)\`, extension.keyword as \`Type\` +`; + +export const query3 = ` +from kibana_sample_data_logs +| keep bytes, clientip, url.keyword, response.keyword +| EVAL type = CASE(to_integer(response.keyword) >= 400 and to_integer(response.keyword) < 500, "4xx", to_integer(response.keyword) >= 500, "5xx", "Other") +| stats Visits = count(), Unique = count_distinct(clientip), p95 = percentile(bytes, 95), median = median(bytes) by type, url.keyword +| eval count_4xx = case(type == "4xx", Visits), count_5xx = case(type == "5xx", Visits), count_rest = case(type == "Other", Visits) +| stats count_4xx = sum(count_4xx), count_5xx = sum(count_5xx), count_rest = sum(count_rest), Unique = sum(Unique),\`95th percentile of bytes\` = max(p95), \`Median of bytes\` = max(median) BY url.keyword +| eval count_4xx = COALESCE(count_4xx, 0::LONG), count_5xx = COALESCE(count_5xx, 0::LONG), count_rest = COALESCE(count_rest, 0::LONG) +| eval total_records = TO_DOUBLE(count_4xx + count_5xx + count_rest) +| eval percentage_4xx = count_4xx / total_records, percentage_5xx = count_5xx / total_records +| eval percentage_4xx = round(100 * percentage_4xx, 2) +| eval percentage_5xx = round(100 * percentage_5xx, 2) +| drop count_4xx, count_rest, total_records +| RENAME percentage_4xx as \`HTTP 4xx\`, percentage_5xx as \`HTTP 5xx\` +`; + +export const query4 = ` +from kibana_sample_data_logs, kibana_sample_data_flights, kibana_sample_data_ecommerce, + index1, my-data-2024-*, my-data-2025-01-*, xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx, yyyy-yyyy-yyyy-yyyy-yyyy-yyyy-yyyy-yyyy-yyyy + METADATA _index, _id, _type, _score + +| sort @timestamp +| eval t = now() +| eval key = case(timestamp < t - 1 hour and timestamp > t - 2 hour, "Last hour", "Other") +| stats sum = sum(bytes), count = count_distinct(clientip) by key, extension.keyword +| eval sum_last_hour = case(key == "Last hour", sum), sum_rest = case(key == "Other", sum), count_last_hour = case(key == "Last hour", count), count_rest = case(key == "Other", count) +| stats sum_last_hour = max(sum_last_hour), sum_rest = max(sum_rest), count_last_hour = max(count_last_hour), count_rest = max(count_rest) by key, extension.keyword +| eval total_bytes = to_double(coalesce(sum_last_hour, 0::long) + coalesce(sum_rest, 0::long)) +| eval total_visits = to_double(coalesce(count_last_hour, 0::long) + coalesce(count_rest, 0::long)) +| eval bytes_transform = round(total_bytes / 1000000.0, 1) +| eval bytes_transform_last_hour = round(sum_last_hour / 1000.0, 2) +| keep count_last_hour, total_visits, bytes_transform, bytes_transform_last_hour, extension.keyword +| stats count_last_hour = sum(count_last_hour), total_visits = sum(total_visits), bytes_transform = sum(bytes_transform), bytes_transform_last_hour = sum(bytes_transform_last_hour) by extension.keyword +| rename total_visits as \`Unique Visits (Total)\`, count_last_hour as \`Unique Visits (Last hour)\`, bytes_transform as \`Bytes(Total - MB)\`, bytes_transform_last_hour as \`Bytes(Last hour - KB)\`, extension.keyword as \`Type\` +`; diff --git a/packages/kbn-esql-ast/src/pretty_print/__tests__/wrapping_pretty_printer.test.ts b/packages/kbn-esql-ast/src/pretty_print/__tests__/wrapping_pretty_printer.test.ts new file mode 100644 index 0000000000000..4cbebb5d66b67 --- /dev/null +++ b/packages/kbn-esql-ast/src/pretty_print/__tests__/wrapping_pretty_printer.test.ts @@ -0,0 +1,566 @@ +/* + * 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 { getAstAndSyntaxErrors } from '../../ast_parser'; +import { WrappingPrettyPrinter, WrappingPrettyPrinterOptions } from '../wrapping_pretty_printer'; + +const reprint = (src: string, opts?: WrappingPrettyPrinterOptions) => { + const { ast } = getAstAndSyntaxErrors(src); + const text = WrappingPrettyPrinter.print(ast, opts); + + // console.log(JSON.stringify(ast, null, 2)); + + return { text }; +}; + +describe('casing', () => { + test('can chose command name casing', () => { + const query = 'FROM index | WHERE a == 123'; + const text1 = reprint(query, { lowercase: true }).text; + const text2 = reprint(query, { lowercaseCommands: true }).text; + const text3 = reprint(query, { lowercaseCommands: false }).text; + + expect(text1).toBe('from index | where a == 123'); + expect(text2).toBe('from index | where a == 123'); + expect(text3).toBe('FROM index | WHERE a == 123'); + }); + + test('can chose command option name casing', () => { + const text1 = reprint('FROM a METADATA b', { lowercaseOptions: true }).text; + const text2 = reprint('FROM a METADATA b', { lowercaseOptions: false }).text; + + expect(text1).toBe('FROM a metadata b'); + expect(text2).toBe('FROM a METADATA b'); + }); + + test('can chose function name casing', () => { + const query = 'FROM index | STATS FN1(), FN2(), FN3()'; + const text1 = reprint(query, { lowercase: true }).text; + const text2 = reprint(query, { lowercaseFunctions: true }).text; + const text3 = reprint(query, { lowercaseFunctions: false }).text; + + expect(text1).toBe('from index | stats fn1(), fn2(), fn3()'); + expect(text2).toBe('FROM index | STATS fn1(), fn2(), fn3()'); + expect(text3).toBe('FROM index | STATS FN1(), FN2(), FN3()'); + }); + + test('can choose keyword casing', () => { + const query = 'FROM index | RENAME a AS b'; + const text1 = reprint(query, { lowercase: true }).text; + const text2 = reprint(query, { lowercaseKeywords: true }).text; + const text3 = reprint(query, { lowercaseKeywords: false }).text; + + expect(text1).toBe('from index | rename a as b'); + expect(text2).toBe('FROM index | RENAME a as b'); + expect(text3).toBe('FROM index | RENAME a AS b'); + }); + + test('can chose keyword casing (function nodes)', () => { + const query = 'FROM index | WHERE a LIKE "b"'; + const text1 = reprint(query, { lowercase: true }).text; + const text2 = reprint(query, { lowercaseKeywords: true }).text; + const text3 = reprint(query, { lowercaseKeywords: false }).text; + + expect(text1).toBe('from index | where a like "b"'); + expect(text2).toBe('FROM index | WHERE a like "b"'); + expect(text3).toBe('FROM index | WHERE a LIKE "b"'); + }); +}); + +describe('short query', () => { + test('can format a simple query to one line', () => { + const query = 'FROM index | WHERE a == 123'; + const text = reprint(query).text; + + expect(text).toBe('FROM index | WHERE a == 123'); + }); + + test('one line query respects indentation option', () => { + const query = 'FROM index | WHERE a == 123'; + const text = reprint(query, { indent: ' ' }).text; + + expect(text).toBe(' FROM index | WHERE a == 123'); + }); + + test('can force small query onto multiple lines', () => { + const query = 'FROM index | WHERE a == 123'; + const text = reprint(query, { multiline: true }).text; + + expect('\n' + text).toBe(` +FROM index + | WHERE a == 123`); + }); + + test('with initial indentation', () => { + const query = 'FROM index | WHERE a == 123'; + const text = reprint(query, { multiline: true, indent: '>' }).text; + + expect('\n' + text).toBe(` +>FROM index +> | WHERE a == 123`); + }); +}); + +describe('long query', () => { + describe('command arguments', () => { + test('wraps source list', () => { + const query = + 'FROM index, another_index, yet_another_index, on-more-index, last_index, very_last_index, ok_this_is_the_last_index'; + const text = reprint(query, { indent: '- ' }).text; + + expect('\n' + text).toBe(` +- FROM index, another_index, yet_another_index, on-more-index, last_index, +- very_last_index, ok_this_is_the_last_index`); + }); + + test('wraps source list, leaves one item on last line', () => { + const query = + 'FROM index, another_index, yet_another_index, on-more-index, last_index, very_last_index'; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index, another_index, yet_another_index, on-more-index, last_index, + very_last_index`); + }); + + test('for a single very long source, prints a standalone line', () => { + const query = + 'FROM index_another_index_yet_another_index_on-more-index_last_index_very_last_index'; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM + index_another_index_yet_another_index_on-more-index_last_index_very_last_index`); + }); + + test('keeps sources in a list, as long as at least two fit per line', () => { + const query = ` +FROM xxxxxxxxxx, yyyyyyyyyyy, zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz, aaaa, + bbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccccccccc, gggggggggggggggg +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM xxxxxxxxxx, yyyyyyyyyyy, zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz, aaaa, + bbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccccccccc, gggggggggggggggg`); + }); + + test('keeps sources in a list, even if the last item consumes more than a line', () => { + const query = ` +FROM xxxxxxxxxx, yyyyyyyyyyy, zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz, aaaa, + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM xxxxxxxxxx, yyyyyyyyyyy, zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz, aaaa, + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb`); + }); + + test('breaks sources per-line, if list layout results into alone source per line', () => { + const query = ` +FROM xxxxxxxxxx, yyyyyyyyyyy, zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz, + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, // <------------ this one + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccc, ggggggggg +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM + xxxxxxxxxx, + yyyyyyyyyyy, + zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz, + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, + ccccccc, + ggggggggg`); + }); + + test('breaks sources per-line, whe there is one large source', () => { + const query = ` +FROM xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, // <------------ this one + yyyyyyyyyyy, ccccccc, ggggggggg + `; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, + yyyyyyyyyyy, + ccccccc, + ggggggggg`); + }); + }); + + describe('command option', () => { + test('prints short query on a single line', () => { + const query = 'FROM index METADATA _id'; + const text = reprint(query).text; + + expect(text).toBe(`FROM index METADATA _id`); + }); + + test('breaks METADATA option to new line, when query reaches wrapping threshold', () => { + const query = ` +FROM index1, index2, index2, index3, index4, index5, index6 METADATA _id, _source`; + const text = reprint(query, { pipeTab: ' ' }).text; + + expect('\n' + text).toBe(` +FROM index1, index2, index2, index3, index4, index5, index6 + METADATA _id, _source`); + }); + + test('indents METADATA option differently than the LIMIT pipe', () => { + const query = ` +FROM index1, index2, index2, index3, index4, index5, index6 METADATA _id, _source | LIMIT 10`; + const text = reprint(query, { pipeTab: ' ' }).text; + + expect('\n' + text).toBe(` +FROM index1, index2, index2, index3, index4, index5, index6 + METADATA _id, _source + | LIMIT 10`); + }); + + test('indents METADATA option differently than main FROM arguments', () => { + const query = ` +FROM index1, index2, index2, index3, index4, index5, index6, index7, index8, index9, index10, index11, index12, index13, index14, index15, index16, index17 METADATA _id, _source`; + const text = reprint(query, { pipeTab: ' ' }).text; + + expect('\n' + text).toBe(` +FROM index1, index2, index2, index3, index4, index5, index6, index7, index8, + index9, index10, index11, index12, index13, index14, index15, index16, + index17 + METADATA _id, _source`); + }); + + test('indents METADATA option differently than main FROM arguments when broken per line', () => { + const query = ` +FROM index_index_index_index_index_index_index_index_index_index_index_index_1, index_index_index_index_index_index_index_index_index_index_index_index_2, index_index_index_index_index_index_index_index_index_index_index_index_3 METADATA _id, _source`; + const text = reprint(query, { pipeTab: ' ' }).text; + + expect('\n' + text).toBe(` +FROM + index_index_index_index_index_index_index_index_index_index_index_index_1, + index_index_index_index_index_index_index_index_index_index_index_index_2, + index_index_index_index_index_index_index_index_index_index_index_index_3 + METADATA _id, _source`); + }); + + test('indents METADATA option different than the source list', () => { + const query = + 'FROM index, another_index, another_index, a_very_very_long_index_a_very_very_long_index_a_very_very_long_index, another_index, another_index METADATA _id, _source'; + const text = reprint(query, { indent: '👉 ' }).text; + + expect('\n' + text).toBe(` +👉 FROM +👉 index, +👉 another_index, +👉 another_index, +👉 a_very_very_long_index_a_very_very_long_index_a_very_very_long_index, +👉 another_index, +👉 another_index +👉 METADATA _id, _source`); + }); + + test('can break multiple options', () => { + const query = + 'from a | enrich policy ON match_field_which_is_very_long WITH new_name1 = field1, new_name2 = field2'; + const text = reprint(query, { indent: '👉 ' }).text; + + expect('\n' + text).toBe(` +👉 FROM a +👉 | ENRICH policy +👉 ON match_field_which_is_very_long +👉 WITH new_name1 = field1, new_name2 = field2`); + }); + + test('can break multiple options and wrap option arguments', () => { + const query = + 'from a | enrich policy ON match_field WITH new_name1 = field1, new_name2 = field2, new_name3 = field3, new_name4 = field4, new_name5 = field5, new_name6 = field6, new_name7 = field7, new_name8 = field8, new_name9 = field9, new_name10 = field10'; + const text = reprint(query, { indent: '👉 ' }).text; + + expect('\n' + text).toBe(` +👉 FROM a +👉 | ENRICH policy +👉 ON match_field +👉 WITH new_name1 = field1, new_name2 = field2, new_name3 = field3, +👉 new_name4 = field4, new_name5 = field5, new_name6 = field6, +👉 new_name7 = field7, new_name8 = field8, new_name9 = field9, +👉 new_name10 = field10`); + }); + }); + + describe('function call arguments', () => { + test('renders a one line list, if there is enough space', () => { + const query = ` +FROM index +| STATS avg(height), sum(weight), min(age), max(age), count(*) +| LIMIT 10 +`; + const text = reprint(query, { indent: '- ' }).text; + + expect('\n' + text).toBe(` +- FROM index +- | STATS AVG(height), SUM(weight), MIN(age), MAX(age), COUNT(*) +- | LIMIT 10`); + }); + + test('wraps function list', () => { + const query = ` +FROM index +| STATS avg(height), sum(weight), min(age), max(age), count(*), super_function(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) +| LIMIT 10 +`; + const text = reprint(query, { indent: '- ' }).text; + + expect('\n' + text).toBe(` +- FROM index +- | STATS AVG(height), SUM(weight), MIN(age), MAX(age), COUNT(*), +- SUPER_FUNCTION(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) +- | LIMIT 10`); + }); + + test('wraps function arguments', () => { + const query = ` +FROM index +| STATS avg(height), + super_function(some_column, another_column == "this is string", 1234567890.999991), + sum(weight) +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + AVG(height), + SUPER_FUNCTION(some_column, another_column == "this is string", + 1234567890.999991), + SUM(weight) + | LIMIT 10`); + }); + + test('break by line function arguments, when wrapping is not enough', () => { + const query = ` +FROM index +| STATS avg(height), + super_function("xxxx-xxxx-xxxxxxxxxxxx-xxxx-xxxxxxxx", "yyyy-yyyy-yyyyyyyyyyyy-yyyy-yyyyyyyyyyyy", "zzzz-zzzz-zzzzzzzzzzzzzzz-zzzz-zzzzzzzzzzzzzz"), + sum(weight) +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + AVG(height), + SUPER_FUNCTION( + "xxxx-xxxx-xxxxxxxxxxxx-xxxx-xxxxxxxx", + "yyyy-yyyy-yyyyyyyyyyyy-yyyy-yyyyyyyyyyyy", + "zzzz-zzzz-zzzzzzzzzzzzzzz-zzzz-zzzzzzzzzzzzzz"), + SUM(weight) + | LIMIT 10`); + }); + + test('break by line last function arguments, when wrapping is not enough', () => { + const query = ` +FROM index +| STATS avg(height), + super_function("xxxx-xxxx-xxxxxxxxxxxx-xxxx-xxxxxxxx", "yyyy-yyyy-yyyyyyyyyyyy-yyyy-yyyyyyyyyyyy", "zzzz-zzzz-zzzzzzzzzzzzzzz-zzzz-zzzzzzzzzzzzzz"), +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + AVG(height), + SUPER_FUNCTION( + "xxxx-xxxx-xxxxxxxxxxxx-xxxx-xxxxxxxx", + "yyyy-yyyy-yyyyyyyyyyyy-yyyy-yyyyyyyyyyyy", + "zzzz-zzzz-zzzzzzzzzzzzzzz-zzzz-zzzzzzzzzzzzzz") + | LIMIT 10`); + }); + + test('break by line when wrapping would results in lines with a single item', () => { + const query = ` +FROM index +| STATS avg(height), + super_function("xxxx-xxxx-xxxxxxxxxxxxx-xxxxx-xxxxxxxx", + 1234567890 + 1234567890, + "zzzz-zzzz-zzzzzzzzzzzzzzzzz-zzzz-zzzzzzzzzzzzzz"), +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + AVG(height), + SUPER_FUNCTION( + "xxxx-xxxx-xxxxxxxxxxxxx-xxxxx-xxxxxxxx", + 1234567890 + 1234567890, + "zzzz-zzzz-zzzzzzzzzzzzzzzzz-zzzz-zzzzzzzzzzzzzz") + | LIMIT 10`); + }); + + test('break by line when wrapping would results in lines with a single item - 2', () => { + const query = ` +FROM index +| STATS avg(height), + super_function(func1(123 + 123123 - 12333.33 / FALSE), func2("abrakadabra what?"), func3(), func4()), +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + AVG(height), + SUPER_FUNCTION( + FUNC1(123 + 123123 - 12333.33 / FALSE), + FUNC2("abrakadabra what?"), + FUNC3(), + FUNC4()) + | LIMIT 10`); + }); + + test('can vertically flatten adjacent binary expressions of the same precedence', () => { + const query = ` +FROM index +| STATS super_function_name(0.123123123123123 + 888811112.232323123123 + 123123123123.123123123 + 23232323.23232323123 - 123 + 999)), +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + SUPER_FUNCTION_NAME( + 0.123123123123123 + + 888811112.2323232 + + 123123123123.12312 + + 23232323.232323233 - + 123 + + 999)`); + }); + }); + + describe('binary expressions', () => { + test('can break a standalone binary expression (+) to two lines', () => { + const query = ` +FROM index +| STATS super_function_name("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + SUPER_FUNCTION_NAME( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") + | LIMIT 10`); + }); + + describe('vertical flattening', () => { + test('binary expressions of different precedence are not flattened', () => { + const query = ` +FROM index +| STATS super_function_name(0.123123123123123 + 888811112.232323123123 * 123123123123.123123123 + 23232323.23232323123 - 123 + 999)), +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + SUPER_FUNCTION_NAME( + 0.123123123123123 + + 888811112.2323232 * 123123123123.12312 + + 23232323.232323233 - + 123 + + 999)`); + }); + + test('binary expressions vertical flattening child function function argument wrapping', () => { + const query = ` +FROM index +| STATS super_function_name(11111111111111.111 + 11111111111111.111 * 11111111111111.111 + another_function_goes_here("this will get wrapped", "at this word", "and one more long string") - 111 + 111)), +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + SUPER_FUNCTION_NAME( + 11111111111111.111 + + 11111111111111.111 * 11111111111111.111 + + ANOTHER_FUNCTION_GOES_HERE("this will get wrapped", "at this word", + "and one more long string") - + 111 + + 111)`); + }); + + test('two binary expression lists of different precedence group', () => { + const query = ` +FROM index +| STATS super_function_name(11111111111111.111 + 3333333333333.3333 * 3333333333333.3333 * 3333333333333.3333 * 3333333333333.3333 + 11111111111111.111 + 11111111111111.111)), +| LIMIT 10 +`; + const text = reprint(query).text; + + expect('\n' + text).toBe(` +FROM index + | STATS + SUPER_FUNCTION_NAME( + 11111111111111.111 + + 3333333333333.3335 * + 3333333333333.3335 * + 3333333333333.3335 * + 3333333333333.3335 + + 11111111111111.111 + + 11111111111111.111)`); + }); + }); + }); + + describe('inline cast expression', () => { + test('wraps complex expression into brackets where necessary', () => { + const query = ` +ROW (asdf + asdf)::string, 1.2::string, "1234"::integer, (12321342134 + 2341234123432 + 23423423423 + 234234234 + 234234323423 + 3343423424234234)::integer, + function_name(123456789 + 123456789 + 123456789 + 123456789 + 123456789 + 123456789 + 123456789, "bbbbbbbbbbbbbb", "aaaaaaaaaaa")::boolean +`; + const text = reprint(query, { indent: '- ' }).text; + + expect('\n' + text).toBe(` +- ROW +- (asdf + asdf)::string, +- 1.2::string, +- "1234"::integer, +- (12321342134 + +- 2341234123432 + +- 23423423423 + +- 234234234 + +- 234234323423 + +- 3343423424234234)::integer, +- FUNCTION_NAME( +- 123456789 + +- 123456789 + +- 123456789 + +- 123456789 + +- 123456789 + +- 123456789 + +- 123456789, +- "bbbbbbbbbbbbbb", +- "aaaaaaaaaaa")::boolean`); + }); + }); +}); diff --git a/packages/kbn-esql-ast/src/pretty_print/basic_pretty_printer.ts b/packages/kbn-esql-ast/src/pretty_print/basic_pretty_printer.ts new file mode 100644 index 0000000000000..0aa3ccd608cc6 --- /dev/null +++ b/packages/kbn-esql-ast/src/pretty_print/basic_pretty_printer.ts @@ -0,0 +1,266 @@ +/* + * 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 { ESQLAstCommand } from '../types'; +import { ESQLAstExpressionNode, ESQLAstQueryNode, Visitor } from '../visitor'; +import { LeafPrinter } from './leaf_printer'; + +/** + * @todo + * + * 1. Add support for binary expression wrapping into brackets, due to operator + * precedence. + */ + +export interface BasicPrettyPrinterOptions { + /** + * Whether to break the query into multiple lines on each pipe. Defaults to + * `false`. + */ + multiline?: boolean; + + /** + * Tabbing string inserted before a pipe, when `multiline` is `true`. Defaults + * to two spaces. + */ + pipeTab?: string; + + /** + * The default lowercase setting to use for all options. Defaults to `false`. + */ + lowercase?: boolean; + + /** + * Whether to lowercase command names. Defaults to `false`. + */ + lowercaseCommands?: boolean; + + /** + * Whether to lowercase command options. Defaults to `false`. + */ + lowercaseOptions?: boolean; + + /** + * Whether to lowercase function names. Defaults to `false`. + */ + lowercaseFunctions?: boolean; + + /** + * Whether to lowercase keywords. Defaults to `false`. + */ + lowercaseKeywords?: boolean; +} + +export type BasicPrettyPrinterMultilineOptions = Omit; + +export class BasicPrettyPrinter { + /** + * @param query ES|QL query AST to print. + * @returns A single-line string representation of the query. + */ + public static readonly print = ( + query: ESQLAstQueryNode, + opts?: BasicPrettyPrinterOptions + ): string => { + const printer = new BasicPrettyPrinter(opts); + return printer.print(query); + }; + + /** + * Print a query with each command on a separate line. It is also possible to + * specify a tabbing option for the pipe character. + * + * @param query ES|QL query AST to print. + * @param opts Options for pretty-printing. + * @returns A multi-line string representation of the query. + */ + public static readonly multiline = ( + query: ESQLAstQueryNode, + opts?: BasicPrettyPrinterMultilineOptions + ): string => { + const printer = new BasicPrettyPrinter({ ...opts, multiline: true }); + return printer.print(query); + }; + + /** + * @param command ES|QL command AST node to print. + * @returns Prints a single-line string representation of the command. + */ + public static readonly command = ( + command: ESQLAstCommand, + opts?: BasicPrettyPrinterOptions + ): string => { + const printer = new BasicPrettyPrinter(opts); + return printer.printCommand(command); + }; + + /** + * @param expression ES|QL expression AST node to print. + * @returns Prints a single-line string representation of the expression. + */ + public static readonly expression = ( + expression: ESQLAstExpressionNode, + opts?: BasicPrettyPrinterOptions + ): string => { + const printer = new BasicPrettyPrinter(opts); + return printer.printExpression(expression); + }; + + protected readonly opts: Required; + + constructor(opts: BasicPrettyPrinterOptions = {}) { + this.opts = { + pipeTab: opts.pipeTab ?? ' ', + multiline: opts.multiline ?? false, + lowercase: opts.lowercase ?? false, + lowercaseCommands: opts.lowercaseCommands ?? opts.lowercase ?? false, + lowercaseOptions: opts.lowercaseOptions ?? opts.lowercase ?? false, + lowercaseFunctions: opts.lowercaseFunctions ?? opts.lowercase ?? false, + lowercaseKeywords: opts.lowercaseKeywords ?? opts.lowercase ?? false, + }; + } + + protected keyword(word: string) { + return this.opts.lowercaseKeywords ?? this.opts.lowercase + ? word.toLowerCase() + : word.toUpperCase(); + } + + protected readonly visitor = new Visitor() + .on('visitExpression', (ctx) => { + return ''; + }) + .on('visitSourceExpression', (ctx) => LeafPrinter.source(ctx.node)) + .on('visitColumnExpression', (ctx) => LeafPrinter.column(ctx.node)) + .on('visitLiteralExpression', (ctx) => LeafPrinter.literal(ctx.node)) + .on('visitTimeIntervalLiteralExpression', (ctx) => LeafPrinter.timeInterval(ctx.node)) + .on('visitInlineCastExpression', (ctx) => { + const value = ctx.value(); + const wrapInBrackets = + value.type !== 'literal' && + value.type !== 'column' && + !(value.type === 'function' && value.subtype === 'variadic-call'); + + let valueFormatted = ctx.visitValue(); + + if (wrapInBrackets) { + valueFormatted = `(${valueFormatted})`; + } + + return `${valueFormatted}::${ctx.node.castType}`; + }) + .on('visitListLiteralExpression', (ctx) => { + let elements = ''; + + for (const arg of ctx.visitElements()) { + elements += (elements ? ', ' : '') + arg; + } + + return `[${elements}]`; + }) + .on('visitFunctionCallExpression', (ctx) => { + const opts = this.opts; + const node = ctx.node; + + let operator = ctx.operator(); + + switch (node.subtype) { + case 'unary-expression': { + operator = this.keyword(operator); + + return `${operator} ${ctx.visitArgument(0, undefined)}`; + } + case 'postfix-unary-expression': { + operator = this.keyword(operator); + + return `${ctx.visitArgument(0)} ${operator}`; + } + case 'binary-expression': { + operator = this.keyword(operator); + + return `${ctx.visitArgument(0)} ${operator} ${ctx.visitArgument(1)}`; + } + default: { + if (opts.lowercaseFunctions) { + operator = operator.toLowerCase(); + } + + let args = ''; + + for (const arg of ctx.visitArguments()) { + args += (args ? ', ' : '') + arg; + } + + return `${operator}(${args})`; + } + } + }) + .on('visitRenameExpression', (ctx) => { + return `${ctx.visitArgument(0)} ${this.keyword('AS')} ${ctx.visitArgument(1)}`; + }) + .on('visitCommandOption', (ctx) => { + const opts = this.opts; + const option = opts.lowercaseOptions ? ctx.node.name : ctx.node.name.toUpperCase(); + + let args = ''; + + for (const arg of ctx.visitArguments()) { + args += (args ? ', ' : '') + arg; + } + + const argsFormatted = args ? ` ${args}` : ''; + const optionFormatted = `${option}${argsFormatted}`; + + return optionFormatted; + }) + .on('visitCommand', (ctx) => { + const opts = this.opts; + const cmd = opts.lowercaseCommands ? ctx.node.name : ctx.node.name.toUpperCase(); + + let args = ''; + let options = ''; + + for (const source of ctx.visitArguments()) { + args += (args ? ', ' : '') + source; + } + + for (const option of ctx.visitOptions()) { + options += (options ? ' ' : '') + option; + } + + const argsFormatted = args ? ` ${args}` : ''; + const optionsFormatted = options ? ` ${options}` : ''; + const cmdFormatted = `${cmd}${argsFormatted}${optionsFormatted}`; + + return cmdFormatted; + }) + .on('visitQuery', (ctx) => { + const opts = this.opts; + const cmdSeparator = opts.multiline ? `\n${opts.pipeTab ?? ' '}| ` : ' | '; + let text = ''; + + for (const cmd of ctx.visitCommands()) { + if (text) text += cmdSeparator; + text += cmd; + } + + return text; + }); + + public print(query: ESQLAstQueryNode) { + return this.visitor.visitQuery(query); + } + + public printCommand(command: ESQLAstCommand) { + return this.visitor.visitCommand(command); + } + + public printExpression(expression: ESQLAstExpressionNode) { + return this.visitor.visitExpression(expression); + } +} diff --git a/packages/kbn-esql-ast/src/pretty_print/leaf_printer.ts b/packages/kbn-esql-ast/src/pretty_print/leaf_printer.ts new file mode 100644 index 0000000000000..b7bd13be8e8b8 --- /dev/null +++ b/packages/kbn-esql-ast/src/pretty_print/leaf_printer.ts @@ -0,0 +1,93 @@ +/* + * 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 { ESQLColumn, ESQLLiteral, ESQLSource, ESQLTimeInterval } from '../types'; + +const regexUnquotedIdPattern = /^([a-z\*_\@]{1})[a-z0-9_\*]*$/i; + +/** + * Printer for leaf AST nodes. The printing output of these nodes should + * typically not depend on word wrapping settings, should always return an + * atomic short string. + */ +export const LeafPrinter = { + source: (node: ESQLSource) => node.name, + + /** + * @todo: Add support for: (1) escaped characters, (2) nested fields. + * + * See: https://github.com/elastic/kibana/issues/189913 + */ + column: (node: ESQLColumn) => { + // In the future "column" nodes will have a "parts" field that will be used + // specify the parts of the column name. + const parts: string[] = [node.text]; + + let formatted = ''; + + for (const part of parts) { + if (formatted.length > 0) { + formatted += '.'; + } + if (regexUnquotedIdPattern.test(part)) { + formatted += part; + } else { + // Escape backticks "`" with double backticks "``". + const escaped = part.replace(/`/g, '``'); + formatted += '`' + escaped + '`'; + } + } + + return formatted; + }, + + literal: (node: ESQLLiteral) => { + switch (node.literalType) { + case 'null': { + return 'NULL'; + } + case 'boolean': { + return String(node.value).toUpperCase() === 'TRUE' ? 'TRUE' : 'FALSE'; + } + case 'param': { + switch (node.paramType) { + case 'named': + case 'positional': + return '?' + node.value; + default: + return '?'; + } + } + case 'string': { + return String(node.value); + } + case 'decimal': { + const isRounded = node.value % 1 === 0; + + if (isRounded) { + return String(node.value) + '.0'; + } else { + return String(node.value); + } + } + default: { + return String(node.value); + } + } + }, + + timeInterval: (node: ESQLTimeInterval) => { + const { quantity, unit } = node; + + if (unit.length === 1) { + return `${quantity}${unit}`; + } else { + return `${quantity} ${unit}`; + } + }, +}; diff --git a/packages/kbn-esql-ast/src/pretty_print/pretty_print_one_line.test.ts b/packages/kbn-esql-ast/src/pretty_print/pretty_print_one_line.test.ts deleted file mode 100644 index 2112eeabe483b..0000000000000 --- a/packages/kbn-esql-ast/src/pretty_print/pretty_print_one_line.test.ts +++ /dev/null @@ -1,352 +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 { getAstAndSyntaxErrors } from '../ast_parser'; -import { prettyPrintOneLine } from './pretty_print_one_line'; - -const reprint = (src: string) => { - const { ast } = getAstAndSyntaxErrors(src); - const text = prettyPrintOneLine(ast); - - // console.log(JSON.stringify(ast, null, 2)); - - return { text }; -}; - -describe('commands', () => { - describe('FROM', () => { - test('FROM command with a single source', () => { - const { text } = reprint('FROM index1'); - - expect(text).toBe('FROM index1'); - }); - - test('FROM command with multiple indices', () => { - const { text } = reprint('from index1, index2, index3'); - - expect(text).toBe('FROM index1, index2, index3'); - }); - - test('FROM command with METADATA', () => { - const { text } = reprint('FROM index1, index2 METADATA field1, field2'); - - expect(text).toBe('FROM index1, index2 METADATA field1, field2'); - }); - }); - - describe('SORT', () => { - test('order expression with no modifier', () => { - const { text } = reprint('FROM a | SORT b'); - - expect(text).toBe('FROM a | SORT b'); - }); - - /** @todo Enable once order expressions are supported. */ - test.skip('order expression with ASC modifier', () => { - const { text } = reprint('FROM a | SORT b ASC'); - - expect(text).toBe('FROM a | SORT b ASC'); - }); - - /** @todo Enable once order expressions are supported. */ - test.skip('order expression with ASC and NULLS FIRST modifier', () => { - const { text } = reprint('FROM a | SORT b ASC NULLS FIRST'); - - expect(text).toBe('FROM a | SORT b ASC NULLS FIRST'); - }); - }); - - describe('EXPLAIN', () => { - /** @todo Enable once query expressions are supported. */ - test.skip('a nested query', () => { - const { text } = reprint('EXPLAIN [ FROM 1 ]'); - - expect(text).toBe('EXPLAIN [ FROM 1 ]'); - }); - }); - - describe('SHOW', () => { - /** @todo Enable once show command args are parsed as columns. */ - test.skip('info page', () => { - const { text } = reprint('SHOW info'); - - expect(text).toBe('SHOW info'); - }); - }); - - describe('META', () => { - /** @todo Enable once show command args are parsed as columns. */ - test.skip('functions page', () => { - const { text } = reprint('META functions'); - - expect(text).toBe('META functions'); - }); - }); - - describe('STATS', () => { - test('with aggregates assignment', () => { - const { text } = reprint('FROM a | STATS var = agg(123, fn(true))'); - - expect(text).toBe('FROM a | STATS var = AGG(123, FN(TRUE))'); - }); - - test('with BY clause', () => { - const { text } = reprint('FROM a | STATS a(1), b(2) by asdf'); - - expect(text).toBe('FROM a | STATS A(1), B(2) BY asdf'); - }); - }); -}); - -describe('expressions', () => { - describe('source expressions', () => { - test('simple source expression', () => { - const { text } = reprint('from source'); - - expect(text).toBe('FROM source'); - }); - - test('sources with dots', () => { - const { text } = reprint('FROM a.b.c'); - - expect(text).toBe('FROM a.b.c'); - }); - - test('sources with slashes', () => { - const { text } = reprint('FROM a/b/c'); - - expect(text).toBe('FROM a/b/c'); - }); - - test('cluster source', () => { - const { text } = reprint('FROM cluster:index'); - - expect(text).toBe('FROM cluster:index'); - }); - - test('quoted source', () => { - const { text } = reprint('FROM "quoted"'); - - expect(text).toBe('FROM quoted'); - }); - - test('triple-quoted source', () => { - const { text } = reprint('FROM """quoted"""'); - - expect(text).toBe('FROM quoted'); - }); - }); - - describe('column expressions', () => { - test('simple columns expressions', () => { - const { text } = reprint('FROM a METADATA column1, _column2'); - - expect(text).toBe('FROM a METADATA column1, _column2'); - }); - - test('nested fields', () => { - const { text } = reprint('FROM a | KEEP a.b'); - - expect(text).toBe('FROM a | KEEP a.b'); - }); - - // Un-skip when "IdentifierPattern" is parsed correctly. - test.skip('quoted nested fields', () => { - const { text } = reprint('FROM index | KEEP `a`.`b`, c.`d`'); - - expect(text).toBe('FROM index | KEEP a.b, c.d'); - }); - - // Un-skip when identifier names are escaped correctly. - test.skip('special character in identifier', () => { - const { text } = reprint('FROM a | KEEP `a 👉 b`, a.`✅`'); - - expect(text).toBe('FROM a | KEEP `a 👉 b`, a.`✅`'); - }); - }); - - describe('"function" expressions', () => { - describe('function call expression', () => { - test('no argument function', () => { - const { text } = reprint('ROW fn()'); - - expect(text).toBe('ROW FN()'); - }); - - test('functions with arguments', () => { - const { text } = reprint('ROW gg(1), wp(1, 2, 3)'); - - expect(text).toBe('ROW GG(1), WP(1, 2, 3)'); - }); - - test('functions with star argument', () => { - const { text } = reprint('ROW f(*)'); - - expect(text).toBe('ROW F(*)'); - }); - }); - - describe('unary expression', () => { - test('NOT expression', () => { - const { text } = reprint('ROW NOT a'); - - expect(text).toBe('ROW NOT a'); - }); - }); - - describe('postfix unary expression', () => { - test('IS NOT NULL expression', () => { - const { text } = reprint('ROW a IS NOT NULL'); - - expect(text).toBe('ROW a IS NOT NULL'); - }); - }); - - describe('binary expression expression', () => { - test('arithmetic expression', () => { - const { text } = reprint('ROW 1 + 2'); - - expect(text).toBe('ROW 1 + 2'); - }); - - test('assignment expression', () => { - const { text } = reprint('FROM a | STATS a != 1'); - - expect(text).toBe('FROM a | STATS a != 1'); - }); - - test('regex expression - 1', () => { - const { text } = reprint('FROM a | WHERE a NOT RLIKE "a"'); - - expect(text).toBe('FROM a | WHERE a NOT RLIKE "a"'); - }); - - test('regex expression - 2', () => { - const { text } = reprint('FROM a | WHERE a LIKE "b"'); - - expect(text).toBe('FROM a | WHERE a LIKE "b"'); - }); - }); - }); - - describe('literals expressions', () => { - describe('numeric literal', () => { - test('null', () => { - const { text } = reprint('ROW null'); - - expect(text).toBe('ROW NULL'); - }); - - test('boolean', () => { - expect(reprint('ROW true').text).toBe('ROW TRUE'); - expect(reprint('ROW false').text).toBe('ROW FALSE'); - }); - - test('integer', () => { - const { text } = reprint('ROW 1'); - - expect(text).toBe('ROW 1'); - }); - - test('decimal', () => { - const { text } = reprint('ROW 1.2'); - - expect(text).toBe('ROW 1.2'); - }); - - test('string', () => { - const { text } = reprint('ROW "abc"'); - - expect(text).toBe('ROW "abc"'); - }); - - test('string w/ special chars', () => { - const { text } = reprint('ROW "as \\" 👍"'); - - expect(text).toBe('ROW "as \\" 👍"'); - }); - - describe('params', () => { - test('unnamed', () => { - const { text } = reprint('ROW ?'); - - expect(text).toBe('ROW ?'); - }); - - test('named', () => { - const { text } = reprint('ROW ?kappa'); - - expect(text).toBe('ROW ?kappa'); - }); - - test('positional', () => { - const { text } = reprint('ROW ?42'); - - expect(text).toBe('ROW ?42'); - }); - }); - }); - }); - - describe('list literal expressions', () => { - describe('integer list', () => { - test('one element list', () => { - expect(reprint('ROW [1]').text).toBe('ROW [1]'); - }); - - test('multiple elements', () => { - expect(reprint('ROW [1, 2]').text).toBe('ROW [1, 2]'); - expect(reprint('ROW [1, 2, -1]').text).toBe('ROW [1, 2, -1]'); - }); - }); - - describe('boolean list', () => { - test('one element list', () => { - expect(reprint('ROW [true]').text).toBe('ROW [TRUE]'); - }); - - test('multiple elements', () => { - expect(reprint('ROW [TRUE, false]').text).toBe('ROW [TRUE, FALSE]'); - expect(reprint('ROW [false, FALSE, false]').text).toBe('ROW [FALSE, FALSE, FALSE]'); - }); - }); - - describe('string list', () => { - test('one element list', () => { - expect(reprint('ROW ["a"]').text).toBe('ROW ["a"]'); - }); - - test('multiple elements', () => { - expect(reprint('ROW ["a", "b"]').text).toBe('ROW ["a", "b"]'); - expect(reprint('ROW ["foo", "42", "boden"]').text).toBe('ROW ["foo", "42", "boden"]'); - }); - }); - }); - - describe('cast expressions', () => { - test('various', () => { - expect(reprint('ROW a::string').text).toBe('ROW a::string'); - expect(reprint('ROW 123::string').text).toBe('ROW 123::string'); - expect(reprint('ROW "asdf"::number').text).toBe('ROW "asdf"::number'); - }); - }); - - describe('time interval expression', () => { - test('days', () => { - const { text } = reprint('ROW 1 d'); - - expect(text).toBe('ROW 1d'); - }); - - test('years', () => { - const { text } = reprint('ROW 42y'); - - expect(text).toBe('ROW 42y'); - }); - }); -}); diff --git a/packages/kbn-esql-ast/src/pretty_print/pretty_print_one_line.ts b/packages/kbn-esql-ast/src/pretty_print/pretty_print_one_line.ts deleted file mode 100644 index 94f4afd1acd11..0000000000000 --- a/packages/kbn-esql-ast/src/pretty_print/pretty_print_one_line.ts +++ /dev/null @@ -1,148 +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 { ESQLAstQueryNode, Visitor } from '../visitor'; - -export const prettyPrintOneLine = (query: ESQLAstQueryNode) => { - const visitor = new Visitor() - .on('visitSourceExpression', (ctx) => { - return ctx.node.name; - }) - .on('visitColumnExpression', (ctx) => { - /** - * @todo: Add support for: (1) escaped characters, (2) nested fields. - */ - return ctx.node.name; - }) - .on('visitFunctionCallExpression', (ctx) => { - const node = ctx.node; - let operator = node.name.toUpperCase(); - - switch (node.subtype) { - case 'unary-expression': { - return `${operator} ${ctx.visitArgument(0)}`; - } - case 'postfix-unary-expression': { - return `${ctx.visitArgument(0)} ${operator}`; - } - case 'binary-expression': { - /** @todo Make `operator` printable. */ - switch (operator) { - case 'NOT_LIKE': { - operator = 'NOT LIKE'; - break; - } - case 'NOT_RLIKE': { - operator = 'NOT RLIKE'; - break; - } - } - return `${ctx.visitArgument(0)} ${operator} ${ctx.visitArgument(1)}`; - } - default: { - let args = ''; - - for (const arg of ctx.visitArguments()) { - args += (args ? ', ' : '') + arg; - } - - return `${operator}(${args})`; - } - } - }) - .on('visitLiteralExpression', (ctx) => { - const node = ctx.node; - - switch (node.literalType) { - case 'null': { - return 'NULL'; - } - case 'boolean': { - return String(node.value).toUpperCase() === 'TRUE' ? 'TRUE' : 'FALSE'; - } - case 'param': { - switch (node.paramType) { - case 'named': - case 'positional': - return '?' + node.value; - default: - return '?'; - } - } - case 'string': { - return node.value; - } - default: { - return String(ctx.node.value); - } - } - }) - .on('visitListLiteralExpression', (ctx) => { - let elements = ''; - - for (const arg of ctx.visitElements()) { - elements += (elements ? ', ' : '') + arg; - } - - return `[${elements}]`; - }) - .on('visitTimeIntervalLiteralExpression', (ctx) => { - /** @todo Rename to `fmt`. */ - return ctx.format(); - }) - .on('visitInlineCastExpression', (ctx) => { - /** @todo Add `.fmt()` helper. */ - return `${ctx.visitValue()}::${ctx.node.castType}`; - }) - .on('visitExpression', (ctx) => { - return ctx.node.text ?? ''; - }) - .on('visitCommandOption', (ctx) => { - const option = ctx.node.name.toUpperCase(); - let args = ''; - - for (const arg of ctx.visitArguments()) { - args += (args ? ', ' : '') + arg; - } - - const argsFormatted = args ? ` ${args}` : ''; - const optionFormatted = `${option}${argsFormatted}`; - - return optionFormatted; - }) - .on('visitCommand', (ctx) => { - const cmd = ctx.node.name.toUpperCase(); - let args = ''; - let options = ''; - - for (const source of ctx.visitArguments()) { - args += (args ? ', ' : '') + source; - } - - for (const option of ctx.visitOptions()) { - options += (options ? ' ' : '') + option; - } - - const argsFormatted = args ? ` ${args}` : ''; - const optionsFormatted = options ? ` ${options}` : ''; - const cmdFormatted = `${cmd}${argsFormatted}${optionsFormatted}`; - - return cmdFormatted; - }) - .on('visitQuery', (ctx) => { - let text = ''; - - for (const cmd of ctx.visitCommands()) { - text += (text ? ' | ' : '') + cmd; - } - - return text; - }); - - return visitor.visitQuery(query); -}; diff --git a/packages/kbn-esql-ast/src/pretty_print/wrapping_pretty_printer.ts b/packages/kbn-esql-ast/src/pretty_print/wrapping_pretty_printer.ts new file mode 100644 index 0000000000000..24381fbcda1a8 --- /dev/null +++ b/packages/kbn-esql-ast/src/pretty_print/wrapping_pretty_printer.ts @@ -0,0 +1,478 @@ +/* + * 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 { BinaryExpressionGroup } from '../ast/constants'; +import { binaryExpressionGroup, isBinaryExpression } from '../ast/helpers'; +import { + CommandOptionVisitorContext, + CommandVisitorContext, + ESQLAstQueryNode, + ExpressionVisitorContext, + FunctionCallExpressionVisitorContext, + Visitor, +} from '../visitor'; +import { singleItems } from '../visitor/utils'; +import { BasicPrettyPrinter, BasicPrettyPrinterOptions } from './basic_pretty_printer'; +import { LeafPrinter } from './leaf_printer'; + +/** + * @todo + * + * 1. Implement list literal pretty printing. + */ + +interface Input { + indent: string; + remaining: number; + + /** + * Passed between adjacent binary expressions to flatten them into a single + * vertical list. + * + * For example, a list like this: + * + * ``` + * 1 + 2 + 3 + 4 + * ``` + * + * Is flatted into a single list: + * + * ``` + * 1 + + * 2 + + * 3 + + * 4 + * ``` + */ + flattenBinExpOfType?: BinaryExpressionGroup; +} + +interface Output { + txt: string; + lines?: number; +} + +export interface WrappingPrettyPrinterOptions extends BasicPrettyPrinterOptions { + /** + * Initial indentation string inserted before the whole query. Defaults to an + * empty string. + */ + indent?: string; + + /** + * Tabbing string inserted before new level of nesting. Defaults to two spaces. + */ + tab?: string; + + /** + * Tabbing string inserted before a pipe, when `multiline` is `true`. + */ + pipeTab?: string; + + /** + * Tabbing string inserted before command arguments, when they are broken into + * multiple lines. Defaults to four spaces. + */ + commandTab?: string; + + /** + * Whether to force multiline formatting. Defaults to `false`. If set to + * `false`, it will try to fit the query into a single line. + */ + multiline?: boolean; + + /** + * Expected width of the output. Defaults to 80 characters. Text will be + * wrapped to fit this width. + */ + wrap?: number; +} + +export class WrappingPrettyPrinter { + public static readonly print = ( + query: ESQLAstQueryNode, + opts?: WrappingPrettyPrinterOptions + ): string => { + const printer = new WrappingPrettyPrinter(opts); + return printer.print(query); + }; + + protected readonly opts: Required; + + constructor(opts: WrappingPrettyPrinterOptions = {}) { + this.opts = { + indent: opts.indent ?? '', + tab: opts.tab ?? ' ', + pipeTab: opts.pipeTab ?? ' ', + commandTab: opts.commandTab ?? ' ', + multiline: opts.multiline ?? false, + wrap: opts.wrap ?? 80, + lowercase: opts.lowercase ?? false, + lowercaseCommands: opts.lowercaseCommands ?? opts.lowercase ?? false, + lowercaseOptions: opts.lowercaseOptions ?? opts.lowercase ?? false, + lowercaseFunctions: opts.lowercaseFunctions ?? opts.lowercase ?? false, + lowercaseKeywords: opts.lowercaseKeywords ?? opts.lowercase ?? false, + }; + } + + protected keyword(word: string) { + return this.opts.lowercaseKeywords ?? this.opts.lowercase + ? word.toLowerCase() + : word.toUpperCase(); + } + + private visitBinaryExpression( + ctx: ExpressionVisitorContext, + operator: string, + inp: Input + ): Output { + const node = ctx.node; + const group = binaryExpressionGroup(node); + const [left, right] = ctx.arguments(); + const groupLeft = binaryExpressionGroup(left); + const groupRight = binaryExpressionGroup(right); + const continueVerticalFlattening = group && inp.flattenBinExpOfType === group; + + if (continueVerticalFlattening) { + const parent = ctx.parent?.node; + const isLeftChild = isBinaryExpression(parent) && parent.args[0] === node; + const leftInput: Input = { + indent: inp.indent, + remaining: inp.remaining, + flattenBinExpOfType: group, + }; + const rightInput: Input = { + indent: inp.indent + this.opts.tab, + remaining: inp.remaining - this.opts.tab.length, + flattenBinExpOfType: group, + }; + const leftOut = ctx.visitArgument(0, leftInput); + const rightOut = ctx.visitArgument(1, rightInput); + const rightTab = isLeftChild ? this.opts.tab : ''; + const txt = `${leftOut.txt} ${operator}\n${inp.indent}${rightTab}${rightOut.txt}`; + + return { txt }; + } + + let txt: string = ''; + let leftFormatted = BasicPrettyPrinter.expression(left, this.opts); + let rightFormatted = BasicPrettyPrinter.expression(right, this.opts); + + if (groupLeft && groupLeft < group) { + leftFormatted = `(${leftFormatted})`; + } + + if (groupRight && groupRight < group) { + rightFormatted = `(${rightFormatted})`; + } + + const length = leftFormatted.length + rightFormatted.length + operator.length + 2; + const fitsOnOneLine = length <= inp.remaining; + + if (fitsOnOneLine) { + txt = `${leftFormatted} ${operator} ${rightFormatted}`; + } else { + const flattenVertically = group === groupLeft || group === groupRight; + const flattenBinExpOfType = flattenVertically ? group : undefined; + const leftInput: Input = { + indent: inp.indent, + remaining: inp.remaining, + flattenBinExpOfType, + }; + const rightInput: Input = { + indent: inp.indent + this.opts.tab, + remaining: inp.remaining - this.opts.tab.length, + flattenBinExpOfType, + }; + const leftOut = ctx.visitArgument(0, leftInput); + const rightOut = ctx.visitArgument(1, rightInput); + + txt = `${leftOut.txt} ${operator}\n${inp.indent}${this.opts.tab}${rightOut.txt}`; + } + + return { txt }; + } + + private printArguments( + ctx: CommandVisitorContext | CommandOptionVisitorContext | FunctionCallExpressionVisitorContext, + inp: Input + ) { + let txt = ''; + let lines = 1; + let largestArg = 0; + let argsPerLine = 0; + let minArgsPerLine = 1e6; + let maxArgsPerLine = 0; + let remainingCurrentLine = inp.remaining; + let oneArgumentPerLine = false; + + ARGS: for (const arg of singleItems(ctx.arguments())) { + if (arg.type === 'option') { + continue; + } + + const formattedArg = BasicPrettyPrinter.expression(arg, this.opts); + const formattedArgLength = formattedArg.length; + const needsWrap = remainingCurrentLine < formattedArgLength; + if (formattedArgLength > largestArg) { + largestArg = formattedArgLength; + } + let separator = txt ? ',' : ''; + let fragment = ''; + + if (needsWrap) { + separator += + '\n' + + inp.indent + + this.opts.tab + + (ctx instanceof CommandVisitorContext ? this.opts.commandTab : ''); + fragment = separator + formattedArg; + lines++; + if (argsPerLine > maxArgsPerLine) { + maxArgsPerLine = argsPerLine; + } + if (argsPerLine < minArgsPerLine) { + minArgsPerLine = argsPerLine; + if (minArgsPerLine < 2) { + oneArgumentPerLine = true; + break ARGS; + } + } + remainingCurrentLine = + inp.remaining - formattedArgLength - this.opts.tab.length - this.opts.commandTab.length; + argsPerLine = 1; + } else { + argsPerLine++; + fragment = separator + (separator ? ' ' : '') + formattedArg; + remainingCurrentLine -= fragment.length; + } + txt += fragment; + } + + let indent = inp.indent + this.opts.tab; + + if (ctx instanceof CommandVisitorContext) { + const isFirstCommand = (ctx.parent?.node as ESQLAstQueryNode)?.[0] === ctx.node; + if (!isFirstCommand) { + indent += this.opts.commandTab; + } + } + + if (oneArgumentPerLine) { + lines = 1; + txt = ctx instanceof CommandVisitorContext ? indent : '\n' + indent; + let i = 0; + for (const arg of ctx.visitArguments({ + indent, + remaining: this.opts.wrap - indent.length, + })) { + const isFirstArg = i === 0; + const separator = isFirstArg ? '' : ',\n' + indent; + txt += separator + arg.txt; + lines++; + i++; + } + } + + return { txt, lines, indent, oneArgumentPerLine }; + } + + protected readonly visitor = new Visitor() + .on('visitExpression', (ctx, inp: Input): Output => { + const txt = ctx.node.text ?? ''; + return { txt }; + }) + + .on( + 'visitSourceExpression', + (ctx, inp: Input): Output => ({ txt: LeafPrinter.source(ctx.node) }) + ) + + .on( + 'visitColumnExpression', + (ctx, inp: Input): Output => ({ txt: LeafPrinter.column(ctx.node) }) + ) + + .on( + 'visitLiteralExpression', + (ctx, inp: Input): Output => ({ txt: LeafPrinter.literal(ctx.node) }) + ) + + .on( + 'visitTimeIntervalLiteralExpression', + (ctx, inp: Input): Output => ({ txt: LeafPrinter.timeInterval(ctx.node) }) + ) + + .on('visitInlineCastExpression', (ctx, inp: Input): Output => { + const value = ctx.value(); + const wrapInBrackets = + value.type !== 'literal' && + value.type !== 'column' && + !(value.type === 'function' && value.subtype === 'variadic-call'); + const castType = ctx.node.castType; + + let valueFormatted = ctx.visitValue({ + indent: inp.indent, + remaining: inp.remaining - castType.length - 2, + }).txt; + + if (wrapInBrackets) { + valueFormatted = `(${valueFormatted})`; + } + + const txt = `${valueFormatted}::${ctx.node.castType}`; + + return { txt }; + }) + + .on('visitRenameExpression', (ctx, inp: Input): Output => { + const operator = this.keyword('AS'); + return this.visitBinaryExpression(ctx, operator, inp); + }) + + .on('visitListLiteralExpression', (ctx, inp: Input): Output => { + let elements = ''; + + for (const out of ctx.visitElements()) { + elements += (elements ? ', ' : '') + out.txt; + } + + const txt = `[${elements}]`; + return { txt }; + }) + + .on('visitFunctionCallExpression', (ctx, inp: Input): Output => { + const node = ctx.node; + let operator = ctx.operator(); + let txt: string = ''; + + if (this.opts.lowercaseFunctions ?? this.opts.lowercase) { + operator = operator.toLowerCase(); + } + + switch (node.subtype) { + case 'unary-expression': { + txt = `${operator} ${ctx.visitArgument(0, inp).txt}`; + break; + } + case 'postfix-unary-expression': { + txt = `${ctx.visitArgument(0, inp).txt} ${operator}`; + break; + } + case 'binary-expression': { + return this.visitBinaryExpression(ctx, operator, inp); + } + default: { + const args = this.printArguments(ctx, { + indent: inp.indent, + remaining: inp.remaining - operator.length - 1, + }); + + txt = `${operator}(${args.txt})`; + } + } + + return { txt }; + }) + + .on('visitCommandOption', (ctx, inp: Input): Output => { + const option = this.opts.lowercaseOptions ? ctx.node.name : ctx.node.name.toUpperCase(); + const args = this.printArguments(ctx, { + indent: inp.indent, + remaining: inp.remaining - option.length - 1, + }); + const argsFormatted = args.txt ? ` ${args.txt}` : ''; + const txt = `${option}${argsFormatted}`; + + return { txt, lines: args.lines }; + }) + + .on('visitCommand', (ctx, inp: Input): Output => { + const opts = this.opts; + const cmd = opts.lowercaseCommands ? ctx.node.name : ctx.node.name.toUpperCase(); + const args = this.printArguments(ctx, { + indent: inp.indent, + remaining: inp.remaining - cmd.length - 1, + }); + const optionIndent = args.indent + opts.pipeTab; + const optionsTxt: string[] = []; + + let options = ''; + let optionsLines = 0; + let breakOptions = false; + + for (const out of ctx.visitOptions({ + indent: optionIndent, + remaining: opts.wrap - optionIndent.length, + })) { + optionsLines += out.lines ?? 1; + optionsTxt.push(out.txt); + options += (options ? ' ' : '') + out.txt; + } + + breakOptions = + breakOptions || + args.lines > 1 || + optionsLines > 1 || + options.length > opts.wrap - inp.remaining - cmd.length - 1 - args.txt.length; + + if (breakOptions) { + options = optionsTxt.join('\n' + optionIndent); + } + + const argsWithWhitespace = args.txt + ? `${args.oneArgumentPerLine ? '\n' : ' '}${args.txt}` + : ''; + const optionsWithWhitespace = options + ? `${breakOptions ? '\n' + optionIndent : ' '}${options}` + : ''; + const txt = `${cmd}${argsWithWhitespace}${optionsWithWhitespace}`; + + return { txt, lines: args.lines /* add options lines count */ }; + }) + + .on('visitQuery', (ctx) => { + const opts = this.opts; + const indent = opts.indent ?? ''; + const commandCount = ctx.node.length; + let multiline = opts.multiline ?? commandCount > 3; + + if (!multiline) { + const oneLine = indent + BasicPrettyPrinter.print(ctx.node, opts); + if (oneLine.length <= opts.wrap) { + return oneLine; + } else { + multiline = true; + } + } + + let text = indent; + const cmdSeparator = multiline ? `\n${indent}${opts.pipeTab ?? ' '}| ` : ' | '; + let i = 0; + let prevOut: Output | undefined; + + for (const out of ctx.visitCommands({ indent, remaining: opts.wrap - indent.length })) { + const isSecondCommand = i === 1; + if (isSecondCommand) { + const firstCommandIsMultiline = prevOut?.lines && prevOut.lines > 1; + if (firstCommandIsMultiline) text += '\n' + indent; + } + const isFirstCommand = i === 0; + if (!isFirstCommand) text += cmdSeparator; + text += out.txt; + i++; + prevOut = out; + } + + return text; + }); + + public print(query: ESQLAstQueryNode) { + return this.visitor.visitQuery(query); + } +} diff --git a/packages/kbn-esql-ast/src/types.ts b/packages/kbn-esql-ast/src/types.ts index 12496835ea12b..e9c0db1d216d3 100644 --- a/packages/kbn-esql-ast/src/types.ts +++ b/packages/kbn-esql-ast/src/types.ts @@ -72,6 +72,14 @@ export interface ESQLCommandOption extends ESQLAstBaseItem { args: ESQLAstItem[]; } +/** + * Right now rename expressions ("clauses") are parsed as options in the + * RENAME command. + */ +export interface ESQLAstRenameExpression extends ESQLCommandOption { + name: 'as'; +} + export interface ESQLCommandMode extends ESQLAstBaseItem { type: 'mode'; } @@ -167,10 +175,45 @@ export interface ESQLTimeInterval extends ESQLAstBaseItem { export interface ESQLSource extends ESQLAstBaseItem { type: 'source'; sourceType: 'index' | 'policy'; + + /** + * Represents the cluster part of the source identifier. Empty string if not + * present. + * + * ``` + * FROM [:] + * ``` + */ + cluster?: string; + + /** + * Represents the index part of the source identifier. Unescaped and unquoted. + * + * ``` + * FROM [:] + * ``` + */ + index?: string; } export interface ESQLColumn extends ESQLAstBaseItem { type: 'column'; + + /** + * An identifier can be composed of multiple parts, e.g: part1.part2.`part``3️⃣`. + * This property contains the parsed unquoted parts of the identifier. + * For example: `['part1', 'part2', 'part`3️⃣']`. + */ + parts: string[]; + + /** + * @deprecated + * + * An identifier can be composed of multiple parts, e.g: part1.part2.`part3️⃣` + * + * Each part can be quoted or not quoted independently. A single `quoted` + * property is not enough to represent the identifier. Use `parts` instead. + */ quoted: boolean; } diff --git a/packages/kbn-esql-ast/src/visitor/__tests__/scenarios.test.ts b/packages/kbn-esql-ast/src/visitor/__tests__/scenarios.test.ts index ce338e8bd72ba..d0e597ea553de 100644 --- a/packages/kbn-esql-ast/src/visitor/__tests__/scenarios.test.ts +++ b/packages/kbn-esql-ast/src/visitor/__tests__/scenarios.test.ts @@ -65,12 +65,12 @@ test('can remove a specific WHERE command', () => { const print = () => new Visitor() + .on('visitExpression', (ctx) => '') .on('visitColumnExpression', (ctx) => ctx.node.name) .on( 'visitFunctionCallExpression', (ctx) => `${ctx.node.name}(${[...ctx.visitArguments()].join(', ')})` ) - .on('visitExpression', (ctx) => '') .on('visitCommand', (ctx) => { if (ctx.node.name === 'where') { const args = [...ctx.visitArguments()].join(', '); @@ -84,12 +84,12 @@ test('can remove a specific WHERE command', () => { const removeFilter = (field: string) => { query.ast = new Visitor() + .on('visitExpression', (ctx) => ctx.node) .on('visitColumnExpression', (ctx) => (ctx.node.name === field ? null : ctx.node)) .on('visitFunctionCallExpression', (ctx) => { const args = [...ctx.visitArguments()]; return args.some((arg) => arg === null) ? null : ctx.node; }) - .on('visitExpression', (ctx) => ctx.node) .on('visitCommand', (ctx) => { if (ctx.node.name === 'where') { ctx.node.args = [...ctx.visitArguments()].filter(Boolean); @@ -116,6 +116,9 @@ test('can remove a specific WHERE command', () => { export const prettyPrint = (ast: ESQLAstQueryNode) => new Visitor() + .on('visitExpression', (ctx) => { + return ''; + }) .on('visitSourceExpression', (ctx) => { return ctx.node.name; }) @@ -141,9 +144,6 @@ export const prettyPrint = (ast: ESQLAstQueryNode) => .on('visitInlineCastExpression', (ctx) => { return ''; }) - .on('visitExpression', (ctx) => { - return ''; - }) .on('visitCommandOption', (ctx) => { let args = ''; for (const arg of ctx.visitArguments()) { diff --git a/packages/kbn-esql-ast/src/visitor/contexts.ts b/packages/kbn-esql-ast/src/visitor/contexts.ts index a9e690b6067d2..376825f88577f 100644 --- a/packages/kbn-esql-ast/src/visitor/contexts.ts +++ b/packages/kbn-esql-ast/src/visitor/contexts.ts @@ -16,6 +16,7 @@ import type { ESQLAstCommand, ESQLAstItem, ESQLAstNodeWithArgs, + ESQLAstRenameExpression, ESQLColumn, ESQLCommandOption, ESQLDecimalLiteral, @@ -24,6 +25,7 @@ import type { ESQLIntegerLiteral, ESQLList, ESQLLiteral, + ESQLSingleAstItem, ESQLSource, ESQLTimeInterval, } from '../types'; @@ -35,7 +37,9 @@ import type { ExpressionVisitorOutput, UndefinedToVoid, VisitorAstNode, + VisitorInput, VisitorMethods, + VisitorOutput, } from './types'; import { Builder } from '../builder'; @@ -66,8 +70,8 @@ export class VisitorContext< ) {} public *visitArguments( - input: ExpressionVisitorInput - ): Iterable> { + input: VisitorInput + ): Iterable> { this.ctx.assertMethodExists('visitExpression'); const node = this.node; @@ -77,14 +81,33 @@ export class VisitorContext< } for (const arg of singleItems(node.args)) { + if (arg.type === 'option' && arg.name !== 'as') { + continue; + } yield this.visitExpression(arg, input as any); } } + public arguments(): ESQLAstExpressionNode[] { + const node = this.node; + + if (!isNodeWithArgs(node)) { + throw new Error('Node does not have arguments'); + } + + const args: ESQLAstExpressionNode[] = []; + + for (const arg of singleItems(node.args)) { + args.push(arg); + } + + return args; + } + public visitArgument( index: number, - input: ExpressionVisitorInput - ): ExpressionVisitorOutput { + input: VisitorInput + ): VisitorOutput { this.ctx.assertMethodExists('visitExpression'); const node = this.node; @@ -106,8 +129,8 @@ export class VisitorContext< public visitExpression( expressionNode: ESQLAstExpressionNode, - input: ExpressionVisitorInput - ): ExpressionVisitorOutput { + input: VisitorInput + ): VisitorOutput { return this.ctx.visitExpression(this, expressionNode, input); } @@ -154,6 +177,8 @@ export class CommandVisitorContext< continue; } if (arg.type === 'option') { + // We treat "AS" options as rename expressions, not as command options. + if (arg.name === 'as') continue; yield arg; } } @@ -172,7 +197,7 @@ export class CommandVisitorContext< } } - public *arguments(option: '' | string = ''): Iterable { + public *args(option: '' | string = ''): Iterable { option = option.toLowerCase(); if (!option) { @@ -183,6 +208,9 @@ export class CommandVisitorContext< } if (arg.type !== 'option') { yield arg; + } else if (arg.name === 'as') { + // We treat "AS" options as rename expressions, not as command options. + yield arg; } } } @@ -196,20 +224,21 @@ export class CommandVisitorContext< } } - public *visitArguments( - input: ExpressionVisitorInput, + public *visitArgs( + input: + | VisitorInput + | (() => VisitorInput), option: '' | string = '' ): Iterable> { this.ctx.assertMethodExists('visitExpression'); - const node = this.node; - - if (!isNodeWithArgs(node)) { - throw new Error('Node does not have arguments'); - } - - for (const arg of singleItems(this.arguments(option))) { - yield this.visitExpression(arg, input as any); + for (const arg of singleItems(this.args(option))) { + yield this.visitExpression( + arg, + typeof input === 'function' + ? (input as () => VisitorInput)() + : (input as VisitorInput) + ); } } @@ -441,7 +470,25 @@ export class SourceExpressionVisitorContext< export class FunctionCallExpressionVisitorContext< Methods extends VisitorMethods = VisitorMethods, Data extends SharedData = SharedData -> extends VisitorContext {} +> extends VisitorContext { + /** + * @returns Returns a printable uppercase function name or operator. + */ + public operator(): string { + const operator = this.node.name; + + switch (operator) { + case 'note_like': { + return 'NOT LIKE'; + } + case 'not_rlike': { + return 'NOT RLIKE'; + } + } + + return operator.toUpperCase(); + } +} export class LiteralExpressionVisitorContext< Methods extends VisitorMethods = VisitorMethods, @@ -468,23 +515,30 @@ export class ListLiteralExpressionVisitorContext< export class TimeIntervalLiteralExpressionVisitorContext< Methods extends VisitorMethods = VisitorMethods, Data extends SharedData = SharedData -> extends ExpressionVisitorContext { - format(): string { - const node = this.node; - - return `${node.quantity}${node.unit}`; - } -} +> extends ExpressionVisitorContext {} export class InlineCastExpressionVisitorContext< Methods extends VisitorMethods = VisitorMethods, Data extends SharedData = SharedData > extends ExpressionVisitorContext { - public visitValue(input: ExpressionVisitorInput): ExpressionVisitorOutput { + public value(): ESQLSingleAstItem { this.ctx.assertMethodExists('visitExpression'); const value = firstItem([this.node.value])!; - return this.visitExpression(value, input as any); + return value; + } + + public visitValue( + input: VisitorInput + ): VisitorOutput { + this.ctx.assertMethodExists('visitExpression'); + + return this.visitExpression(this.value(), input as any); } } + +export class RenameExpressionVisitorContext< + Methods extends VisitorMethods = VisitorMethods, + Data extends SharedData = SharedData +> extends VisitorContext {} diff --git a/packages/kbn-esql-ast/src/visitor/global_visitor_context.ts b/packages/kbn-esql-ast/src/visitor/global_visitor_context.ts index d05a4ce326eb7..e1ca7f6677d24 100644 --- a/packages/kbn-esql-ast/src/visitor/global_visitor_context.ts +++ b/packages/kbn-esql-ast/src/visitor/global_visitor_context.ts @@ -9,6 +9,7 @@ import * as contexts from './contexts'; import type { ESQLAstCommand, + ESQLAstRenameExpression, ESQLColumn, ESQLFunction, ESQLInlineCast, @@ -398,6 +399,18 @@ export class GlobalVisitorContext< if (!this.methods.visitInlineCastExpression) break; return this.visitInlineCastExpression(parent, expressionNode, input as any); } + case 'option': { + switch (expressionNode.name) { + case 'as': { + if (!this.methods.visitRenameExpression) break; + return this.visitRenameExpression( + parent, + expressionNode as ESQLAstRenameExpression, + input as any + ); + } + } + } } return this.visitExpressionGeneric(parent, expressionNode, input as any); } @@ -464,4 +477,13 @@ export class GlobalVisitorContext< const context = new contexts.InlineCastExpressionVisitorContext(this, node, parent); return this.visitWithSpecificContext('visitInlineCastExpression', context, input); } + + public visitRenameExpression( + parent: contexts.VisitorContext | null, + node: ESQLAstRenameExpression, + input: types.VisitorInput + ): types.VisitorOutput { + const context = new contexts.RenameExpressionVisitorContext(this, node, parent); + return this.visitWithSpecificContext('visitRenameExpression', context, input); + } } diff --git a/packages/kbn-esql-ast/src/visitor/types.ts b/packages/kbn-esql-ast/src/visitor/types.ts index a8ec5e9bd1785..beb0aed3570b2 100644 --- a/packages/kbn-esql-ast/src/visitor/types.ts +++ b/packages/kbn-esql-ast/src/visitor/types.ts @@ -59,7 +59,8 @@ export type ExpressionVisitorInput = AnyToVoid< VisitorInput & VisitorInput & VisitorInput & - VisitorInput + VisitorInput & + VisitorInput >; /** @@ -73,7 +74,8 @@ export type ExpressionVisitorOutput = | VisitorOutput | VisitorOutput | VisitorOutput - | VisitorOutput; + | VisitorOutput + | VisitorOutput; /** * Input that satisfies any command visitor input constraints. @@ -195,6 +197,11 @@ export interface VisitorMethods< any, any >; + visitRenameExpression?: Visitor< + contexts.RenameExpressionVisitorContext, + any, + any + >; } /** @@ -222,22 +229,6 @@ export type AstNodeToVisitorName = Node extends ESQ ? 'visitInlineCastExpression' : never; -/** - * Maps any AST node to the corresponding visitor context. - */ -export type AstNodeToVisitor< - Node extends VisitorAstNode, - Methods extends VisitorMethods = VisitorMethods -> = Methods[AstNodeToVisitorName]; - -/** - * Maps any AST node to its corresponding visitor context. - */ -export type AstNodeToContext< - Node extends VisitorAstNode, - Methods extends VisitorMethods = VisitorMethods -> = Parameters>>[0]; - /** * Asserts that a type is a function. */ diff --git a/packages/kbn-esql-ast/src/visitor/visitor.ts b/packages/kbn-esql-ast/src/visitor/visitor.ts index 3956fe126723e..1a4554f1f2cf4 100644 --- a/packages/kbn-esql-ast/src/visitor/visitor.ts +++ b/packages/kbn-esql-ast/src/visitor/visitor.ts @@ -12,10 +12,12 @@ import { VisitorContext } from './contexts'; import type { AstNodeToVisitorName, EnsureFunction, + ESQLAstExpressionNode, ESQLAstQueryNode, UndefinedToVoid, VisitorMethods, } from './types'; +import { ESQLCommand } from '../types'; export interface VisitorOptions< Methods extends VisitorMethods = VisitorMethods, @@ -86,6 +88,7 @@ export class Visitor< * Traverse the root node of ES|QL query with default context. * * @param node Query node to traverse. + * @param input Input to pass to the first visitor. * @returns The result of the query visitor. */ public visitQuery( @@ -95,4 +98,34 @@ export class Visitor< const queryContext = new QueryVisitorContext(this.ctx, node, null); return this.visit(queryContext, input); } + + /** + * Traverse starting from known command node with default context. + * + * @param node Command node to traverse. + * @param input Input to pass to the first visitor. + * @returns The output of the visitor. + */ + public visitCommand( + node: ESQLCommand, + input: UndefinedToVoid>[1]> + ) { + this.ctx.assertMethodExists('visitCommand'); + return this.ctx.visitCommand(null, node, input); + } + + /** + * Traverse starting from known expression node with default context. + * + * @param node Expression node to traverse. + * @param input Input to pass to the first visitor. + * @returns The output of the visitor. + */ + public visitExpression( + node: ESQLAstExpressionNode, + input: UndefinedToVoid>[1]> + ) { + this.ctx.assertMethodExists('visitExpression'); + return this.ctx.visitExpression(null, node, input); + } } diff --git a/packages/kbn-esql-ast/src/walker/walker.test.ts b/packages/kbn-esql-ast/src/walker/walker.test.ts index 59375b275b162..1a3f1b0a0b6d7 100644 --- a/packages/kbn-esql-ast/src/walker/walker.test.ts +++ b/packages/kbn-esql-ast/src/walker/walker.test.ts @@ -791,7 +791,8 @@ describe('Walker.params()', () => { }); test('can collect all params from grouping functions', () => { - const query = 'ROW x=1, time=2024-07-10 | stats z = avg(x) by bucket(time, 20, ?start,?end)'; + const query = + 'ROW x=1, time=2024-07-10 | stats z = avg(x) by bucket(time, 20, ?t_start,?t_end)'; const { ast } = getAstAndSyntaxErrors(query); const params = Walker.params(ast); @@ -800,13 +801,13 @@ describe('Walker.params()', () => { type: 'literal', literalType: 'param', paramType: 'named', - value: 'start', + value: 't_start', }, { type: 'literal', literalType: 'param', paramType: 'named', - value: 'end', + value: 't_end', }, ]); }); diff --git a/packages/kbn-esql-utils/src/utils/get_initial_esql_query.test.ts b/packages/kbn-esql-utils/src/utils/get_initial_esql_query.test.ts index 26d3b1c0c4a89..0a2a6c6eef4b3 100644 --- a/packages/kbn-esql-utils/src/utils/get_initial_esql_query.test.ts +++ b/packages/kbn-esql-utils/src/utils/get_initial_esql_query.test.ts @@ -96,7 +96,7 @@ describe('getInitialESQLQuery', () => { ] as DataView['fields']; const dataView = getDataView('logs*', fields, '@custom_timestamp'); expect(getInitialESQLQuery(dataView)).toBe( - 'FROM logs* | WHERE @custom_timestamp >= ?start AND @custom_timestamp <= ?end | LIMIT 10' + 'FROM logs* | WHERE @custom_timestamp >= ?t_start AND @custom_timestamp <= ?t_end | LIMIT 10' ); }); }); diff --git a/packages/kbn-esql-utils/src/utils/get_initial_esql_query.ts b/packages/kbn-esql-utils/src/utils/get_initial_esql_query.ts index 1d78432b14269..920cd3a873ca8 100644 --- a/packages/kbn-esql-utils/src/utils/get_initial_esql_query.ts +++ b/packages/kbn-esql-utils/src/utils/get_initial_esql_query.ts @@ -18,7 +18,7 @@ export function getInitialESQLQuery(dataView: DataView): string { const timeFieldName = dataView?.timeFieldName; const filterByTimeParams = !hasAtTimestampField && timeFieldName - ? ` | WHERE ${timeFieldName} >= ?start AND ${timeFieldName} <= ?end` + ? ` | WHERE ${timeFieldName} >= ?t_start AND ${timeFieldName} <= ?t_end` : ''; return `FROM ${dataView.getIndexPattern()}${filterByTimeParams} | LIMIT 10`; } diff --git a/packages/kbn-esql-utils/src/utils/query_parsing_helpers.test.ts b/packages/kbn-esql-utils/src/utils/query_parsing_helpers.test.ts index e324e3ece274c..8bf4ebc682074 100644 --- a/packages/kbn-esql-utils/src/utils/query_parsing_helpers.test.ts +++ b/packages/kbn-esql-utils/src/utils/query_parsing_helpers.test.ts @@ -77,17 +77,17 @@ describe('esql query helpers', () => { describe('getLimitFromESQLQuery', () => { it('should return default limit when ES|QL query is empty', () => { const limit = getLimitFromESQLQuery(''); - expect(limit).toBe(500); + expect(limit).toBe(1000); }); it('should return default limit when ES|QL query does not contain LIMIT command', () => { const limit = getLimitFromESQLQuery('FROM foo'); - expect(limit).toBe(500); + expect(limit).toBe(1000); }); it('should return default limit when ES|QL query contains invalid LIMIT command', () => { const limit = getLimitFromESQLQuery('FROM foo | LIMIT iAmNotANumber'); - expect(limit).toBe(500); + expect(limit).toBe(1000); }); it('should return limit when ES|QL query contains LIMIT command', () => { @@ -95,7 +95,7 @@ describe('esql query helpers', () => { expect(limit).toBe(10000); }); - it('should return last limit when ES|QL query contains multiple LIMIT command', () => { + it('should return minimum limit when ES|QL query contains multiple LIMIT command', () => { const limit = getLimitFromESQLQuery('FROM foo | LIMIT 200 | LIMIT 0'); expect(limit).toBe(0); }); @@ -150,10 +150,12 @@ describe('esql query helpers', () => { }); it('should return the time field if there is at least one time param', () => { - expect(getTimeFieldFromESQLQuery('from a | eval b = 1 | where time >= ?start')).toBe('time'); + expect(getTimeFieldFromESQLQuery('from a | eval b = 1 | where time >= ?t_start')).toBe( + 'time' + ); }); - it('should return undefined if there is one named param but is not ?start or ?end', () => { + it('should return undefined if there is one named param but is not ?t_start or ?t_end', () => { expect( getTimeFieldFromESQLQuery('from a | eval b = 1 | where time >= ?late') ).toBeUndefined(); @@ -161,14 +163,14 @@ describe('esql query helpers', () => { it('should return undefined if there is one named param but is used without a time field', () => { expect( - getTimeFieldFromESQLQuery('from a | eval b = DATE_TRUNC(1 day, ?start)') + getTimeFieldFromESQLQuery('from a | eval b = DATE_TRUNC(1 day, ?t_start)') ).toBeUndefined(); }); it('should return the time field if there is at least one time param in the bucket function', () => { expect( getTimeFieldFromESQLQuery( - 'from a | stats meow = avg(bytes) by bucket(event.timefield, 200, ?start, ?end)' + 'from a | stats meow = avg(bytes) by bucket(event.timefield, 200, ?t_start, ?t_end)' ) ).toBe('event.timefield'); }); diff --git a/packages/kbn-esql-utils/src/utils/query_parsing_helpers.ts b/packages/kbn-esql-utils/src/utils/query_parsing_helpers.ts index 52bd46f2927cf..bdabcbfbdd6c8 100644 --- a/packages/kbn-esql-utils/src/utils/query_parsing_helpers.ts +++ b/packages/kbn-esql-utils/src/utils/query_parsing_helpers.ts @@ -8,7 +8,7 @@ import type { ESQLSource, ESQLFunction, ESQLColumn, ESQLSingleAstItem } from '@kbn/esql-ast'; import { getAstAndSyntaxErrors, Walker, walk } from '@kbn/esql-ast'; -const DEFAULT_ESQL_LIMIT = 500; +const DEFAULT_ESQL_LIMIT = 1000; // retrieves the index pattern from the aggregate query for ES|QL using ast parsing export function getIndexPatternFromESQLQuery(esql?: string) { @@ -40,14 +40,27 @@ export function hasTransformationalCommand(esql?: string) { } export function getLimitFromESQLQuery(esql: string): number { - const limitCommands = esql.match(new RegExp(/LIMIT\s[0-9]+/, 'ig')); - if (!limitCommands) { + const { ast } = getAstAndSyntaxErrors(esql); + const limitCommands = ast.filter(({ name }) => name === 'limit'); + if (!limitCommands || !limitCommands.length) { + return DEFAULT_ESQL_LIMIT; + } + const limits: number[] = []; + + walk(ast, { + visitLiteral: (node) => { + if (!isNaN(Number(node.value))) { + limits.push(Number(node.value)); + } + }, + }); + + if (!limits.length) { return DEFAULT_ESQL_LIMIT; } - const lastIndex = limitCommands.length - 1; - const split = limitCommands[lastIndex].split(' '); - return parseInt(split[1], 10); + // ES returns always the smallest limit + return Math.min(...limits); } export function removeDropCommandsFromESQLQuery(esql?: string): string { @@ -56,7 +69,7 @@ export function removeDropCommandsFromESQLQuery(esql?: string): string { } /** - * When the ?start and ?end params are used, we want to retrieve the timefield from the query. + * When the ?t_start and ?t_end params are used, we want to retrieve the timefield from the query. * @param esql:string * @returns string */ @@ -69,7 +82,9 @@ export const getTimeFieldFromESQLQuery = (esql: string) => { }); const params = Walker.params(ast); - const timeNamedParam = params.find((param) => param.value === 'start' || param.value === 'end'); + const timeNamedParam = params.find( + (param) => param.value === 't_start' || param.value === 't_end' + ); if (!timeNamedParam || !functions.length) { return undefined; } diff --git a/packages/kbn-esql-utils/src/utils/run_query.test.ts b/packages/kbn-esql-utils/src/utils/run_query.test.ts index 4f5c4dfb9e47d..3dda728b605ba 100644 --- a/packages/kbn-esql-utils/src/utils/run_query.test.ts +++ b/packages/kbn-esql-utils/src/utils/run_query.test.ts @@ -17,26 +17,26 @@ describe('getStartEndParams', () => { it('should return an array with the start param if exists at the query', () => { const time = { from: 'Jul 5, 2024 @ 08:03:56.849', to: 'Jul 5, 2024 @ 10:03:56.849' }; - const query = 'FROM foo | where time > ?start'; + const query = 'FROM foo | where time > ?t_start'; const params = getStartEndParams(query, time); expect(params).toHaveLength(1); - expect(params[0]).toHaveProperty('start'); + expect(params[0]).toHaveProperty('t_start'); }); it('should return an array with the end param if exists at the query', () => { const time = { from: 'Jul 5, 2024 @ 08:03:56.849', to: 'Jul 5, 2024 @ 10:03:56.849' }; - const query = 'FROM foo | where time < ?end'; + const query = 'FROM foo | where time < ?t_end'; const params = getStartEndParams(query, time); expect(params).toHaveLength(1); - expect(params[0]).toHaveProperty('end'); + expect(params[0]).toHaveProperty('t_end'); }); it('should return an array with the end and start params if exist at the query', () => { const time = { from: 'Jul 5, 2024 @ 08:03:56.849', to: 'Jul 5, 2024 @ 10:03:56.849' }; - const query = 'FROM foo | where time < ?end amd time > ?start'; + const query = 'FROM foo | where time < ?t_end amd time > ?t_start'; const params = getStartEndParams(query, time); expect(params).toHaveLength(2); - expect(params[0]).toHaveProperty('start'); - expect(params[1]).toHaveProperty('end'); + expect(params[0]).toHaveProperty('t_start'); + expect(params[1]).toHaveProperty('t_end'); }); }); diff --git a/packages/kbn-esql-utils/src/utils/run_query.ts b/packages/kbn-esql-utils/src/utils/run_query.ts index 2041e686cb797..033afea1bf1f7 100644 --- a/packages/kbn-esql-utils/src/utils/run_query.ts +++ b/packages/kbn-esql-utils/src/utils/run_query.ts @@ -14,11 +14,11 @@ import { esFieldTypeToKibanaFieldType } from '@kbn/field-types'; import type { ESQLColumn, ESQLSearchResponse, ESQLSearchParams } from '@kbn/es-types'; import { lastValueFrom } from 'rxjs'; -export const hasStartEndParams = (query: string) => /\?start|\?end/i.test(query); +export const hasStartEndParams = (query: string) => /\?t_start|\?t_end/i.test(query); export const getStartEndParams = (query: string, time?: TimeRange) => { - const startNamedParams = /\?start/i.test(query); - const endNamedParams = /\?end/i.test(query); + const startNamedParams = /\?t_start/i.test(query); + const endNamedParams = /\?t_end/i.test(query); if (time && (startNamedParams || endNamedParams)) { const timeParams = { start: startNamedParams ? dateMath.parse(time.from)?.toISOString() : undefined, @@ -26,10 +26,10 @@ export const getStartEndParams = (query: string, time?: TimeRange) => { }; const namedParams = []; if (timeParams?.start) { - namedParams.push({ start: timeParams.start }); + namedParams.push({ t_start: timeParams.start }); } if (timeParams?.end) { - namedParams.push({ end: timeParams.end }); + namedParams.push({ t_end: timeParams.end }); } return namedParams; } diff --git a/packages/kbn-esql-validation-autocomplete/README.md b/packages/kbn-esql-validation-autocomplete/README.md index b5a4fc4d71c61..f964033090c2d 100644 --- a/packages/kbn-esql-validation-autocomplete/README.md +++ b/packages/kbn-esql-validation-autocomplete/README.md @@ -209,12 +209,157 @@ Note that autocomplete works most of the time with incomplete/invalid queries, s Once the AST is produced there's a `getAstContext` function that finds the cursor position node (and its parent command), together with some hint like the type of current context: `expression`, `function`, `newCommand`, `option`. The most complex case is the `expression` as it can cover a multitude of cases. The function is highly commented in order to identify the specific cases, but there's probably some obscure area still to comment/clarify. -### Adding new commands/options/functions/etc... +### Automated testing -To update the definitions: +Both the validation and autocomplete engine are covered by extensive suites of tests. -1. open either appropriate definition file within the `definitions` folder and add a new entry to the relative array -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 +#### Running the tests -- if a new function requires a new type of test, make sure to write it manually +All the tests can be run using the `yarn jest:tests packages/kbn-esql-validation-autocomplete/path/to/test/file` command at the root of the repository. + +To run all autocomplete and validation tests you can specifically run + +`yarn test:jest packages/kbn-esql-validation-autocomplete/` + +#### Ongoing refactor + +The test suites are in a state of transition from an older pattern to a newer pattern and so they are more complicated than we would like. We aim to improve and simplify the DX over time. + +The older pattern is + +- a single test file for each engine, one for validation, one for autocomplete. These were always large files and have only grown. +- custom test methods: `testSuggestions` / `testErrorsAndWarnings` +- validation cases are recorded in a JSON file which is then used to check our results against a live Elasticsearch instance in a functional test + +The newer pattern is + +- splitting the tests into multiple smaller files, all found in `__tests__` directories +- standard test methods (`it`, `test`) with custom _assertion_ helpers +- validation cases are checked against Elasticsearch by injecting assertion helpers run API integration tests. This does not require a JSON file. + +#### Validation + +##### The new way + +Validation test logic is found in `packages/kbn-esql-validation-autocomplete/src/validation/__tests__`. + +Tests are found in files named with the following convention: `validation.some-description.test.ts`. + +Here is an example of a block in the new test format. + +```ts +describe('METRICS [ [ BY ]]', () => { + test('errors on invalid command start', async () => { + const { expectErrors } = await setup(); + + await expectErrors('m', [ + "SyntaxError: mismatched input 'm' expecting {'explain', 'from', 'meta', 'metrics', 'row', 'show'}", + ]); + await expectErrors('metrics ', [ + "SyntaxError: mismatched input '' expecting {UNQUOTED_SOURCE, QUOTED_STRING}", + ]); + }); +}); +``` + +`expectErrors` is created in the `setup()` factory. It has a very similar API to `testErrorsAndWarnings` however it is not itself a Jest test case. It is simply an assertion that is wrapped in a test case defined with the standard `test` or `it` function. + +##### The old way + +The old validation tests look like this + +```ts +testErrorsAndWarnings(`ROW var = NOT 5 LIKE "?a"`, [ + `Argument of [LIKE] must be [text], found value [5] type [integer]`, +]); +``` + +and are found in `packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts`. + +`testErrorsAndWarnings` supports `skip` and `only` modifiers e.g. `testErrorsAndWarnings.only('...')`. + +It accepts + +1. a query +2. a list of expected errors (can be empty) +3. a list of expected warnings (can be empty or omitted) + +The bulk of the validation tests are auto-generated from function definitions. All the generated function tests are found within the following describe block + +```ts +describe(FUNCTION_DESCRIBE_BLOCK_NAME, () => { + ... +}); +``` + +They are currently generated in CI when a new function definition is added. The generator script is at `packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts`. + +The generator can be run locally using the `cd packages/kbn-esql-validation-autocomplete && yarn make:tests`. + +It is not perfect and occasionally creates a test case that is invalid for a particular function. So, humans are allowed to edit the expected assertions for any test case—those edits will not be overwritten by the generator script. However, if a human deletes a test case, it will be added back next time the generator runs. So, we should edit the test cases to make them valid, not delete them. + +Running the tests in `validation.test.ts` populates `packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json` which is then used in `test/api_integration/apis/esql/errors.ts` to make sure our validator isn't giving users false positives. Therefore, the validation test suite should always be run after any changes have been made to it so that the JSON file stays in sync. + +#### Autocomplete + +##### The new way + +The new tests are found in `packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__`. + +They look like this. + +```ts +test('lists possible aggregations on space after command', async () => { + const { assertSuggestions } = await setup(); + const expected = ['var0 = ', ...allAggFunctions, ...allEvaFunctions]; + + await assertSuggestions('from a | stats /', expected); + await assertSuggestions('FROM a | STATS /', expected); +}); +``` + +`assertSuggestions` is created by the `setup` factory. It does not set up a Jest test case internally, so it needs to be wrapped in `test` or `it`. + +The suggestion position is calculated from the placement of `/` in the query. + +The arguments are as follows + +1. the query +2. the expected suggestions (`Array`) +3. options + +Options is + +```ts +export interface SuggestOptions { + triggerCharacter?: string; + callbacks?: ESQLCallbacks; +} +``` + +So, that allows you to customize the [trigger kind](https://microsoft.github.io/monaco-editor/typedoc/enums/languages.CompletionTriggerKind.html) in the `ctx` object and the field list and other callback results in `callbacks`. + +##### The old way + +All the legacy autocomplete tests are found in `packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts`. + +They look like this + +```ts +testSuggestions('from a | eval a = 1 year /', [ + ',', + '| ', + ...getFunctionSignaturesByReturnType('eval', 'any', { builtin: true, skipAssign: true }, [ + 'time_interval', + ]), +]); +``` + +Similarly to `testErrorsAndWarnings`, `testSuggestions` is an all-in-one utility that sets up a Jest test case internally. + +Its parameters are as follows + +1. the query +2. the expected suggestions (can be strings or `Partial`) +3. the trigger character. This should only be included if the test is intended to validate a "Trigger Character" trigger kind from Monaco ([ref](https://microsoft.github.io/monaco-editor/typedoc/enums/languages.CompletionTriggerKind.html#TriggerCharacter)) +4. custom callback data such as a list of indicies or a field list diff --git a/packages/kbn-esql-validation-autocomplete/index.ts b/packages/kbn-esql-validation-autocomplete/index.ts index 31bd8c16b76fb..77643f0786785 100644 --- a/packages/kbn-esql-validation-autocomplete/index.ts +++ b/packages/kbn-esql-validation-autocomplete/index.ts @@ -49,7 +49,7 @@ export { getCommandDefinition, getAllCommands, getCommandOption, - lookupColumn, + getColumnForASTNode as lookupColumn, shouldBeQuotedText, printFunctionSignature, checkFunctionArgMatchesDefinition as isEqualType, 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 index f431d3cddb2c5..71bca915511de 100644 --- a/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts +++ b/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts @@ -21,8 +21,9 @@ import { SupportedDataType, FunctionDefinition, dataTypes, - isSupportedDataType, fieldTypes, + isFieldType, + FunctionParameter, } from '../src/definitions/types'; import { FUNCTION_DESCRIBE_BLOCK_NAME } from '../src/validation/function_describe_block_name'; import { getMaxMinNumberOfParams } from '../src/validation/helpers'; @@ -991,6 +992,7 @@ const fieldTypesToConstants: Record = { // by the ES function definitions. Just making types happy time_literal: '1 day', unsupported: '', + date_nanos: '1420070400000', }; const supportedTypesAndFieldNames = fieldTypes.map((type) => ({ @@ -1109,7 +1111,7 @@ function getFieldMapping( return params.map(({ name: _name, type, constantOnly, literalOptions, ...rest }) => { const typeString: string = type as string; - if (isSupportedDataType(typeString)) { + if (isFieldType(typeString)) { if (useLiterals && literalOptions) { return { name: `"${literalOptions[0]}"`, @@ -1154,7 +1156,7 @@ function generateIncorrectlyTypedParameters( signatures: FunctionDefinition['signatures'], currentParams: FunctionDefinition['signatures'][number]['params'], availableFields: Array<{ name: string; type: SupportedDataType }> -) { +): { wrongFieldMapping: FunctionParameter[]; expectedErrors: string[] } { const literalValues = { string: `"a"`, number: '5', @@ -1259,7 +1261,7 @@ function generateIncorrectlyTypedParameters( }) .filter(nonNullable); - return { wrongFieldMapping, expectedErrors }; + return { wrongFieldMapping: wrongFieldMapping as FunctionParameter[], expectedErrors }; } /** diff --git a/packages/kbn-esql-validation-autocomplete/src/__tests__/helpers.ts b/packages/kbn-esql-validation-autocomplete/src/__tests__/helpers.ts index 273679ab1f267..020ee21940fd0 100644 --- a/packages/kbn-esql-validation-autocomplete/src/__tests__/helpers.ts +++ b/packages/kbn-esql-validation-autocomplete/src/__tests__/helpers.ts @@ -72,6 +72,7 @@ export function getCallbackMocks() { indexes.map((name) => ({ name, hidden: name.startsWith('.'), + type: 'Index', })) ), getPolicies: jest.fn(async () => policies), diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.command.stats.test.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.command.stats.test.ts index cdf4a6239a9ab..13d471d53d7ec 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.command.stats.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.command.stats.test.ts @@ -137,10 +137,27 @@ describe('autocomplete.suggest', () => { test('when typing inside function left paren', async () => { const { assertSuggestions } = await setup(); const expected = [ - ...getFieldNamesByType([...ESQL_COMMON_NUMERIC_TYPES, 'date', 'boolean', 'ip']), + ...getFieldNamesByType([ + ...ESQL_COMMON_NUMERIC_TYPES, + 'date', + 'boolean', + 'ip', + 'version', + 'text', + 'keyword', + ]), ...getFunctionSignaturesByReturnType( 'stats', - [...ESQL_COMMON_NUMERIC_TYPES, 'date', 'date_period', 'boolean', 'ip'], + [ + ...ESQL_COMMON_NUMERIC_TYPES, + 'date', + 'date_period', + 'boolean', + 'ip', + 'version', + 'text', + 'keyword', + ], { scalar: true, } diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.suggest.test.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.suggest.test.ts similarity index 87% rename from packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.suggest.test.ts rename to packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.suggest.test.ts index 7bb96f602c0dc..bafd33a56c204 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.suggest.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.suggest.test.ts @@ -7,10 +7,10 @@ */ import { getAstAndSyntaxErrors } from '@kbn/esql-ast'; -import { ESQLCallbacks } from '../shared/types'; -import * as autocomplete from './autocomplete'; -import { getCallbackMocks } from '../__tests__/helpers'; -import { EditorContext } from './types'; +import { ESQLCallbacks } from '../../shared/types'; +import * as autocomplete from '../autocomplete'; +import { getCallbackMocks } from '../../__tests__/helpers'; +import { EditorContext } from '../types'; const setup = async (caret = '?') => { if (caret.length !== 1) throw new Error('Caret must be a single character'); diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/helpers.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/helpers.ts index 4c4ad9902ac8c..a05e8059d1308 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/helpers.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/helpers.ts @@ -286,7 +286,7 @@ export function getPolicyFields(policyName: string) { } export interface SuggestOptions { - ctx?: EditorContext; + triggerCharacter?: string; callbacks?: ESQLCallbacks; } @@ -301,9 +301,10 @@ export const setup = async (caret = '/') => { const pos = query.indexOf(caret); if (pos < 0) throw new Error(`User cursor/caret "${caret}" not found in query: ${query}`); const querySansCaret = query.slice(0, pos) + query.slice(pos + 1); - const ctx = - opts.ctx ?? - (pos > 0 ? { triggerKind: 1, triggerCharacter: query[pos - 1] } : { triggerKind: 0 }); + const ctx: EditorContext = opts.triggerCharacter + ? { triggerKind: 1, triggerCharacter: opts.triggerCharacter } + : { triggerKind: 0 }; + return await autocomplete.suggest( querySansCaret, pos, diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts index dcb0aaa76adb8..e8b1c42db2aed 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts @@ -20,7 +20,9 @@ import { camelCase, partition } from 'lodash'; import { getAstAndSyntaxErrors } from '@kbn/esql-ast'; import { FunctionParameter, + FunctionReturnType, isFieldType, + isReturnType, isSupportedDataType, SupportedDataType, } from '../definitions/types'; @@ -37,6 +39,7 @@ import { getPolicyFields, PartialSuggestionWithText, TIME_PICKER_SUGGESTION, + setup, } from './__tests__/helpers'; import { METADATA_FIELDS } from '../shared/constants'; import { ESQL_COMMON_NUMERIC_TYPES, ESQL_STRING_TYPES } from '../shared/esql_types'; @@ -51,7 +54,6 @@ describe('autocomplete', () => { string, Array, string?, - number?, Parameters? ]; @@ -60,45 +62,17 @@ describe('autocomplete', () => { statement: string, expected: Array, triggerCharacter?: string, - _offset?: number, customCallbacksArgs: Parameters = [ undefined, undefined, undefined, ] ) => { - const context = createCompletionContext(triggerCharacter); const testFn = only ? test.only : skip ? test.skip : test; - const offset = _offset - ? _offset - : triggerCharacter - ? statement.lastIndexOf(triggerCharacter) + 1 - : statement.length; - testFn(statement, async () => { const callbackMocks = createCustomCallbackMocks(...customCallbacksArgs); - const suggestions = await suggest( - statement, - offset, - context, - async (text) => (text ? getAstAndSyntaxErrors(text) : { ast: [], errors: [] }), - callbackMocks - ); - - const sortedSuggestionTexts = suggestions.map((suggestion) => suggestion.text).sort(); - const sortedExpectedTexts = expected - .map((suggestion) => (typeof suggestion === 'string' ? suggestion : suggestion.text ?? '')) - .sort(); - - expect(sortedSuggestionTexts).toEqual(sortedExpectedTexts); - const expectedNonStringSuggestions = expected.filter( - (suggestion) => typeof suggestion !== 'string' - ) as PartialSuggestionWithText[]; - - for (const expectedSuggestion of expectedNonStringSuggestions) { - const suggestion = suggestions.find((s) => s.text === expectedSuggestion.text); - expect(suggestion).toEqual(expect.objectContaining(expectedSuggestion)); - } + const { assertSuggestions } = await setup(); + await assertSuggestions(statement, expected, { callbacks: callbackMocks, triggerCharacter }); }); }; @@ -121,29 +95,29 @@ describe('autocomplete', () => { describe('New command', () => { testSuggestions( - ' ', + '/', sourceCommands.map((name) => name.toUpperCase() + ' $0') ); testSuggestions( - 'from a | ', + 'from a | /', commandDefinitions .filter(({ name }) => !sourceCommands.includes(name)) .map(({ name }) => name.toUpperCase() + ' $0') ); testSuggestions( - 'from a [metadata _id] | ', + 'from a [metadata _id] | /', commandDefinitions .filter(({ name }) => !sourceCommands.includes(name)) .map(({ name }) => name.toUpperCase() + ' $0') ); testSuggestions( - 'from a | eval var0 = a | ', + 'from a | eval var0 = a | /', commandDefinitions .filter(({ name }) => !sourceCommands.includes(name)) .map(({ name }) => name.toUpperCase() + ' $0') ); testSuggestions( - 'from a [metadata _id] | eval var0 = a | ', + 'from a [metadata _id] | eval var0 = a | /', commandDefinitions .filter(({ name }) => !sourceCommands.includes(name)) .map(({ name }) => name.toUpperCase() + ' $0') @@ -151,9 +125,9 @@ describe('autocomplete', () => { }); describe('show', () => { - testSuggestions('show ', ['INFO']); + testSuggestions('show /', ['INFO']); for (const fn of ['info']) { - testSuggestions(`show ${fn} `, ['| ']); + testSuggestions(`show ${fn} /`, ['| ']); } }); @@ -161,16 +135,16 @@ describe('autocomplete', () => { const allEvalFns = getFunctionSignaturesByReturnType('where', 'any', { scalar: true, }); - testSuggestions('from a | where ', [ + testSuggestions('from a | where /', [ ...getFieldNamesByType('any').map((field) => `${field} `), ...allEvalFns, ]); - testSuggestions('from a | eval var0 = 1 | where ', [ + testSuggestions('from a | eval var0 = 1 | where /', [ ...getFieldNamesByType('any').map((name) => `${name} `), 'var0', ...allEvalFns, ]); - testSuggestions('from a | where keywordField ', [ + testSuggestions('from a | where keywordField /', [ // all functions compatible with a keywordField type ...getFunctionSignaturesByReturnType( 'where', @@ -188,27 +162,27 @@ describe('autocomplete', () => { scalar: true, }), ]; - testSuggestions('from a | where textField >= ', expectedComparisonWithTextFieldSuggestions); + testSuggestions('from a | where textField >= /', expectedComparisonWithTextFieldSuggestions); testSuggestions( - 'from a | where textField >= textField', + 'from a | where textField >= textField/', expectedComparisonWithTextFieldSuggestions ); for (const op of ['and', 'or']) { - testSuggestions(`from a | where keywordField >= keywordField ${op} `, [ + testSuggestions(`from a | where keywordField >= keywordField ${op} /`, [ ...getFieldNamesByType('any'), ...getFunctionSignaturesByReturnType('where', 'any', { scalar: true }), ]); - testSuggestions(`from a | where keywordField >= keywordField ${op} doubleField `, [ + testSuggestions(`from a | where keywordField >= keywordField ${op} doubleField /`, [ ...getFunctionSignaturesByReturnType('where', 'boolean', { builtin: true }, ['double']), ]); - testSuggestions(`from a | where keywordField >= keywordField ${op} doubleField == `, [ + testSuggestions(`from a | where keywordField >= keywordField ${op} doubleField == /`, [ ...getFieldNamesByType(ESQL_COMMON_NUMERIC_TYPES), ...getFunctionSignaturesByReturnType('where', ESQL_COMMON_NUMERIC_TYPES, { scalar: true, }), ]); } - testSuggestions('from a | stats a=avg(doubleField) | where a ', [ + testSuggestions('from a | stats a=avg(doubleField) | where a /', [ ...getFunctionSignaturesByReturnType('where', 'any', { builtin: true, skipAssign: true }, [ 'double', ]), @@ -217,16 +191,15 @@ describe('autocomplete', () => { // in this case the doubleField has been wiped by the STATS command and suggest cannot find it's type // @TODO: verify this is the correct behaviour in this case or if we want a "generic" suggestion anyway testSuggestions( - 'from a | stats a=avg(doubleField) | where doubleField ', + 'from a | stats a=avg(doubleField) | where doubleField /', [], undefined, - undefined, // make the fields suggest aware of the previous STATS, leave the other callbacks untouched [[{ name: 'a', type: 'double' }], undefined, undefined] ); // The editor automatically inject the final bracket, so it is not useful to test with just open bracket testSuggestions( - 'from a | where log10()', + 'from a | where log10(/)', [ ...getFieldNamesByType(log10ParameterTypes), ...getFunctionSignaturesByReturnType( @@ -239,12 +212,12 @@ describe('autocomplete', () => { ], '(' ); - testSuggestions('from a | where log10(doubleField) ', [ + testSuggestions('from a | where log10(doubleField) /', [ ...getFunctionSignaturesByReturnType('where', 'double', { builtin: true }, ['double']), ...getFunctionSignaturesByReturnType('where', 'boolean', { builtin: true }, ['double']), ]); testSuggestions( - 'from a | WHERE pow(doubleField, )', + 'from a | WHERE pow(doubleField, /)', [ ...getFieldNamesByType(powParameterTypes), ...getFunctionSignaturesByReturnType( @@ -258,44 +231,34 @@ describe('autocomplete', () => { ',' ); - testSuggestions('from index | WHERE keywordField not ', ['LIKE $0', 'RLIKE $0', 'IN $0']); - testSuggestions('from index | WHERE keywordField NOT ', ['LIKE $0', 'RLIKE $0', 'IN $0']); - testSuggestions('from index | WHERE not ', [ + testSuggestions('from index | WHERE keywordField not /', ['LIKE $0', 'RLIKE $0', 'IN $0']); + testSuggestions('from index | WHERE keywordField NOT /', ['LIKE $0', 'RLIKE $0', 'IN $0']); + testSuggestions('from index | WHERE not /', [ ...getFieldNamesByType('boolean'), ...getFunctionSignaturesByReturnType('eval', 'boolean', { scalar: true }), ]); - testSuggestions('from index | WHERE doubleField in ', ['( $0 )']); - testSuggestions('from index | WHERE doubleField not in ', ['( $0 )']); + testSuggestions('from index | WHERE doubleField in /', ['( $0 )']); + testSuggestions('from index | WHERE doubleField not in /', ['( $0 )']); testSuggestions( - 'from index | WHERE doubleField not in ( )', + 'from index | WHERE doubleField not in (/)', [ ...getFieldNamesByType('double').filter((name) => name !== 'doubleField'), ...getFunctionSignaturesByReturnType('where', 'double', { scalar: true }), ], '(' ); - testSuggestions( - 'from index | WHERE doubleField in ( `any#Char$Field`, )', - [ - ...getFieldNamesByType('double').filter( - (name) => name !== '`any#Char$Field`' && name !== 'doubleField' - ), - ...getFunctionSignaturesByReturnType('where', 'double', { scalar: true }), - ], - undefined, - 54 // after the first suggestions - ); - testSuggestions( - 'from index | WHERE doubleField not in ( `any#Char$Field`, )', - [ - ...getFieldNamesByType('double').filter( - (name) => name !== '`any#Char$Field`' && name !== 'doubleField' - ), - ...getFunctionSignaturesByReturnType('where', 'double', { scalar: true }), - ], - undefined, - 58 // after the first suggestions - ); + testSuggestions('from index | WHERE doubleField in ( `any#Char$Field`, /)', [ + ...getFieldNamesByType('double').filter( + (name) => name !== '`any#Char$Field`' && name !== 'doubleField' + ), + ...getFunctionSignaturesByReturnType('where', 'double', { scalar: true }), + ]); + testSuggestions('from index | WHERE doubleField not in ( `any#Char$Field`, /)', [ + ...getFieldNamesByType('double').filter( + (name) => name !== '`any#Char$Field`' && name !== 'doubleField' + ), + ...getFunctionSignaturesByReturnType('where', 'double', { scalar: true }), + ]); }); describe('grok', () => { @@ -308,13 +271,9 @@ describe('autocomplete', () => { `dissect keywordField ${constantPattern} |`, ]; for (const subExpression of subExpressions) { - // Unskip once https://github.com/elastic/kibana/issues/190070 is fixed - testSuggestions.skip( - `from a | ${subExpression} grok `, - getFieldNamesByType(ESQL_STRING_TYPES) - ); - testSuggestions(`from a | ${subExpression} grok keywordField `, [constantPattern], ' '); - testSuggestions(`from a | ${subExpression} grok keywordField ${constantPattern} `, ['| ']); + testSuggestions(`from a | ${subExpression} grok /`, getFieldNamesByType(ESQL_STRING_TYPES)); + testSuggestions(`from a | ${subExpression} grok keywordField /`, [constantPattern], ' '); + testSuggestions(`from a | ${subExpression} grok keywordField ${constantPattern} /`, ['| ']); } }); @@ -329,69 +288,74 @@ describe('autocomplete', () => { for (const subExpression of subExpressions) { // Unskip once https://github.com/elastic/kibana/issues/190070 is fixed testSuggestions.skip( - `from a | ${subExpression} dissect `, + `from a | ${subExpression} dissect /`, getFieldNamesByType(ESQL_STRING_TYPES) ); - testSuggestions(`from a | ${subExpression} dissect keywordField `, [constantPattern], ' '); + testSuggestions(`from a | ${subExpression} dissect keywordField /`, [constantPattern], ' '); testSuggestions( - `from a | ${subExpression} dissect keywordField ${constantPattern} `, + `from a | ${subExpression} dissect keywordField ${constantPattern} /`, ['APPEND_SEPARATOR = $0', '| '], ' ' ); testSuggestions( - `from a | ${subExpression} dissect keywordField ${constantPattern} append_separator = `, + `from a | ${subExpression} dissect keywordField ${constantPattern} append_separator = /`, ['":"', '";"'] ); testSuggestions( - `from a | ${subExpression} dissect keywordField ${constantPattern} append_separator = ":" `, + `from a | ${subExpression} dissect keywordField ${constantPattern} append_separator = ":" /`, ['| '] ); } }); describe('sort', () => { - testSuggestions('from a | sort ', [ + testSuggestions('from a | sort /', [ ...getFieldNamesByType('any').map((name) => `${name} `), ...getFunctionSignaturesByReturnType('sort', 'any', { scalar: true }), ]); - testSuggestions('from a | sort keywordField ', ['ASC ', 'DESC ', ',', '| ']); - testSuggestions('from a | sort keywordField desc ', ['NULLS FIRST ', 'NULLS LAST ', ',', '| ']); + testSuggestions('from a | sort keywordField /', ['ASC ', 'DESC ', ',', '| ']); + testSuggestions('from a | sort keywordField desc /', [ + 'NULLS FIRST ', + 'NULLS LAST ', + ',', + '| ', + ]); // @TODO: improve here // testSuggestions('from a | sort keywordField desc ', ['first', 'last']); }); describe('limit', () => { - testSuggestions('from a | limit ', ['10 ', '100 ', '1000 ']); - testSuggestions('from a | limit 4 ', ['| ']); + testSuggestions('from a | limit /', ['10 ', '100 ', '1000 ']); + testSuggestions('from a | limit 4 /', ['| ']); }); describe('mv_expand', () => { - testSuggestions('from a | mv_expand ', getFieldNamesByType('any')); - testSuggestions('from a | mv_expand a ', ['| ']); + testSuggestions('from a | mv_expand /', getFieldNamesByType('any')); + testSuggestions('from a | mv_expand a /', ['| ']); }); describe('rename', () => { - testSuggestions('from a | rename ', getFieldNamesByType('any')); - testSuggestions('from a | rename keywordField ', ['AS $0'], ' '); - testSuggestions('from a | rename keywordField as ', ['var0']); + testSuggestions('from a | rename /', getFieldNamesByType('any')); + testSuggestions('from a | rename keywordField /', ['AS $0'], ' '); + testSuggestions('from a | rename keywordField as /', ['var0']); }); for (const command of ['keep', 'drop']) { describe(command, () => { - testSuggestions(`from a | ${command} `, getFieldNamesByType('any')); + testSuggestions(`from a | ${command} /`, getFieldNamesByType('any')); testSuggestions( - `from a | ${command} keywordField, `, + `from a | ${command} keywordField, /`, getFieldNamesByType('any').filter((name) => name !== 'keywordField') ); testSuggestions( - `from a | ${command} keywordField,`, + `from a | ${command} keywordField,/`, getFieldNamesByType('any').filter((name) => name !== 'keywordField'), ',' ); testSuggestions( - `from a_index | eval round(doubleField) + 1 | eval \`round(doubleField) + 1\` + 1 | eval \`\`\`round(doubleField) + 1\`\` + 1\` + 1 | eval \`\`\`\`\`\`\`round(doubleField) + 1\`\`\`\` + 1\`\` + 1\` + 1 | eval \`\`\`\`\`\`\`\`\`\`\`\`\`\`\`round(doubleField) + 1\`\`\`\`\`\`\`\` + 1\`\`\`\` + 1\`\` + 1\` + 1 | ${command} `, + `from a_index | eval round(doubleField) + 1 | eval \`round(doubleField) + 1\` + 1 | eval \`\`\`round(doubleField) + 1\`\` + 1\` + 1 | eval \`\`\`\`\`\`\`round(doubleField) + 1\`\`\`\` + 1\`\` + 1\` + 1 | eval \`\`\`\`\`\`\`\`\`\`\`\`\`\`\`round(doubleField) + 1\`\`\`\`\`\`\`\` + 1\`\`\`\` + 1\`\` + 1\` + 1 | ${command} /`, [ ...getFieldNamesByType('any'), '`round(doubleField) + 1`', @@ -413,52 +377,51 @@ describe('autocomplete', () => { // '| enrich other-policy on b ', // '| enrich other-policy with c ', ]) { - testSuggestions(`from a ${prevCommand}| enrich `, policyNames); + testSuggestions(`from a ${prevCommand}| enrich /`, policyNames); testSuggestions( - `from a ${prevCommand}| enrich _`, + `from a ${prevCommand}| enrich _/`, modes.map((mode) => `_${mode}:$0`), '_' ); for (const mode of modes) { - testSuggestions(`from a ${prevCommand}| enrich _${mode}:`, policyNames, ':'); - testSuggestions(`from a ${prevCommand}| enrich _${mode.toUpperCase()}:`, policyNames, ':'); - testSuggestions(`from a ${prevCommand}| enrich _${camelCase(mode)}:`, policyNames, ':'); + testSuggestions(`from a ${prevCommand}| enrich _${mode}:/`, policyNames, ':'); + testSuggestions(`from a ${prevCommand}| enrich _${mode.toUpperCase()}:/`, policyNames, ':'); + testSuggestions(`from a ${prevCommand}| enrich _${camelCase(mode)}:/`, policyNames, ':'); } - testSuggestions(`from a ${prevCommand}| enrich policy `, ['ON $0', 'WITH $0', '| ']); - testSuggestions(`from a ${prevCommand}| enrich policy on `, getFieldNamesByType('any')); - testSuggestions(`from a ${prevCommand}| enrich policy on b `, ['WITH $0', ',', '| ']); + testSuggestions(`from a ${prevCommand}| enrich policy /`, ['ON $0', 'WITH $0', '| ']); + testSuggestions(`from a ${prevCommand}| enrich policy on /`, getFieldNamesByType('any')); + testSuggestions(`from a ${prevCommand}| enrich policy on b /`, ['WITH $0', ',', '| ']); testSuggestions( - `from a ${prevCommand}| enrich policy on b with `, + `from a ${prevCommand}| enrich policy on b with /`, ['var0 = ', ...getPolicyFields('policy')], ' ' ); - testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 `, ['= $0', ',', '| ']); - testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 = `, [ + testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 /`, ['= $0', ',', '| ']); + testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 = /`, [ ...getPolicyFields('policy'), ]); - testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 = keywordField `, [ + testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 = keywordField /`, [ ',', '| ', ]); - testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 = keywordField, `, [ + testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 = keywordField, /`, [ 'var1 = ', ...getPolicyFields('policy'), ]); - testSuggestions(`from a ${prevCommand}| enrich policy on b with var0 = keywordField, var1 `, [ - '= $0', - ',', - '| ', - ]); testSuggestions( - `from a ${prevCommand}| enrich policy on b with var0 = keywordField, var1 = `, + `from a ${prevCommand}| enrich policy on b with var0 = keywordField, var1 /`, + ['= $0', ',', '| '] + ); + testSuggestions( + `from a ${prevCommand}| enrich policy on b with var0 = keywordField, var1 = /`, [...getPolicyFields('policy')] ); testSuggestions( - `from a ${prevCommand}| enrich policy with `, + `from a ${prevCommand}| enrich policy with /`, ['var0 = ', ...getPolicyFields('policy')], ' ' ); - testSuggestions(`from a ${prevCommand}| enrich policy with keywordField `, [ + testSuggestions(`from a ${prevCommand}| enrich policy with keywordField /`, [ '= $0', ',', '| ', @@ -467,53 +430,52 @@ describe('autocomplete', () => { }); describe('eval', () => { - testSuggestions('from a | eval ', [ + testSuggestions('from a | eval /', [ 'var0 = ', ...getFieldNamesByType('any'), ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), ]); - testSuggestions('from a | eval doubleField ', [ + testSuggestions('from a | eval doubleField /', [ ...getFunctionSignaturesByReturnType('eval', 'any', { builtin: true, skipAssign: true }, [ 'double', ]), ',', '| ', ]); - testSuggestions('from index | EVAL keywordField not ', ['LIKE $0', 'RLIKE $0', 'IN $0']); - testSuggestions('from index | EVAL keywordField NOT ', ['LIKE $0', 'RLIKE $0', 'IN $0']); - testSuggestions('from index | EVAL doubleField in ', ['( $0 )']); + testSuggestions('from index | EVAL keywordField not /', ['LIKE $0', 'RLIKE $0', 'IN $0']); + testSuggestions('from index | EVAL keywordField NOT /', ['LIKE $0', 'RLIKE $0', 'IN $0']); + testSuggestions('from index | EVAL doubleField in /', ['( $0 )']); testSuggestions( - 'from index | EVAL doubleField in ( )', + 'from index | EVAL doubleField in (/)', [ ...getFieldNamesByType('double').filter((name) => name !== 'doubleField'), ...getFunctionSignaturesByReturnType('eval', 'double', { scalar: true }), ], '(' ); - testSuggestions('from index | EVAL doubleField not in ', ['( $0 )']); - testSuggestions('from index | EVAL not ', [ + testSuggestions('from index | EVAL doubleField not in /', ['( $0 )']); + testSuggestions('from index | EVAL not /', [ ...getFieldNamesByType('boolean'), ...getFunctionSignaturesByReturnType('eval', 'boolean', { scalar: true }), ]); - testSuggestions('from a | eval a=', [ - ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), - ]); - testSuggestions('from a | eval a=abs(doubleField), b= ', [ - ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), - ]); - testSuggestions('from a | eval a=doubleField, ', [ + testSuggestions( + 'from a | eval a=/', + [...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true })], + '=' + ); + testSuggestions( + 'from a | eval a=abs(doubleField), b= /', + [...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true })], + '=' + ); + testSuggestions('from a | eval a=doubleField, /', [ 'var0 = ', ...getFieldNamesByType('any'), 'a', ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), ]); - // Skip this test until the insensitive case equality gets restored back - testSuggestions.skip('from a | eval a=keywordField =~ ', [ - ...getFieldNamesByType(ESQL_STRING_TYPES), - ...getFunctionSignaturesByReturnType('eval', ESQL_STRING_TYPES, { scalar: true }), - ]); testSuggestions( - 'from a | eval a=round()', + 'from a | eval a=round(/)', [ ...getFieldNamesByType(roundParameterTypes), ...getFunctionSignaturesByReturnType( @@ -527,29 +489,29 @@ describe('autocomplete', () => { '(' ); testSuggestions( - 'from a | eval a=raund()', // note the typo in round + 'from a | eval a=raund(/)', // note the typo in round [], '(' ); testSuggestions( - 'from a | eval a=raund(', // note the typo in round + 'from a | eval a=raund(/', // note the typo in round [] ); testSuggestions( - 'from a | eval raund(', // note the typo in round + 'from a | eval raund(/', // note the typo in round [] ); testSuggestions( - 'from a | eval raund(5, ', // note the typo in round + 'from a | eval raund(5, /', // note the typo in round [], ' ' ); testSuggestions( - 'from a | eval var0 = raund(5, ', // note the typo in round + 'from a | eval var0 = raund(5, /', // note the typo in round [], ' ' ); - testSuggestions('from a | eval a=round(doubleField) ', [ + testSuggestions('from a | eval a=round(doubleField) /', [ ',', '| ', ...getFunctionSignaturesByReturnType('eval', 'any', { builtin: true, skipAssign: true }, [ @@ -557,7 +519,7 @@ describe('autocomplete', () => { ]), ]); testSuggestions( - 'from a | eval a=round(doubleField, ', + 'from a | eval a=round(doubleField, /', [ ...getFieldNamesByType('integer'), ...getFunctionSignaturesByReturnType('eval', 'integer', { scalar: true }, undefined, [ @@ -567,7 +529,7 @@ describe('autocomplete', () => { ' ' ); testSuggestions( - 'from a | eval round(doubleField, ', + 'from a | eval round(doubleField, /', [ ...getFieldNamesByType('integer'), ...getFunctionSignaturesByReturnType('eval', 'integer', { scalar: true }, undefined, [ @@ -576,50 +538,49 @@ describe('autocomplete', () => { ], ' ' ); - testSuggestions('from a | eval a=round(doubleField),', [ + testSuggestions('from a | eval a=round(doubleField),/', [ 'var0 = ', ...getFieldNamesByType('any'), 'a', ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), ]); - testSuggestions('from a | eval a=round(doubleField) + ', [ + testSuggestions('from a | eval a=round(doubleField) + /', [ ...getFieldNamesByType(ESQL_COMMON_NUMERIC_TYPES), ...getFunctionSignaturesByReturnType('eval', ESQL_COMMON_NUMERIC_TYPES, { scalar: true, }), ]); - testSuggestions('from a | eval a=round(doubleField)+ ', [ + testSuggestions('from a | eval a=round(doubleField)+ /', [ ...getFieldNamesByType(ESQL_COMMON_NUMERIC_TYPES), ...getFunctionSignaturesByReturnType('eval', ESQL_COMMON_NUMERIC_TYPES, { scalar: true, }), ]); - testSuggestions('from a | eval a=doubleField+ ', [ + testSuggestions('from a | eval a=doubleField+ /', [ ...getFieldNamesByType(ESQL_COMMON_NUMERIC_TYPES), ...getFunctionSignaturesByReturnType('eval', ESQL_COMMON_NUMERIC_TYPES, { scalar: true, }), ]); - testSuggestions('from a | eval a=`any#Char$Field`+ ', [ + testSuggestions('from a | eval a=`any#Char$Field`+ /', [ ...getFieldNamesByType(ESQL_COMMON_NUMERIC_TYPES), ...getFunctionSignaturesByReturnType('eval', ESQL_COMMON_NUMERIC_TYPES, { scalar: true, }), ]); testSuggestions( - 'from a | stats avg(doubleField) by keywordField | eval ', + 'from a | stats avg(doubleField) by keywordField | eval /', [ 'var0 = ', '`avg(doubleField)`', ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), ], ' ', - undefined, // make aware EVAL of the previous STATS command [[], undefined, undefined] ); testSuggestions( - 'from a | eval abs(doubleField) + 1 | eval ', + 'from a | eval abs(doubleField) + 1 | eval /', [ 'var0 = ', ...getFieldNamesByType('any'), @@ -629,19 +590,18 @@ describe('autocomplete', () => { ' ' ); testSuggestions( - 'from a | stats avg(doubleField) by keywordField | eval ', + 'from a | stats avg(doubleField) by keywordField | eval /', [ 'var0 = ', '`avg(doubleField)`', ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), ], ' ', - undefined, // make aware EVAL of the previous STATS command with the buggy field name from expression [[{ name: 'avg_doubleField_', type: 'double' }], undefined, undefined] ); testSuggestions( - 'from a | stats avg(doubleField), avg(kubernetes.something.something) by keywordField | eval ', + 'from a | stats avg(doubleField), avg(kubernetes.something.something) by keywordField | eval /', [ 'var0 = ', '`avg(doubleField)`', @@ -649,7 +609,6 @@ describe('autocomplete', () => { ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), ], ' ', - undefined, // make aware EVAL of the previous STATS command with the buggy field name from expression [ [ @@ -662,7 +621,7 @@ describe('autocomplete', () => { ); testSuggestions( - 'from a | eval a=round(doubleField), b=round()', + 'from a | eval a=round(doubleField), b=round(/)', [ ...getFieldNamesByType(roundParameterTypes), ...getFunctionSignaturesByReturnType( @@ -676,7 +635,7 @@ describe('autocomplete', () => { '(' ); // test that comma is correctly added to the suggestions if minParams is not reached yet - testSuggestions('from a | eval a=concat( ', [ + testSuggestions('from a | eval a=concat( /', [ ...getFieldNamesByType(['text', 'keyword']).map((v) => `${v}, `), ...getFunctionSignaturesByReturnType( 'eval', @@ -687,7 +646,7 @@ describe('autocomplete', () => { ).map((v) => ({ ...v, text: `${v.text},` })), ]); testSuggestions( - 'from a | eval a=concat(textField, ', + 'from a | eval a=concat(textField, /', [ ...getFieldNamesByType(['text', 'keyword']), ...getFunctionSignaturesByReturnType( @@ -702,7 +661,7 @@ describe('autocomplete', () => { ); // test that the arg type is correct after minParams testSuggestions( - 'from a | eval a=cidr_match(ipField, textField, ', + 'from a | eval a=cidr_match(ipField, textField, /', [ ...getFieldNamesByType('text'), ...getFunctionSignaturesByReturnType('eval', 'text', { scalar: true }, undefined, [ @@ -712,14 +671,14 @@ describe('autocomplete', () => { ' ' ); // test that comma is correctly added to the suggestions if minParams is not reached yet - testSuggestions('from a | eval a=cidr_match( ', [ + testSuggestions('from a | eval a=cidr_match(/', [ ...getFieldNamesByType('ip').map((v) => `${v}, `), ...getFunctionSignaturesByReturnType('eval', 'ip', { scalar: true }, undefined, [ 'cidr_match', ]).map((v) => ({ ...v, text: `${v.text},` })), ]); testSuggestions( - 'from a | eval a=cidr_match(ipField, ', + 'from a | eval a=cidr_match(ipField, /', [ ...getFieldNamesByType(['text', 'keyword']), ...getFunctionSignaturesByReturnType( @@ -739,7 +698,7 @@ describe('autocomplete', () => { for (const nesting of [1, 2, 3, 4]) { testSuggestions( - `from a | eval a=${Array(nesting).fill('round(').join('')}`, + `from a | eval a=${Array(nesting).fill('round(/').join('')}`, [ ...getFieldNamesByType(roundParameterTypes), ...getFunctionSignaturesByReturnType( @@ -757,33 +716,19 @@ describe('autocomplete', () => { const absParameterTypes = ['double', 'integer', 'long', 'unsigned_long'] as const; // Smoke testing for suggestions in previous position than the end of the statement - testSuggestions( - 'from a | eval var0 = abs(doubleField) | eval abs(var0)', - [ - ',', - '| ', - ...getFunctionSignaturesByReturnType('eval', 'any', { builtin: true, skipAssign: true }, [ - 'double', - ]), - ], - undefined, - 38 /* " " after abs(b) */ - ); - testSuggestions( - 'from a | eval var0 = abs(b) | eval abs(var0)', - [ - ...getFieldNamesByType(absParameterTypes), - ...getFunctionSignaturesByReturnType( - 'eval', - absParameterTypes, - { scalar: true }, - undefined, - ['abs'] - ), - ], - undefined, - 26 /* b column in abs */ - ); + testSuggestions('from a | eval var0 = abs(doubleField) / | eval abs(var0)', [ + ',', + '| ', + ...getFunctionSignaturesByReturnType('eval', 'any', { builtin: true, skipAssign: true }, [ + 'double', + ]), + ]); + testSuggestions('from a | eval var0 = abs(b/) | eval abs(var0)', [ + ...getFieldNamesByType(absParameterTypes), + ...getFunctionSignaturesByReturnType('eval', absParameterTypes, { scalar: true }, undefined, [ + 'abs', + ]), + ]); // Test suggestions for each possible param, within each signature variation, for each function for (const fn of evalFunctionDefinitions) { @@ -810,7 +755,9 @@ describe('autocomplete', () => { ); const getTypesFromParamDefs = (paramDefs: FunctionParameter[]): SupportedDataType[] => - Array.from(new Set(paramDefs.map((p) => p.type))).filter(isSupportedDataType); + Array.from(new Set(paramDefs.map((p) => p.type))).filter( + isSupportedDataType + ) as SupportedDataType[]; const suggestedConstants = param.literalSuggestions || param.literalOptions; @@ -823,7 +770,7 @@ describe('autocomplete', () => { }; testSuggestions( - `from a | eval ${fn.name}(${Array(i).fill('field').join(', ')}${i ? ',' : ''} )`, + `from a | eval ${fn.name}(${Array(i).fill('field').join(', ')}${i ? ',' : ''} /)`, suggestedConstants?.length ? suggestedConstants.map((option) => `"${option}"${requiresMoreArgs ? ', ' : ''}`) : [ @@ -835,7 +782,9 @@ describe('autocomplete', () => { ), ...getFunctionSignaturesByReturnType( 'eval', - getTypesFromParamDefs(acceptsFieldParamDefs), + getTypesFromParamDefs(acceptsFieldParamDefs).filter( + isReturnType + ) as FunctionReturnType[], { scalar: true }, undefined, [fn.name] @@ -847,7 +796,7 @@ describe('autocomplete', () => { testSuggestions( `from a | eval var0 = ${fn.name}(${Array(i).fill('field').join(', ')}${ i ? ',' : '' - } )`, + } /)`, suggestedConstants?.length ? suggestedConstants.map((option) => `"${option}"${requiresMoreArgs ? ', ' : ''}`) : [ @@ -859,7 +808,7 @@ describe('autocomplete', () => { ), ...getFunctionSignaturesByReturnType( 'eval', - getTypesFromParamDefs(acceptsFieldParamDefs), + getTypesFromParamDefs(acceptsFieldParamDefs) as FunctionReturnType[], { scalar: true }, undefined, [fn.name] @@ -883,7 +832,7 @@ describe('autocomplete', () => { const requiresMoreArgs = true; testSuggestions( - `from a | eval ${fn.name}(`, + `from a | eval ${fn.name}(/`, suggestedConstants?.length ? [...suggestedConstants.map((option) => `"${option}"${requiresMoreArgs ? ', ' : ''}`)] : [] @@ -891,13 +840,13 @@ describe('autocomplete', () => { } } - testSuggestions('from a | eval var0 = bucket(@timestamp, ', getUnitDuration(1), ' '); + testSuggestions('from a | eval var0 = bucket(@timestamp, /', getUnitDuration(1), ' '); describe('date math', () => { const dateSuggestions = timeUnitsToSuggest.map(({ name }) => name); // If a literal number is detected then suggest also date period keywords testSuggestions( - 'from a | eval a = 1 ', + 'from a | eval a = 1 /', [ ...dateSuggestions, ',', @@ -908,16 +857,10 @@ describe('autocomplete', () => { ], ' ' ); - testSuggestions('from a | eval a = 1 year ', [ - ',', - '| ', - ...getFunctionSignaturesByReturnType('eval', 'any', { builtin: true, skipAssign: true }, [ - 'time_interval', - ]), - ]); - testSuggestions('from a | eval a = 1 day + 2 ', [',', '| ']); + testSuggestions('from a | eval a = 1 year /', [',', '| ', 'IS NOT NULL', 'IS NULL']); + testSuggestions('from a | eval a = 1 day + 2 /', [',', '| ']); testSuggestions( - 'from a | eval 1 day + 2 ', + 'from a | eval 1 day + 2 /', [ ...dateSuggestions, ...getFunctionSignaturesByReturnType('eval', 'any', { builtin: true, skipAssign: true }, [ @@ -927,12 +870,12 @@ describe('autocomplete', () => { ' ' ); testSuggestions( - 'from a | eval var0=date_trunc()', + 'from a | eval var0=date_trunc(/)', getLiteralsByType('time_literal').map((t) => `${t}, `), '(' ); testSuggestions( - 'from a | eval var0=date_trunc(2 )', + 'from a | eval var0=date_trunc(2 /)', [...dateSuggestions.map((t) => `${t}, `), ','], ' ' ); @@ -940,26 +883,26 @@ describe('autocomplete', () => { }); describe('values suggestions', () => { - testSuggestions('FROM "a"', ['a ', 'b '], undefined, 7, [ + testSuggestions('FROM "a/"', ['a ', 'b '], undefined, [ , [ { name: 'a', hidden: false }, { name: 'b', hidden: false }, ], ]); - testSuggestions('FROM " "', [], ' '); + testSuggestions('FROM " /"', [], ' '); // TODO — re-enable these tests when we can support this case - testSuggestions.skip('FROM " a"', [], undefined, 9); - testSuggestions.skip('FROM "foo b"', [], undefined, 11); - testSuggestions('FROM a | WHERE tags == " "', [], ' '); - testSuggestions('FROM a | WHERE tags == """ """', [], ' '); - testSuggestions('FROM a | WHERE tags == "a"', [], undefined, 25); - testSuggestions('FROM a | EVAL tags == " "', [], ' '); - testSuggestions('FROM a | EVAL tags == "a"', [], undefined, 24); - testSuggestions('FROM a | STATS tags == " "', [], ' '); - testSuggestions('FROM a | STATS tags == "a"', [], undefined, 25); - testSuggestions('FROM a | GROK "a" "%{WORD:firstWord}"', [], undefined, 16); - testSuggestions('FROM a | DISSECT "a" "%{WORD:firstWord}"', [], undefined, 19); + testSuggestions.skip('FROM " a/"', []); + testSuggestions.skip('FROM "foo b/"', []); + testSuggestions('FROM a | WHERE tags == " /"', [], ' '); + testSuggestions('FROM a | WHERE tags == """ /"""', [], ' '); + testSuggestions('FROM a | WHERE tags == "a/"', []); + testSuggestions('FROM a | EVAL tags == " /"', [], ' '); + testSuggestions('FROM a | EVAL tags == "a"/', []); + testSuggestions('FROM a | STATS tags == " /"', [], ' '); + testSuggestions('FROM a | STATS tags == "a/"', []); + testSuggestions('FROM a | GROK "a/" "%{WORD:firstWord}"', []); + testSuggestions('FROM a | DISSECT "a/" "%{WORD:firstWord}"', []); }); describe('callbacks', () => { @@ -1009,39 +952,30 @@ describe('autocomplete', () => { describe('Invoke trigger kind (all commands)', () => { // source command testSuggestions( - 'f', - sourceCommands.map((cmd) => `${cmd.toUpperCase()} $0`), - undefined, - 1 + 'f/', + sourceCommands.map((cmd) => `${cmd.toUpperCase()} $0`) ); // pipe command testSuggestions( - 'FROM k | E', + 'FROM k | E/', commandDefinitions .filter(({ name }) => !sourceCommands.includes(name)) - .map(({ name }) => name.toUpperCase() + ' $0'), - undefined, - 10 + .map(({ name }) => name.toUpperCase() + ' $0') ); describe('function arguments', () => { // function argument - testSuggestions( - 'FROM kibana_sample_data_logs | EVAL TRIM(e)', - [ - ...getFieldNamesByType(['text', 'keyword']), - ...getFunctionSignaturesByReturnType( - 'eval', - ['text', 'keyword'], - { scalar: true }, - undefined, - ['trim'] - ), - ], - undefined, - 42 - ); + testSuggestions('FROM kibana_sample_data_logs | EVAL TRIM(e/)', [ + ...getFieldNamesByType(['text', 'keyword']), + ...getFunctionSignaturesByReturnType( + 'eval', + ['text', 'keyword'], + { scalar: true }, + undefined, + ['trim'] + ), + ]); // subsequent function argument const expectedDateDiff2ndArgSuggestions = [ @@ -1053,19 +987,14 @@ describe('autocomplete', () => { text: `${s.text},`, })), ]; - testSuggestions( - 'FROM a | EVAL DATE_DIFF("day", )', - expectedDateDiff2ndArgSuggestions, - undefined, - 31 - ); + testSuggestions('FROM a | EVAL DATE_DIFF("day", /)', expectedDateDiff2ndArgSuggestions); // trigger character case for comparison - testSuggestions('FROM a | EVAL DATE_DIFF("day", )', expectedDateDiff2ndArgSuggestions, ' '); + testSuggestions('FROM a | EVAL DATE_DIFF("day", /)', expectedDateDiff2ndArgSuggestions, ' '); }); // FROM source - testSuggestions('FROM k', ['index1 ', 'index2 '], undefined, 6, [ + testSuggestions('FROM k/', ['index1 ', 'index2 '], undefined, [ , [ { name: 'index1', hidden: false }, @@ -1074,178 +1003,126 @@ describe('autocomplete', () => { ]); // FROM source METADATA - testSuggestions('FROM index1 M', [',', 'METADATA $0', '| '], undefined, 13); + testSuggestions('FROM index1 M/', [',', 'METADATA $0', '| ']); // FROM source METADATA field - testSuggestions('FROM index1 METADATA _', METADATA_FIELDS, undefined, 22); + testSuggestions('FROM index1 METADATA _/', METADATA_FIELDS); // EVAL argument - testSuggestions( - 'FROM index1 | EVAL b', - [ - 'var0 = ', - ...getFieldNamesByType('any'), - ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), - ], - undefined, - 20 - ); + testSuggestions('FROM index1 | EVAL b/', [ + 'var0 = ', + ...getFieldNamesByType('any'), + ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), + ]); - testSuggestions( - 'FROM index1 | EVAL var0 = f', - [...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true })], - undefined, - 27 - ); + testSuggestions('FROM index1 | EVAL var0 = f/', [ + ...getFunctionSignaturesByReturnType('eval', 'any', { scalar: true }), + ]); // DISSECT field - // enable once https://github.com/elastic/kibana/issues/190070 is fixed - testSuggestions.skip( - 'FROM index1 | DISSECT b', - getFieldNamesByType(ESQL_STRING_TYPES), - undefined, - 23 - ); + testSuggestions('FROM index1 | DISSECT b/', getFieldNamesByType(ESQL_STRING_TYPES)); // DROP (first field) - testSuggestions('FROM index1 | DROP f', getFieldNamesByType('any'), undefined, 20); + testSuggestions('FROM index1 | DROP f/', getFieldNamesByType('any')); // DROP (subsequent field) - testSuggestions('FROM index1 | DROP field1, f', getFieldNamesByType('any'), undefined, 28); + testSuggestions('FROM index1 | DROP field1, f/', getFieldNamesByType('any')); // ENRICH policy testSuggestions( - 'FROM index1 | ENRICH p', - policies.map(({ name }) => getSafeInsertText(name)), - undefined, - 22 + 'FROM index1 | ENRICH p/', + policies.map(({ name }) => getSafeInsertText(name)) ); // ENRICH policy ON - testSuggestions('FROM index1 | ENRICH policy O', ['ON $0', 'WITH $0', '| '], undefined, 29); + testSuggestions('FROM index1 | ENRICH policy O/', ['ON $0', 'WITH $0', '| ']); // ENRICH policy ON field - testSuggestions('FROM index1 | ENRICH policy ON f', getFieldNamesByType('any'), undefined, 32); + testSuggestions('FROM index1 | ENRICH policy ON f/', getFieldNamesByType('any')); // ENRICH policy WITH policyfield - testSuggestions( - 'FROM index1 | ENRICH policy WITH v', - ['var0 = ', ...getPolicyFields('policy')], - undefined, - 34 - ); + testSuggestions('FROM index1 | ENRICH policy WITH v/', [ + 'var0 = ', + ...getPolicyFields('policy'), + ]); - testSuggestions( - 'FROM index1 | ENRICH policy WITH \tv', - ['var0 = ', ...getPolicyFields('policy')], - undefined, - 34 - ); + testSuggestions('FROM index1 | ENRICH policy WITH \tv/', [ + 'var0 = ', + ...getPolicyFields('policy'), + ]); // GROK field - // enable once https://github.com/elastic/kibana/issues/190070 - testSuggestions.skip( - 'FROM index1 | GROK f', - getFieldNamesByType(ESQL_STRING_TYPES), - undefined, - 20 - ); + testSuggestions('FROM index1 | GROK f/', getFieldNamesByType(ESQL_STRING_TYPES), undefined); // KEEP (first field) - testSuggestions('FROM index1 | KEEP f', getFieldNamesByType('any'), undefined, 20); + testSuggestions('FROM index1 | KEEP f/', getFieldNamesByType('any')); // KEEP (subsequent fields) testSuggestions( - 'FROM index1 | KEEP booleanField, f', - getFieldNamesByType('any').filter((name) => name !== 'booleanField'), - undefined, - 34 + 'FROM index1 | KEEP booleanField, f/', + getFieldNamesByType('any').filter((name) => name !== 'booleanField') ); // LIMIT argument - // Here we actually test that the invoke trigger kind does not work - // because it isn't very useful to see literal suggestions when typing a number - testSuggestions('FROM a | LIMIT 1', ['| '], undefined, 16); + // Here we actually test that the invoke trigger kind does NOT work + // the assumption is that it isn't very useful to see literal suggestions when already typing a number + // I'm not sure if this is true or not, but it's the current behavior + testSuggestions('FROM a | LIMIT 1/', ['| ']); // MV_EXPAND field - testSuggestions('FROM index1 | MV_EXPAND f', getFieldNamesByType('any'), undefined, 25); + testSuggestions('FROM index1 | MV_EXPAND f/', getFieldNamesByType('any')); // RENAME field - testSuggestions('FROM index1 | RENAME f', getFieldNamesByType('any'), undefined, 22); + testSuggestions('FROM index1 | RENAME f/', getFieldNamesByType('any')); // RENAME field AS - testSuggestions('FROM index1 | RENAME field A', ['AS $0'], undefined, 28); + testSuggestions('FROM index1 | RENAME field A/', ['AS $0']); // RENAME field AS var0 - testSuggestions('FROM index1 | RENAME field AS v', ['var0'], undefined, 31); + testSuggestions('FROM index1 | RENAME field AS v/', ['var0']); // SORT field - testSuggestions( - 'FROM index1 | SORT f', - [ - ...getFunctionSignaturesByReturnType('sort', 'any', { scalar: true }), - ...getFieldNamesByType('any').map((field) => `${field} `), - ], - undefined, - 20 - ); + testSuggestions('FROM index1 | SORT f/', [ + ...getFunctionSignaturesByReturnType('sort', 'any', { scalar: true }), + ...getFieldNamesByType('any').map((field) => `${field} `), + ]); // SORT field order - testSuggestions( - 'FROM index1 | SORT keywordField a', - ['ASC ', 'DESC ', ',', '| '], - undefined, - 33 - ); + testSuggestions('FROM index1 | SORT keywordField a/', ['ASC ', 'DESC ', ',', '| ']); // SORT field order nulls - testSuggestions( - 'FROM index1 | SORT keywordField ASC n', - ['NULLS FIRST ', 'NULLS LAST ', ',', '| '], - undefined, - 37 - ); + testSuggestions('FROM index1 | SORT keywordField ASC n/', [ + 'NULLS FIRST ', + 'NULLS LAST ', + ',', + '| ', + ]); // STATS argument - testSuggestions( - 'FROM index1 | STATS f', - [ - 'var0 = ', - ...getFunctionSignaturesByReturnType('stats', 'any', { scalar: true, agg: true }), - ], - undefined, - 21 - ); + testSuggestions('FROM index1 | STATS f/', [ + 'var0 = ', + ...getFunctionSignaturesByReturnType('stats', 'any', { scalar: true, agg: true }), + ]); // STATS argument BY - testSuggestions('FROM index1 | STATS AVG(booleanField) B', ['BY $0', ',', '| '], undefined, 39); + testSuggestions('FROM index1 | STATS AVG(booleanField) B/', ['BY $0', ',', '| ']); // STATS argument BY expression - testSuggestions( - 'FROM index1 | STATS field BY f', - [ - 'var0 = ', - ...getFunctionSignaturesByReturnType('stats', 'any', { grouping: true, scalar: true }), - ...getFieldNamesByType('any').map((field) => `${field} `), - ], - undefined, - 30 - ); + testSuggestions('FROM index1 | STATS field BY f/', [ + 'var0 = ', + ...getFunctionSignaturesByReturnType('stats', 'any', { grouping: true, scalar: true }), + ...getFieldNamesByType('any').map((field) => `${field} `), + ]); // WHERE argument - testSuggestions( - 'FROM index1 | WHERE f', - [ - ...getFieldNamesByType('any').map((field) => `${field} `), - ...getFunctionSignaturesByReturnType('where', 'any', { scalar: true }), - ], - undefined, - 22 - ); + testSuggestions('FROM index1 | WHERE f/', [ + ...getFieldNamesByType('any').map((field) => `${field} `), + ...getFunctionSignaturesByReturnType('where', 'any', { scalar: true }), + ]); // WHERE argument comparison testSuggestions( - 'FROM index1 | WHERE keywordField i', + 'FROM index1 | WHERE keywordField i/', getFunctionSignaturesByReturnType( 'where', 'boolean', @@ -1254,9 +1131,7 @@ describe('autocomplete', () => { }, undefined, ['and', 'or', 'not'] - ), - undefined, - 34 + ) ); }); @@ -1278,21 +1153,17 @@ describe('autocomplete', () => { // Source command testSuggestions( - 'F', - ['FROM $0', 'ROW $0', 'SHOW $0'].map(attachTriggerCommand).map(attachAsSnippet), - undefined, - 1 + 'F/', + ['FROM $0', 'ROW $0', 'SHOW $0'].map(attachTriggerCommand).map(attachAsSnippet) ); // Pipe command testSuggestions( - 'FROM a | E', + 'FROM a | E/', commandDefinitions .filter(({ name }) => !sourceCommands.includes(name)) .map(({ name }) => attachTriggerCommand(name.toUpperCase() + ' $0')) - .map(attachAsSnippet), // TODO consider making this check more fundamental - undefined, - 10 + .map(attachAsSnippet) // TODO consider making this check more fundamental ); describe('function arguments', () => { @@ -1301,10 +1172,8 @@ describe('autocomplete', () => { evalFunctionDefinitions.find(({ name }) => name === 'date_diff')?.signatures[0].params?.[0] .literalSuggestions ?? []; testSuggestions( - 'FROM a | EVAL DATE_DIFF()', - dateDiffFirstParamSuggestions.map((s) => `"${s}", `).map(attachTriggerCommand), - undefined, - 24 + 'FROM a | EVAL DATE_DIFF(/)', + dateDiffFirstParamSuggestions.map((s) => `"${s}", `).map(attachTriggerCommand) ); // field parameter @@ -1325,61 +1194,48 @@ describe('autocomplete', () => { })), ]; - testSuggestions( - 'FROM a | EVAL REPLACE()', - expectedStringSuggestionsWhenMoreArgsAreNeeded, - undefined, - 22 - ); + testSuggestions('FROM a | EVAL REPLACE(/)', expectedStringSuggestionsWhenMoreArgsAreNeeded); // subsequent parameter testSuggestions( - 'FROM a | EVAL REPLACE(keywordField, )', - expectedStringSuggestionsWhenMoreArgsAreNeeded, - undefined, - 36 + 'FROM a | EVAL REPLACE(keywordField, /)', + expectedStringSuggestionsWhenMoreArgsAreNeeded ); // final parameter — should not advance! - testSuggestions( - 'FROM a | EVAL REPLACE(keywordField, keywordField, )', - [ - ...getFieldNamesByType(ESQL_STRING_TYPES).map((field) => ({ - text: field, - command: undefined, - })), - ...getFunctionSignaturesByReturnType( - 'eval', - ESQL_STRING_TYPES, - { scalar: true }, - undefined, - ['replace'] - ), - ], - undefined, - 50 - ); + testSuggestions('FROM a | EVAL REPLACE(keywordField, keywordField, /)', [ + ...getFieldNamesByType(ESQL_STRING_TYPES).map((field) => ({ + text: field, + command: undefined, + })), + ...getFunctionSignaturesByReturnType( + 'eval', + ESQL_STRING_TYPES, + { scalar: true }, + undefined, + ['replace'] + ), + ]); // Trigger character because this is how it will actually be... the user will press // space-bar... this may change if we fix the tokenization of timespan literals // such that "2 days" is a single monaco token testSuggestions( - 'FROM a | EVAL DATE_TRUNC(2 )', + 'FROM a | EVAL DATE_TRUNC(2 /)', [...timeUnitsToSuggest.map((s) => `${s.name}, `).map(attachTriggerCommand), ','], ' ' ); }); // PIPE (|) - testSuggestions( - 'FROM a ', - [attachTriggerCommand('| '), ',', attachAsSnippet(attachTriggerCommand('METADATA $0'))], - undefined, - 7 - ); + testSuggestions('FROM a /', [ + attachTriggerCommand('| '), + ',', + attachAsSnippet(attachTriggerCommand('METADATA $0')), + ]); // Assignment - testSuggestions(`FROM a | ENRICH policy on b with `, [ + testSuggestions(`FROM a | ENRICH policy on b with /`, [ attachTriggerCommand('var0 = '), ...getPolicyFields('policy'), ]); @@ -1389,13 +1245,12 @@ describe('autocomplete', () => { // Using an Invoke trigger kind here because that's what Monaco uses when the show suggestions // action is triggered (e.g. accepting the "FROM" suggestion) testSuggestions( - 'FROM ', + 'FROM /', [ { text: 'index1 ', command: TRIGGER_SUGGESTION_COMMAND }, { text: 'index2 ', command: TRIGGER_SUGGESTION_COMMAND }, ], undefined, - 5, [ , [ @@ -1406,63 +1261,53 @@ describe('autocomplete', () => { ); // FROM source METADATA - testSuggestions( - 'FROM index1 M', - [',', attachAsSnippet(attachTriggerCommand('METADATA $0')), '| '], - undefined, - 13 - ); + testSuggestions('FROM index1 M/', [ + ',', + attachAsSnippet(attachTriggerCommand('METADATA $0')), + '| ', + ]); // LIMIT number - testSuggestions('FROM a | LIMIT ', ['10 ', '100 ', '1000 '].map(attachTriggerCommand)); + testSuggestions('FROM a | LIMIT /', ['10 ', '100 ', '1000 '].map(attachTriggerCommand)); // SORT field testSuggestions( - 'FROM a | SORT ', + 'FROM a | SORT /', [ ...getFieldNamesByType('any').map((field) => `${field} `), ...getFunctionSignaturesByReturnType('sort', 'any', { scalar: true }), - ].map(attachTriggerCommand), - undefined, - 14 + ].map(attachTriggerCommand) ); // SORT field order - testSuggestions( - 'FROM a | SORT field ', - [',', ...['ASC ', 'DESC ', '| '].map(attachTriggerCommand)], - undefined, - 20 - ); + testSuggestions('FROM a | SORT field /', [ + ',', + ...['ASC ', 'DESC ', '| '].map(attachTriggerCommand), + ]); // SORT field order nulls - testSuggestions( - 'FROM a | SORT field ASC ', - [',', ...['NULLS FIRST ', 'NULLS LAST ', '| '].map(attachTriggerCommand)], - undefined, - 24 - ); + testSuggestions('FROM a | SORT field ASC /', [ + ',', + ...['NULLS FIRST ', 'NULLS LAST ', '| '].map(attachTriggerCommand), + ]); // STATS argument testSuggestions( - 'FROM a | STATS ', + 'FROM a | STATS /', [ 'var0 = ', ...getFunctionSignaturesByReturnType('stats', 'any', { scalar: true, agg: true }).map( attachAsSnippet ), - ].map(attachTriggerCommand), - undefined, - 15 + ].map(attachTriggerCommand) ); // STATS argument BY - testSuggestions( - 'FROM a | STATS AVG(numberField) ', - [',', attachAsSnippet(attachTriggerCommand('BY $0')), attachTriggerCommand('| ')], - undefined, - 32 - ); + testSuggestions('FROM a | STATS AVG(numberField) /', [ + ',', + attachAsSnippet(attachTriggerCommand('BY $0')), + attachTriggerCommand('| '), + ]); // STATS argument BY field const allByCompatibleFunctions = getFunctionSignaturesByReturnType( @@ -1476,48 +1321,33 @@ describe('autocomplete', () => { undefined, 'by' ); - testSuggestions( - 'FROM a | STATS AVG(numberField) BY ', - [ - attachTriggerCommand('var0 = '), - ...getFieldNamesByType('any') - .map((field) => `${field} `) - .map(attachTriggerCommand), - ...allByCompatibleFunctions, - ], - undefined, - 35 - ); + testSuggestions('FROM a | STATS AVG(numberField) BY /', [ + attachTriggerCommand('var0 = '), + ...getFieldNamesByType('any') + .map((field) => `${field} `) + .map(attachTriggerCommand), + ...allByCompatibleFunctions, + ]); // STATS argument BY assignment (checking field suggestions) - testSuggestions( - 'FROM a | STATS AVG(numberField) BY var0 = ', - [ - ...getFieldNamesByType('any') - .map((field) => `${field} `) - .map(attachTriggerCommand), - ...allByCompatibleFunctions, - ], - undefined, - 41 - ); + testSuggestions('FROM a | STATS AVG(numberField) BY var0 = /', [ + ...getFieldNamesByType('any') + .map((field) => `${field} `) + .map(attachTriggerCommand), + ...allByCompatibleFunctions, + ]); // WHERE argument (field suggestions) - testSuggestions( - 'FROM a | WHERE ', - [ - ...getFieldNamesByType('any') - .map((field) => `${field} `) - .map(attachTriggerCommand), - ...getFunctionSignaturesByReturnType('where', 'any', { scalar: true }).map(attachAsSnippet), - ], - undefined, - 15 - ); + testSuggestions('FROM a | WHERE /', [ + ...getFieldNamesByType('any') + .map((field) => `${field} `) + .map(attachTriggerCommand), + ...getFunctionSignaturesByReturnType('where', 'any', { scalar: true }).map(attachAsSnippet), + ]); // WHERE argument comparison testSuggestions( - 'FROM a | WHERE keywordField ', + 'FROM a | WHERE keywordField /', getFunctionSignaturesByReturnType( 'where', 'boolean', @@ -1525,9 +1355,169 @@ describe('autocomplete', () => { builtin: true, }, ['keyword'] - ).map((s) => (s.text.toLowerCase().includes('null') ? s : attachTriggerCommand(s))), - undefined, - 28 + ).map((s) => (s.text.toLowerCase().includes('null') ? s : attachTriggerCommand(s))) ); + describe('field lists', () => { + // KEEP field + testSuggestions('FROM a | KEEP /', getFieldNamesByType('any').map(attachTriggerCommand)); + testSuggestions( + 'FROM a | KEEP d/', + getFieldNamesByType('any') + .map((text) => ({ + text, + rangeToReplace: { start: 15, end: 16 }, + })) + .map(attachTriggerCommand) + ); + testSuggestions( + 'FROM a | KEEP doubleFiel/', + getFieldNamesByType('any').map(attachTriggerCommand) + ); + testSuggestions( + 'FROM a | KEEP doubleField/', + ['doubleField, ', 'doubleField | '] + .map((text) => ({ + text, + filterText: 'doubleField', + rangeToReplace: { start: 15, end: 26 }, + })) + .map(attachTriggerCommand) + ); + testSuggestions('FROM a | KEEP doubleField /', ['| ', ',']); + + // Let's get funky with the field names + testSuggestions( + 'FROM a | KEEP @timestamp/', + ['@timestamp, ', '@timestamp | '] + .map((text) => ({ + text, + filterText: '@timestamp', + rangeToReplace: { start: 15, end: 25 }, + })) + .map(attachTriggerCommand), + undefined, + [[{ name: '@timestamp', type: 'date' }]] + ); + testSuggestions( + 'FROM a | KEEP foo.bar/', + ['foo.bar, ', 'foo.bar | '] + .map((text) => ({ + text, + filterText: 'foo.bar', + rangeToReplace: { start: 15, end: 22 }, + })) + .map(attachTriggerCommand), + undefined, + [[{ name: 'foo.bar', type: 'double' }]] + ); + + // @todo re-enable these tests when we can use AST to support this case + testSuggestions.skip('FROM a | KEEP `foo.bar`/', ['foo.bar, ', 'foo.bar | '], undefined, [ + [{ name: 'foo.bar', type: 'double' }], + ]); + testSuggestions.skip('FROM a | KEEP `foo`.`bar`/', ['foo.bar, ', 'foo.bar | '], undefined, [ + [{ name: 'foo.bar', type: 'double' }], + ]); + testSuggestions.skip('FROM a | KEEP `any#Char$Field`/', [ + '`any#Char$Field`, ', + '`any#Char$Field` | ', + ]); + + // Subsequent fields + testSuggestions( + 'FROM a | KEEP doubleField, dateFiel/', + getFieldNamesByType('any') + .filter((s) => s !== 'doubleField') + .map(attachTriggerCommand) + ); + testSuggestions('FROM a | KEEP doubleField, dateField/', ['dateField, ', 'dateField | ']); + }); + }); + + describe('Replacement ranges are attached when needed', () => { + testSuggestions('FROM a | WHERE doubleField IS NOT N/', [ + { text: 'IS NOT NULL', rangeToReplace: { start: 28, end: 35 } }, + { text: 'IS NULL', rangeToReplace: { start: 35, end: 35 } }, + '!= $0', + '< $0', + '<= $0', + '== $0', + '> $0', + '>= $0', + 'IN $0', + ]); + testSuggestions('FROM a | WHERE doubleField IS N/', [ + { text: 'IS NOT NULL', rangeToReplace: { start: 28, end: 31 } }, + { text: 'IS NULL', rangeToReplace: { start: 28, end: 31 } }, + { text: '!= $0', rangeToReplace: { start: 31, end: 31 } }, + '< $0', + '<= $0', + '== $0', + '> $0', + '>= $0', + 'IN $0', + ]); + testSuggestions('FROM a | EVAL doubleField IS NOT N/', [ + { text: 'IS NOT NULL', rangeToReplace: { start: 27, end: 34 } }, + 'IS NULL', + '% $0', + '* $0', + '+ $0', + '- $0', + '/ $0', + '!= $0', + '< $0', + '<= $0', + '== $0', + '> $0', + '>= $0', + 'IN $0', + ]); + testSuggestions('FROM a | SORT doubleField IS NOT N/', [ + { text: 'IS NOT NULL', rangeToReplace: { start: 27, end: 34 } }, + 'IS NULL', + '% $0', + '* $0', + '+ $0', + '- $0', + '/ $0', + '!= $0', + '< $0', + '<= $0', + '== $0', + '> $0', + '>= $0', + 'IN $0', + ]); + describe('dot-separated field names', () => { + testSuggestions( + 'FROM a | KEEP field.nam/', + [{ text: 'field.name', rangeToReplace: { start: 15, end: 24 } }], + undefined, + [[{ name: 'field.name', type: 'double' }]] + ); + // multi-line + testSuggestions( + 'FROM a\n| KEEP field.nam/', + [{ text: 'field.name', rangeToReplace: { start: 15, end: 24 } }], + undefined, + [[{ name: 'field.name', type: 'double' }]] + ); + // triple separator + testSuggestions( + 'FROM a\n| KEEP field.name.f/', + [{ text: 'field.name.foo', rangeToReplace: { start: 15, end: 27 } }], + undefined, + [[{ name: 'field.name.foo', type: 'double' }]] + ); + // whitespace — we can't support this case yet because + // we are relying on string checking instead of the AST :( + testSuggestions.skip( + 'FROM a | KEEP field . n/', + [{ text: 'field . name', rangeToReplace: { start: 15, end: 23 } }], + undefined, + [[{ name: 'field.name', type: 'double' }]] + ); + }); }); }); diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts index e775c3f05fe5f..556e4860738d7 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts @@ -20,7 +20,7 @@ import { partition } from 'lodash'; import { ESQL_NUMBER_TYPES, compareTypesWithLiterals, isNumericType } from '../shared/esql_types'; import type { EditorContext, SuggestionRawDefinition } from './types'; import { - lookupColumn, + getColumnForASTNode, getCommandDefinition, getCommandOption, getFunctionDefinition, @@ -46,6 +46,7 @@ import { getColumnExists, findPreviousWord, noCaseCompare, + getColumnByName, } from '../shared/helpers'; import { collectVariables, excludeVariablesFromCurrentCommand } from '../shared/variables'; import type { ESQLPolicy, ESQLRealField, ESQLVariable, ReferenceMaps } from '../validation/types'; @@ -76,6 +77,7 @@ import { buildValueDefinitions, getDateLiterals, buildFieldsDefinitionsWithMetadata, + TRIGGER_SUGGESTION_COMMAND, } from './factories'; import { EDITOR_MARKER, SINGLE_BACKTICK, METADATA_FIELDS } from '../shared/constants'; import { getAstContext, removeMarkerArgFromArgsList } from '../shared/context'; @@ -88,6 +90,7 @@ import { import { ESQLCallbacks } from '../shared/types'; import { getFunctionsToIgnoreForStats, + getOverlapRange, getParamAtPosition, getQueryForFields, getSourcesFromCommands, @@ -95,7 +98,13 @@ import { isAggFunctionUsedAlready, removeQuoteForSuggestedSources, } from './helper'; -import { FunctionParameter, FunctionReturnType, SupportedDataType } from '../definitions/types'; +import { + FunctionParameter, + FunctionReturnType, + SupportedDataType, + isParameterType, + isReturnType, +} from '../definitions/types'; type GetSourceFn = () => Promise; type GetDataStreamsForIntegrationFn = ( @@ -104,7 +113,7 @@ type GetDataStreamsForIntegrationFn = ( type GetFieldsByTypeFn = ( type: string | string[], ignored?: string[], - options?: { advanceCursorAndOpenSuggestions?: boolean; addComma?: boolean } + options?: { advanceCursor?: boolean; openSuggestions?: boolean; addComma?: boolean } ) => Promise; type GetFieldsMapFn = () => Promise>; type GetPoliciesFn = () => Promise; @@ -349,8 +358,8 @@ function getSourcesRetriever(resourceRetriever?: ESQLCallbacks) { return buildSourcesDefinitions( list .filter(({ hidden }) => !hidden) - .map(({ name, dataStreams, title }) => { - return { name, isIntegration: Boolean(dataStreams && dataStreams.length), title }; + .map(({ name, dataStreams, title, type }) => { + return { name, isIntegration: Boolean(dataStreams && dataStreams.length), title, type }; }) ); }; @@ -381,7 +390,7 @@ function workoutBuiltinOptions( ): { skipAssign: boolean } { // skip assign operator if it's a function or an existing field to avoid promoting shadowing return { - skipAssign: Boolean(!isColumnItem(nodeArg) || lookupColumn(nodeArg, references)), + skipAssign: Boolean(!isColumnItem(nodeArg) || getColumnForASTNode(nodeArg, references)), }; } @@ -455,7 +464,7 @@ function extractFinalTypeFromArg( return arg.literalType; } if (isColumnItem(arg)) { - const hit = lookupColumn(arg, references); + const hit = getColumnForASTNode(arg, references); if (hit) { return hit.type; } @@ -656,31 +665,81 @@ async function getExpressionSuggestionsByType( } // Suggest fields or variables if (argDef.type === 'column' || argDef.type === 'any') { - // ... | if ((!nodeArg || isNewExpression) && !endsWithNot) { - suggestions.push( - ...(await getFieldsOrFunctionsSuggestions( - [argDef.innerType || 'any'], - command.name, - option?.name, - getFieldsByType, - { - // TODO instead of relying on canHaveAssignments and other command name checks - // we should have a more generic way to determine if a command can have functions. - // I think it comes down to the definition of 'column' since 'any' should always - // include functions. - functions: canHaveAssignments || command.name === 'sort', - fields: !argDef.constantOnly, - variables: anyVariables, - literals: argDef.constantOnly, - }, - { - ignoreFields: isNewExpression - ? command.args.filter(isColumnItem).map(({ name }) => name) - : [], - } - )) + const fieldSuggestions = await getFieldsOrFunctionsSuggestions( + argDef.innerTypes || ['any'], + command.name, + option?.name, + getFieldsByType, + { + // TODO instead of relying on canHaveAssignments and other command name checks + // we should have a more generic way to determine if a command can have functions. + // I think it comes down to the definition of 'column' since 'any' should always + // include functions. + functions: canHaveAssignments || command.name === 'sort', + fields: !argDef.constantOnly, + variables: anyVariables, + literals: argDef.constantOnly, + }, + { + ignoreFields: isNewExpression + ? command.args.filter(isColumnItem).map(({ name }) => name) + : [], + } ); + + /** + * @TODO — this string manipulation is crude and can't support all cases + * Checking for a partial word and computing the replacement range should + * really be done using the AST node, but we'll have to refactor further upstream + * to make that available. This is a quick fix to support the most common case. + */ + const words = innerText.split(/\s+/); + const lastWord = words[words.length - 1]; + if (lastWord !== '') { + // ... | + + const rangeToReplace = { + start: innerText.length - lastWord.length + 1, + end: innerText.length + 1, + }; + + // check if lastWord is an existing field + const column = getColumnByName(lastWord, references); + if (column) { + // now we know that the user has already entered a column, + // so suggest comma and pipe + // const NON_ALPHANUMERIC_REGEXP = /[^a-zA-Z\d]/g; + // const textToUse = lastWord.replace(NON_ALPHANUMERIC_REGEXP, ''); + const textToUse = lastWord; + return [ + { ...pipeCompleteItem, text: ' | ' }, + { ...commaCompleteItem, text: ', ' }, + ].map((s) => ({ + ...s, + filterText: textToUse, + text: textToUse + s.text, + command: TRIGGER_SUGGESTION_COMMAND, + rangeToReplace, + })); + } else { + suggestions.push( + ...fieldSuggestions.map((suggestion) => ({ + ...suggestion, + command: TRIGGER_SUGGESTION_COMMAND, + rangeToReplace, + })) + ); + } + } else { + // ... | + suggestions.push( + ...fieldSuggestions.map((suggestion) => ({ + ...suggestion, + command: TRIGGER_SUGGESTION_COMMAND, + })) + ); + } } } if (argDef.type === 'function' || argDef.type === 'any') { @@ -688,7 +747,7 @@ async function getExpressionSuggestionsByType( // ... | STATS a // ... | EVAL a const nodeArgType = extractFinalTypeFromArg(nodeArg, references); - if (nodeArgType) { + if (isParameterType(nodeArgType)) { suggestions.push( ...getBuiltinCompatibleFunctionDefinition( command.name, @@ -746,7 +805,7 @@ async function getExpressionSuggestionsByType( ...getBuiltinCompatibleFunctionDefinition( command.name, undefined, - nodeArgType || 'any', + isParameterType(nodeArgType) ? nodeArgType : 'any', undefined, workoutBuiltinOptions(rightArg, references) ) @@ -784,6 +843,7 @@ async function getExpressionSuggestionsByType( const nodeArgType = extractFinalTypeFromArg(nodeArg, references); suggestions.push( ...(await getBuiltinFunctionNextArgument( + innerText, command, option, argDef, @@ -836,7 +896,7 @@ async function getExpressionSuggestionsByType( // ... | // In this case start suggesting something not strictly based on type suggestions.push( - ...(await getFieldsByType('any', [], { advanceCursorAndOpenSuggestions: true })), + ...(await getFieldsByType('any', [], { advanceCursor: true, openSuggestions: true })), ...(await getFieldsOrFunctionsSuggestions( ['any'], command.name, @@ -859,7 +919,7 @@ async function getExpressionSuggestionsByType( // i.e. ... | field >= // i.e. ... | field > 0 // i.e. ... | field + otherN - + // "FROM a | WHERE doubleField IS NOT N" if (nodeArgType) { if (isFunctionItem(nodeArg)) { if (nodeArg.name === 'not') { @@ -879,6 +939,7 @@ async function getExpressionSuggestionsByType( } else { suggestions.push( ...(await getBuiltinFunctionNextArgument( + innerText, command, option, argDef, @@ -889,7 +950,7 @@ async function getExpressionSuggestionsByType( )) ); } - } else { + } else if (isParameterType(nodeArgType)) { // i.e. ... | field suggestions.push( ...getBuiltinCompatibleFunctionDefinition( @@ -906,7 +967,7 @@ async function getExpressionSuggestionsByType( } } if (argDef.type === 'source') { - if (argDef.innerType === 'policy') { + if (argDef.innerTypes?.includes('policy')) { // ... | ENRICH const policies = await getPolicies(); suggestions.push(...(policies.length ? policies : [buildNoPoliciesAvailableDefinition()])); @@ -988,6 +1049,7 @@ async function getExpressionSuggestionsByType( } async function getBuiltinFunctionNextArgument( + queryText: string, command: ESQLCommand, option: ESQLCommandOption | undefined, argDef: { type: string }, @@ -1006,7 +1068,7 @@ async function getBuiltinFunctionNextArgument( ...getBuiltinCompatibleFunctionDefinition( command.name, option?.name, - nodeArgType || 'any', + isParameterType(nodeArgType) ? nodeArgType : 'any', undefined, workoutBuiltinOptions(nodeArg, references) ) @@ -1058,7 +1120,11 @@ async function getBuiltinFunctionNextArgument( if (isFnComplete.reason === 'wrongTypes') { if (nestedType) { // suggest something to complete the builtin function - if (nestedType !== argDef.type) { + if ( + nestedType !== argDef.type && + isParameterType(nestedType) && + isReturnType(argDef.type) + ) { suggestions.push( ...getBuiltinCompatibleFunctionDefinition( command.name, @@ -1072,7 +1138,16 @@ async function getBuiltinFunctionNextArgument( } } } - return suggestions; + return suggestions.map((s) => { + const overlap = getOverlapRange(queryText, s.text); + return { + ...s, + rangeToReplace: { + start: overlap.start, + end: overlap.end, + }, + }; + }); } function pushItUpInTheList(suggestions: SuggestionRawDefinition[], shouldPromote: boolean) { @@ -1115,7 +1190,8 @@ async function getFieldsOrFunctionsSuggestions( const filteredFieldsByType = pushItUpInTheList( (await (fields ? getFieldsByType(types, ignoreFields, { - advanceCursorAndOpenSuggestions: commandName === 'sort', + advanceCursor: commandName === 'sort', + openSuggestions: commandName === 'sort', }) : [])) as SuggestionRawDefinition[], functions @@ -1344,7 +1420,8 @@ async function getFunctionArgsSuggestions( ...pushItUpInTheList( await getFieldsByType(getTypesFromParamDefs(paramDefsWhichSupportFields) as string[], [], { addComma: shouldAddComma, - advanceCursorAndOpenSuggestions: hasMoreMandatoryArgs, + advanceCursor: hasMoreMandatoryArgs, + openSuggestions: hasMoreMandatoryArgs, }), true ) @@ -1636,6 +1713,7 @@ async function getOptionArgsSuggestions( if (isFunctionItem(nodeArg) && !isFunctionArgComplete(nodeArg, references).complete) { suggestions.push( ...(await getBuiltinFunctionNextArgument( + innerText, command, option, { type: argDef?.type || 'any' }, @@ -1686,7 +1764,8 @@ async function getOptionArgsSuggestions( } else if (isNewExpression || (isAssignment(nodeArg) && !isAssignmentComplete(nodeArg))) { suggestions.push( ...(await getFieldsByType(types[0] === 'column' ? ['any'] : types, [], { - advanceCursorAndOpenSuggestions: true, + advanceCursor: true, + openSuggestions: true, })) ); diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts index c9d0185d5c301..4ac3b3b24d1f6 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts @@ -29,7 +29,7 @@ const allFunctions = statsAggregationFunctionDefinitions .concat(evalFunctionDefinitions) .concat(groupingFunctionDefinitions); -export const TIME_SYSTEM_PARAMS = ['?start', '?end']; +export const TIME_SYSTEM_PARAMS = ['?t_start', '?t_end']; export const TRIGGER_SUGGESTION_COMMAND = { title: 'Trigger Suggestion Dialog', @@ -132,7 +132,7 @@ export function getSuggestionCommandDefinition( export const buildFieldsDefinitionsWithMetadata = ( fields: ESQLRealField[], - options?: { advanceCursorAndOpenSuggestions?: boolean; addComma?: boolean } + options?: { advanceCursor?: boolean; openSuggestions?: boolean; addComma?: boolean } ): SuggestionRawDefinition[] => { return fields.map((field) => { const description = field.metadata?.description; @@ -143,7 +143,7 @@ export const buildFieldsDefinitionsWithMetadata = ( text: getSafeInsertText(field.name) + (options?.addComma ? ',' : '') + - (options?.advanceCursorAndOpenSuggestions ? ' ' : ''), + (options?.advanceCursor ? ' ' : ''), kind: 'Variable', detail: titleCaseType, documentation: description @@ -156,7 +156,7 @@ ${description}`, : undefined, // If there is a description, it is a field from ECS, so it should be sorted to the top sortText: description ? '1D' : 'D', - command: options?.advanceCursorAndOpenSuggestions ? TRIGGER_SUGGESTION_COMMAND : undefined, + command: options?.openSuggestions ? TRIGGER_SUGGESTION_COMMAND : undefined, }; }); }; @@ -187,9 +187,9 @@ export const buildVariablesDefinitions = (variables: string[]): SuggestionRawDef })); export const buildSourcesDefinitions = ( - sources: Array<{ name: string; isIntegration: boolean; title?: string }> + sources: Array<{ name: string; isIntegration: boolean; title?: string; type?: string }> ): SuggestionRawDefinition[] => - sources.map(({ name, isIntegration, title }) => ({ + sources.map(({ name, isIntegration, title, type }) => ({ label: title ?? name, text: getSafeInsertSourceText(name) + (!isIntegration ? ' ' : ''), isSnippet: isIntegration, @@ -199,7 +199,10 @@ export const buildSourcesDefinitions = ( defaultMessage: `Integration`, }) : i18n.translate('kbn-esql-validation-autocomplete.esql.autocomplete.sourceDefinition', { - defaultMessage: `Index`, + defaultMessage: '{type}', + values: { + type: type ?? 'Index', + }, }), sortText: 'A', command: TRIGGER_SUGGESTION_COMMAND, diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts index 65f6601c51c13..7d4c8c9cc111e 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts @@ -92,3 +92,42 @@ export function getSupportedTypesForBinaryOperators( .map(({ params }) => params[1].type) : [previousType]; } + +/** + * Checks the suggestion text for overlap with the current query. + * + * This is useful to determine the range of the existing query that should be + * replaced if the suggestion is accepted. + * + * For example + * QUERY: FROM source | WHERE field IS NO + * SUGGESTION: IS NOT NULL + * + * The overlap is "IS NO" and the range to replace is "IS NO" in the query. + * + * @param query + * @param suggestionText + * @returns + */ +export function getOverlapRange( + query: string, + suggestionText: string +): { start: number; end: number } { + let overlapLength = 0; + + // Convert both strings to lowercase for case-insensitive comparison + const lowerQuery = query.toLowerCase(); + const lowerSuggestionText = suggestionText.toLowerCase(); + + for (let i = 0; i <= lowerSuggestionText.length; i++) { + const substr = lowerSuggestionText.substring(0, i); + if (lowerQuery.endsWith(substr)) { + overlapLength = i; + } + } + + return { + start: Math.min(query.length - overlapLength + 1, query.length), + end: query.length, + }; +} diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/types.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/types.ts index f431eb9a27145..dc2624add8273 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/types.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/types.ts @@ -27,6 +27,8 @@ export interface SuggestionRawDefinition { label: string; /* The actual text to insert into the editor */ text: string; + /* Text to use for filtering the suggestions */ + filterText?: string; /** * Should the text be inserted as a snippet? * That is usually used for special behaviour like moving the cursor in a specific position @@ -57,6 +59,13 @@ export interface SuggestionRawDefinition { title: string; id: string; }; + /** + * The range that should be replaced when the suggestion is applied + */ + rangeToReplace?: { + start: number; + end: number; + }; } export interface EditorContext { diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/aggs.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/aggs.ts index 262d7a2fc7b32..4ce0ad1a0f230 100644 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/aggs.ts +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/aggs.ts @@ -155,6 +155,18 @@ export const statsAggregationFunctionDefinitions: FunctionDefinition[] = [ params: [{ name: 'column', type: 'ip', noNestingFunctions: true }], returnType: 'ip', }, + { + params: [{ name: 'column', type: 'version', noNestingFunctions: true }], + returnType: 'version', + }, + { + params: [{ name: 'column', type: 'keyword', noNestingFunctions: true }], + returnType: 'keyword', + }, + { + params: [{ name: 'column', type: 'text', noNestingFunctions: true }], + returnType: 'text', + }, ], examples: [`from index | stats result = max(field)`, `from index | stats max(field)`], }, @@ -186,6 +198,18 @@ export const statsAggregationFunctionDefinitions: FunctionDefinition[] = [ params: [{ name: 'column', type: 'ip', noNestingFunctions: true }], returnType: 'ip', }, + { + params: [{ name: 'column', type: 'version', noNestingFunctions: true }], + returnType: 'version', + }, + { + params: [{ name: 'column', type: 'keyword', noNestingFunctions: true }], + returnType: 'keyword', + }, + { + params: [{ name: 'column', type: 'text', noNestingFunctions: true }], + returnType: 'text', + }, ], examples: [`from index | stats result = min(field)`, `from index | stats min(field)`], }, diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/commands.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/commands.ts index 1718841711602..2e67461f073c2 100644 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/commands.ts +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/commands.ts @@ -415,8 +415,7 @@ export const commandDefinitions: CommandDefinition[] = [ signature: { multipleParams: false, params: [ - // innerType: 'string' is interpreted as keyword and text (see columnParamsWithInnerTypes) - { name: 'column', type: 'column', innerType: 'string' }, + { name: 'column', type: 'column', innerTypes: ['keyword', 'text'] }, { name: 'pattern', type: 'string', constantOnly: true }, ], }, @@ -433,8 +432,7 @@ export const commandDefinitions: CommandDefinition[] = [ signature: { multipleParams: false, params: [ - // innerType: 'string' is interpreted as keyword and text (see columnParamsWithInnerTypes) - { name: 'column', type: 'column', innerType: 'string' }, + { name: 'column', type: 'column', innerTypes: ['keyword', 'text'] }, { name: 'pattern', type: 'string', constantOnly: true }, ], }, @@ -449,7 +447,7 @@ export const commandDefinitions: CommandDefinition[] = [ modes: [], signature: { multipleParams: false, - params: [{ name: 'column', type: 'column', innerType: 'any' }], + params: [{ name: 'column', type: 'column', innerTypes: ['any'] }], }, }, { @@ -467,7 +465,7 @@ export const commandDefinitions: CommandDefinition[] = [ modes: [ENRICH_MODES], signature: { multipleParams: false, - params: [{ name: 'policyName', type: 'source', innerType: 'policy' }], + params: [{ name: 'policyName', type: 'source', innerTypes: ['policy'] }], }, }, ]; diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/functions.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/functions.ts index 14626048ced92..c627bc0a62176 100644 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/functions.ts +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/functions.ts @@ -2737,7 +2737,7 @@ const logDefinition: FunctionDefinition = { // do not really care here about the base and field // just need to check both values are not negative for (const arg of fnDef.args) { - if (isLiteralItem(arg) && typeof arg.value === 'number' && arg.value < 0) { + if (isLiteralItem(arg) && Number(arg.value) < 0) { messages.push({ type: 'warning' as const, code: 'logOfNegativeValue', @@ -2820,7 +2820,7 @@ const log10Definition: FunctionDefinition = { // do not really care here about the base and field // just need to check both values are not negative for (const arg of fnDef.args) { - if (isLiteralItem(arg) && typeof arg.value === 'number' && arg.value < 0) { + if (isLiteralItem(arg) && Number(arg.value) < 0) { messages.push({ type: 'warning' as const, code: 'logOfNegativeValue', @@ -4145,6 +4145,160 @@ const mvMinDefinition: FunctionDefinition = { ], }; +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const mvPercentileDefinition: FunctionDefinition = { + type: 'eval', + name: 'mv_percentile', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.mv_percentile', { + defaultMessage: + 'Converts a multivalued field into a single valued field containing the value at which a certain percentage of observed values occur.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'percentile', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'percentile', + type: 'integer', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'percentile', + type: 'long', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'percentile', + type: 'double', + optional: false, + }, + ], + returnType: 'integer', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'percentile', + type: 'integer', + optional: false, + }, + ], + returnType: 'integer', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'percentile', + type: 'long', + optional: false, + }, + ], + returnType: 'integer', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'percentile', + type: 'double', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'percentile', + type: 'integer', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'percentile', + type: 'long', + optional: false, + }, + ], + returnType: 'long', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics', 'eval', 'where', 'row', 'sort'], + supportedOptions: ['by'], + validate: undefined, + examples: [ + 'ROW values = [5, 5, 10, 12, 5000]\n| EVAL p50 = MV_PERCENTILE(values, 50), median = MV_MEDIAN(values)', + ], +}; + // Do not edit this manually... generated by scripts/generate_function_definitions.ts const mvPseriesWeightedSumDefinition: FunctionDefinition = { type: 'eval', @@ -4174,7 +4328,7 @@ const mvPseriesWeightedSumDefinition: FunctionDefinition = { returnType: 'double', }, ], - supportedCommands: ['stats', 'metrics', 'eval', 'where', 'row', 'sort'], + supportedCommands: ['stats', 'inlinestats', 'metrics', 'eval', 'where', 'row', 'sort'], supportedOptions: ['by'], validate: undefined, examples: [ @@ -4619,7 +4773,6 @@ const mvSortDefinition: FunctionDefinition = { supportedCommands: ['stats', 'inlinestats', 'metrics', 'eval', 'where', 'row', 'sort'], supportedOptions: ['by'], validate: undefined, - examples: ['ROW a = [4, 2, -3, 2]\n| EVAL sa = mv_sort(a), sd = mv_sort(a, "DESC")'], }; @@ -8324,6 +8477,7 @@ export const evalFunctionDefinitions = [ mvMaxDefinition, mvMedianDefinition, mvMinDefinition, + mvPercentileDefinition, mvPseriesWeightedSumDefinition, mvSliceDefinition, mvSortDefinition, diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/helpers.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/helpers.ts index 3773a7c30e3d1..a50780ac8ea95 100644 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/helpers.ts +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/helpers.ts @@ -41,7 +41,7 @@ function handleAdditionalArgs( criteria: boolean, additionalArgs: Array<{ name: string; - type: string | string[]; + type: FunctionParameterType | FunctionParameterType[]; optional?: boolean; reference?: string; }>, @@ -93,7 +93,7 @@ function printCommandArgument( return param.name || ''; } return `${param.name}${param.optional ? ':?' : ':'} ${param.type}${ - param.innerType ? `{${param.innerType}}` : '' + param.innerTypes ? `{${param.innerTypes}}` : '' }`; } diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/types.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/types.ts index 2e8c32b5be003..5880b62c77918 100644 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/types.ts +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/types.ts @@ -31,6 +31,7 @@ export const fieldTypes = [ 'counter_long', 'counter_double', 'unsupported', + 'date_nanos', ] as const; export type FieldType = (typeof fieldTypes)[number]; @@ -68,30 +69,42 @@ export const isSupportedDataType = ( * * The fate of these is uncertain. They may be removed in the future. */ -type ArrayType = - | 'double[]' - | 'unsigned_long[]' - | 'long[]' - | 'integer[]' - | 'counter_integer[]' - | 'counter_long[]' - | 'counter_double[]' - | 'keyword[]' - | 'text[]' - | 'boolean[]' - | 'any[]' - | 'date[]' - | 'date_period[]'; +const arrayTypes = [ + 'double[]', + 'unsigned_long[]', + 'long[]', + 'integer[]', + 'counter_integer[]', + 'counter_long[]', + 'counter_double[]', + 'keyword[]', + 'text[]', + 'boolean[]', + 'any[]', + 'date[]', + 'date_period[]', +] as const; + +export type ArrayType = (typeof arrayTypes)[number]; /** * This is the type of a parameter in a function definition. */ -export type FunctionParameterType = Omit | ArrayType | 'any'; +export type FunctionParameterType = Exclude | ArrayType | 'any'; + +export const isParameterType = (str: string | undefined): str is FunctionParameterType => + typeof str !== undefined && + str !== 'unsupported' && + ([...dataTypes, ...arrayTypes, 'any'] as string[]).includes(str as string); /** * This is the return type of a function definition. */ -export type FunctionReturnType = Omit | 'any' | 'void'; +export type FunctionReturnType = Exclude | 'any' | 'void'; + +export const isReturnType = (str: string | FunctionParameterType): str is FunctionReturnType => + str !== 'unsupported' && + (dataTypes.includes(str as SupportedDataType) || str === 'any' || str === 'void'); export interface FunctionDefinition { type: 'builtin' | 'agg' | 'eval'; @@ -153,13 +166,13 @@ export interface CommandBaseDefinition { hidden?: boolean; signature: { multipleParams: boolean; - // innerType here is useful to drill down the type in case of "column" + // innerTypes here is useful to drill down the type in case of "column" // i.e. column of type string params: Array<{ name: string; type: string; optional?: boolean; - innerType?: string; + innerTypes?: string[]; values?: string[]; valueDescriptions?: string[]; constantOnly?: boolean; diff --git a/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts b/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts index 0b9f704a43bcc..eb058558638b0 100644 --- a/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts +++ b/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts @@ -40,6 +40,7 @@ import { FunctionDefinition, FunctionParameterType, FunctionReturnType, + ArrayType, } from '../definitions/types'; import type { ESQLRealField, ESQLVariable, ReferenceMaps } from '../validation/types'; import { removeMarkerArgFromArgsList } from './context'; @@ -248,28 +249,36 @@ function compareLiteralType(argType: string, item: ESQLLiteral) { /** * This function returns the variable or field matching a column */ -export function lookupColumn( +export function getColumnForASTNode( column: ESQLColumn, { fields, variables }: Pick ): ESQLRealField | ESQLVariable | undefined { const columnName = getQuotedColumnName(column); return ( - fields.get(columnName) || - variables.get(columnName)?.[0] || + getColumnByName(columnName, { fields, variables }) || // It's possible columnName has backticks "`fieldName`" // so we need to access the original name as well - fields.get(column.name) || - variables.get(column.name)?.[0] + getColumnByName(column.name, { fields, variables }) ); } +/** + * This function returns the variable or field matching a column + */ +export function getColumnByName( + columnName: string, + { fields, variables }: Pick +): ESQLRealField | ESQLVariable | undefined { + return fields.get(columnName) || variables.get(columnName)?.[0]; +} + const ARRAY_REGEXP = /\[\]$/; -export function isArrayType(type: string) { +export function isArrayType(type: string): type is ArrayType { return ARRAY_REGEXP.test(type); } -const arrayToSingularMap: Map = new Map([ +const arrayToSingularMap: Map = new Map([ ['double[]', 'double'], ['unsigned_long[]', 'unsigned_long'], ['long[]', 'long'], @@ -279,7 +288,7 @@ const arrayToSingularMap: Map = ne ['counter_double[]', 'counter_double'], ['keyword[]', 'keyword'], ['text[]', 'text'], - ['datetime[]', 'date'], + ['date[]', 'date'], ['date_period[]', 'date_period'], ['boolean[]', 'boolean'], ['any[]', 'any'], @@ -289,7 +298,7 @@ const arrayToSingularMap: Map = ne * Given an array type for example `string[]` it will return `string` */ export function extractSingularType(type: FunctionParameterType): FunctionParameterType { - return arrayToSingularMap.get(type) ?? type; + return isArrayType(type) ? arrayToSingularMap.get(type)! : type; } export function createMapFromList(arr: T[]): Map { @@ -378,7 +387,7 @@ export function getAllArrayTypes( types.push(subArg.literalType); } if (subArg.type === 'column') { - const hit = lookupColumn(subArg, references); + const hit = getColumnForASTNode(subArg, references); types.push(hit?.type || 'unsupported'); } if (subArg.type === 'timeInterval') { @@ -445,7 +454,7 @@ export function checkFunctionArgMatchesDefinition( return argType === 'time_literal' && inKnownTimeInterval(arg); } if (arg.type === 'column') { - const hit = lookupColumn(arg, references); + const hit = getColumnForASTNode(arg, references); const validHit = hit; if (!validHit) { return false; diff --git a/packages/kbn-esql-validation-autocomplete/src/shared/types.ts b/packages/kbn-esql-validation-autocomplete/src/shared/types.ts index 08e1cdccc37a3..04a8365c5e51c 100644 --- a/packages/kbn-esql-validation-autocomplete/src/shared/types.ts +++ b/packages/kbn-esql-validation-autocomplete/src/shared/types.ts @@ -20,6 +20,7 @@ export interface ESQLCallbacks { hidden: boolean; title?: string; dataStreams?: Array<{ name: string; title?: string }>; + type?: string; } >; getFieldsFor?: CallbackFn<{ query: string }, ESQLRealField>; diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.from.ts b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.from.ts index c24a44dadef40..06d23a30c441d 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.from.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.from.ts @@ -89,7 +89,7 @@ export const validationFromCommandTestSuite = (setup: helpers.Setup) => { ]); }); - test.skip('errors on unknown index', async () => { + test('errors on unknown index', async () => { const { expectErrors } = await setup(); await expectErrors(`FROM index, missingIndex`, ['Unknown index [missingIndex]']); diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/validation.params.test.ts b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/validation.params.test.ts index d732838ed919e..3035fbfd31353 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/validation.params.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/validation.params.test.ts @@ -23,16 +23,16 @@ test('should allow param inside agg function argument', async () => { test('allow params in WHERE command expressions', async () => { const { validate } = await setup(); - const res1 = await validate('FROM index | WHERE textField >= ?start'); + const res1 = await validate('FROM index | WHERE textField >= ?t_start'); const res2 = await validate(` FROM index - | WHERE textField >= ?start + | WHERE textField >= ?t_start | WHERE textField <= ?0 | WHERE textField == ? `); const res3 = await validate(` FROM index - | WHERE textField >= ?start + | WHERE textField >= ?t_start AND textField <= ?0 AND textField == ? `); 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 41cc3027bfe58..75d45e85bd11a 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 @@ -76,6 +76,10 @@ "name": "counterDoubleField", "type": "counter_double" }, + { + "name": "dateNanosField", + "type": "date_nanos" + }, { "name": "any#Char$Field", "type": "double" @@ -2248,28 +2252,28 @@ { "query": "from index | project ", "error": [ - "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where'}" + "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where', MATCH}" ], "warning": [] }, { "query": "from index | project textField, doubleField, dateField", "error": [ - "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where'}" + "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where', MATCH}" ], "warning": [] }, { "query": "from index | PROJECT textField, doubleField, dateField", "error": [ - "SyntaxError: mismatched input 'PROJECT' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where'}" + "SyntaxError: mismatched input 'PROJECT' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where', MATCH}" ], "warning": [] }, { "query": "from index | project missingField, doubleField, dateField", "error": [ - "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where'}" + "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where', MATCH}" ], "warning": [] }, @@ -2681,7 +2685,7 @@ { "query": "from a_index | dissect doubleField \"%{firstWord}\"", "error": [ - "DISSECT only supports string type values, found [doubleField] of type [double]" + "DISSECT only supports keyword, text types values, found [doubleField] of type [double]" ], "warning": [] }, @@ -2775,7 +2779,7 @@ { "query": "from a_index | grok doubleField \"%{firstWord}\"", "error": [ - "GROK only supports string type values, found [doubleField] of type [double]" + "GROK only supports keyword, text types values, found [doubleField] of type [double]" ], "warning": [] }, @@ -4389,6 +4393,46 @@ "error": [], "warning": [] }, + { + "query": "from a_index | where dateNanosField IS NULL", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateNanosField IS null", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateNanosField is null", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateNanosField is NULL", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateNanosField IS NOT NULL", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateNanosField IS NOT null", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateNanosField IS not NULL", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateNanosField Is nOt NuLL", + "error": [], + "warning": [] + }, { "query": "from a_index | where textField == \"a\" or null", "error": [], @@ -5115,6 +5159,41 @@ "error": [], "warning": [] }, + { + "query": "from a_index | eval dateNanosField IS NULL", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateNanosField IS null", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateNanosField is null", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateNanosField is NULL", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateNanosField IS NOT NULL", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateNanosField IS NOT null", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateNanosField IS not NULL", + "error": [], + "warning": [] + }, { "query": "from a_index | eval - doubleField", "error": [], @@ -12502,6 +12581,16 @@ ], "warning": [] }, + { + "query": "row var = date_trunc(1 day, to_datetime(\"2021-01-01T00:00:00Z\"))", + "error": [], + "warning": [] + }, + { + "query": "row date_trunc(1 day, to_datetime(\"2021-01-01T00:00:00Z\"))", + "error": [], + "warning": [] + }, { "query": "row var = e()", "error": [], @@ -31771,8 +31860,162 @@ }, { "query": "from a_index | stats max(concat(\"20\", \"22\"))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats var = max(textField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats max(textField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where max(textField)", + "error": [ + "WHERE does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | where max(textField) > 0", + "error": [ + "WHERE does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = max(textField)", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = max(textField) > 0", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval max(textField)", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval max(textField) > 0", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | stats var = max(versionField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats max(versionField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats var = max(keywordField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats max(keywordField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where max(versionField)", "error": [ - "Argument of [max] must be [double], found value [concat(\"20\",\"22\")] type [keyword]" + "WHERE does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | where max(versionField) > 0", + "error": [ + "WHERE does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | where max(keywordField)", + "error": [ + "WHERE does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | where max(keywordField) > 0", + "error": [ + "WHERE does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = max(versionField)", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = max(versionField) > 0", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval max(versionField)", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval max(versionField) > 0", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = max(keywordField)", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = max(keywordField) > 0", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval max(keywordField)", + "error": [ + "EVAL does not support function max" + ], + "warning": [] + }, + { + "query": "from a_index | eval max(keywordField) > 0", + "error": [ + "EVAL does not support function max" ], "warning": [] }, @@ -32355,8 +32598,162 @@ }, { "query": "from a_index | stats min(concat(\"20\", \"22\"))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats var = min(textField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats min(textField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where min(textField)", "error": [ - "Argument of [min] must be [double], found value [concat(\"20\",\"22\")] type [keyword]" + "WHERE does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | where min(textField) > 0", + "error": [ + "WHERE does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = min(textField)", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = min(textField) > 0", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval min(textField)", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval min(textField) > 0", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | stats var = min(versionField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats min(versionField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats var = min(keywordField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats min(keywordField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where min(versionField)", + "error": [ + "WHERE does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | where min(versionField) > 0", + "error": [ + "WHERE does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | where min(keywordField)", + "error": [ + "WHERE does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | where min(keywordField) > 0", + "error": [ + "WHERE does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = min(versionField)", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = min(versionField) > 0", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval min(versionField)", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval min(versionField) > 0", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = min(keywordField)", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = min(keywordField) > 0", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval min(keywordField)", + "error": [ + "EVAL does not support function min" + ], + "warning": [] + }, + { + "query": "from a_index | eval min(keywordField) > 0", + "error": [ + "EVAL does not support function min" ], "warning": [] }, @@ -34793,6 +35190,42 @@ ], "warning": [] }, + { + "query": "from a_index | stats by bucket(dateField, textField)", + "error": [ + "Argument of [bucket] must be a constant, received [textField]" + ], + "warning": [] + }, + { + "query": "from a_index | stats by bin(dateField, textField)", + "error": [ + "Argument of [bin] must be a constant, received [textField]" + ], + "warning": [] + }, + { + "query": "from a_index | sort bucket(dateField, textField)", + "error": [ + "SORT does not support function bucket" + ], + "warning": [] + }, + { + "query": "from a_index | stats bucket(\"2022\", textField)", + "error": [ + "Argument of [bucket] must be a constant, received [textField]" + ], + "warning": [] + }, + { + "query": "from a_index | stats bucket(concat(\"20\", \"22\"), textField)", + "error": [ + "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", + "Argument of [bucket] must be a constant, received [textField]" + ], + "warning": [] + }, { "query": "from a_index | stats var = percentile(doubleField, doubleField)", "error": [ @@ -36935,6 +37368,307 @@ "error": [], "warning": [] }, + { + "query": "row var = mv_percentile(5.5, 5.5)", + "error": [], + "warning": [] + }, + { + "query": "row mv_percentile(5.5, 5.5)", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(to_double(true), to_double(true))", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(5.5, 5)", + "error": [], + "warning": [] + }, + { + "query": "row mv_percentile(5.5, 5)", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(to_double(true), to_integer(true))", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(to_double(true), 5)", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(5, 5.5)", + "error": [], + "warning": [] + }, + { + "query": "row mv_percentile(5, 5.5)", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(to_integer(true), to_double(true))", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(5, 5)", + "error": [], + "warning": [] + }, + { + "query": "row mv_percentile(5, 5)", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(to_integer(true), to_integer(true))", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(to_integer(true), 5)", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(5, to_double(true))", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(5, to_integer(true))", + "error": [], + "warning": [] + }, + { + "query": "row var = mv_percentile(true, true)", + "error": [ + "Argument of [mv_percentile] must be [double], found value [true] type [boolean]", + "Argument of [mv_percentile] must be [double], found value [true] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(doubleField, doubleField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(booleanField, booleanField) > 0", + "error": [ + "Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]", + "Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(doubleField, integerField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(doubleField, longField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(integerField, doubleField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(integerField, integerField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(integerField, longField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(longField, doubleField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(longField, integerField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where mv_percentile(longField, longField) > 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(doubleField, doubleField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(doubleField, doubleField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(to_double(booleanField), to_double(booleanField))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(booleanField, booleanField)", + "error": [ + "Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]", + "Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(doubleField, integerField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(doubleField, integerField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(to_double(booleanField), to_integer(booleanField))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(doubleField, longField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(doubleField, longField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(to_double(booleanField), longField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(integerField, doubleField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(integerField, doubleField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(to_integer(booleanField), to_double(booleanField))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(integerField, integerField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(integerField, integerField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(to_integer(booleanField), to_integer(booleanField))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(integerField, longField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(integerField, longField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(to_integer(booleanField), longField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(longField, doubleField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(longField, doubleField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(longField, to_double(booleanField))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(longField, integerField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(longField, integerField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(longField, to_integer(booleanField))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval var = mv_percentile(longField, longField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(longField, longField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(doubleField, doubleField, extraArg)", + "error": [ + "Error: [mv_percentile] function expects exactly 2 arguments, got 3." + ], + "warning": [] + }, + { + "query": "from a_index | sort mv_percentile(doubleField, doubleField)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval mv_percentile(null, null)", + "error": [], + "warning": [] + }, + { + "query": "row nullVar = null | eval mv_percentile(nullVar, nullVar)", + "error": [], + "warning": [] + }, { "query": "f", "error": [ @@ -37151,6 +37885,48 @@ ], "warning": [] }, + { + "query": "FROM index, missingIndex", + "error": [ + "Unknown index [missingIndex]" + ], + "warning": [] + }, + { + "query": "from average()", + "error": [ + "Unknown index [average()]" + ], + "warning": [] + }, + { + "query": "fRom custom_function()", + "error": [ + "Unknown index [custom_function()]" + ], + "warning": [] + }, + { + "query": "FROM indexes*", + "error": [ + "Unknown index [indexes*]" + ], + "warning": [] + }, + { + "query": "from numberField", + "error": [ + "Unknown index [numberField]" + ], + "warning": [] + }, + { + "query": "FROM policy", + "error": [ + "Unknown index [policy]" + ], + "warning": [] + }, { "query": "from index metadata _id", "error": [], 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 5e61c2631d9e1..a4b097430851c 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts @@ -530,16 +530,16 @@ describe('validation logic', () => { ]); testErrorsAndWarnings('from index | keep `any#Char$Field`', []); testErrorsAndWarnings('from index | project ', [ - "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where'}", + "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where', MATCH}", ]); testErrorsAndWarnings('from index | project textField, doubleField, dateField', [ - "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where'}", + "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where', MATCH}", ]); testErrorsAndWarnings('from index | PROJECT textField, doubleField, dateField', [ - "SyntaxError: mismatched input 'PROJECT' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where'}", + "SyntaxError: mismatched input 'PROJECT' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where', MATCH}", ]); testErrorsAndWarnings('from index | project missingField, doubleField, dateField', [ - "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where'}", + "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'lookup', 'mv_expand', 'rename', 'sort', 'stats', 'where', MATCH}", ]); testErrorsAndWarnings('from index | keep k*', []); testErrorsAndWarnings('from index | keep *Field', []); @@ -701,7 +701,7 @@ describe('validation logic', () => { // Do not try to validate the dissect pattern string testErrorsAndWarnings('from a_index | dissect textField "%{firstWord}"', []); testErrorsAndWarnings('from a_index | dissect doubleField "%{firstWord}"', [ - 'DISSECT only supports string type values, found [doubleField] of type [double]', + 'DISSECT only supports keyword, text types values, found [doubleField] of type [double]', ]); testErrorsAndWarnings('from a_index | dissect textField "%{firstWord}" option ', [ "SyntaxError: mismatched input '' expecting '='", @@ -748,11 +748,10 @@ describe('validation logic', () => { testErrorsAndWarnings('from a_index | grok textField %a', [ "SyntaxError: mismatched input '%' expecting QUOTED_STRING", ]); - // @TODO: investigate // Do not try to validate the grok pattern string testErrorsAndWarnings('from a_index | grok textField "%{firstWord}"', []); testErrorsAndWarnings('from a_index | grok doubleField "%{firstWord}"', [ - 'GROK only supports string type values, found [doubleField] of type [double]', + 'GROK only supports keyword, text types values, found [doubleField] of type [double]', ]); testErrorsAndWarnings('from a_index | grok textField "%{firstWord}" | keep firstWord', []); // testErrorsAndWarnings('from a_index | grok s* "%{a}"', [ @@ -2952,6 +2951,11 @@ describe('validation logic', () => { 'Argument of [date_trunc] must be [time_literal], found value [textField] type [text]', 'Argument of [date_trunc] must be [date], found value [concat("20","22")] type [keyword]', ]); + testErrorsAndWarnings( + 'row var = date_trunc(1 day, to_datetime("2021-01-01T00:00:00Z"))', + [] + ); + testErrorsAndWarnings('row date_trunc(1 day, to_datetime("2021-01-01T00:00:00Z"))', []); }); describe('e', () => { @@ -12266,8 +12270,86 @@ describe('validation logic', () => { testErrorsAndWarnings('from a_index | stats max(null)', []); testErrorsAndWarnings('row nullVar = null | stats max(nullVar)', []); testErrorsAndWarnings('from a_index | stats max("2022")', []); - testErrorsAndWarnings('from a_index | stats max(concat("20", "22"))', [ - 'Argument of [max] must be [double], found value [concat("20","22")] type [keyword]', + testErrorsAndWarnings('from a_index | stats max(concat("20", "22"))', []); + + testErrorsAndWarnings('from a_index | stats var = max(textField)', []); + + testErrorsAndWarnings('from a_index | stats max(textField)', []); + + testErrorsAndWarnings('from a_index | where max(textField)', [ + 'WHERE does not support function max', + ]); + + testErrorsAndWarnings('from a_index | where max(textField) > 0', [ + 'WHERE does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval var = max(textField)', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval var = max(textField) > 0', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval max(textField)', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval max(textField) > 0', [ + 'EVAL does not support function max', + ]); + testErrorsAndWarnings('from a_index | stats var = max(versionField)', []); + testErrorsAndWarnings('from a_index | stats max(versionField)', []); + testErrorsAndWarnings('from a_index | stats var = max(keywordField)', []); + testErrorsAndWarnings('from a_index | stats max(keywordField)', []); + + testErrorsAndWarnings('from a_index | where max(versionField)', [ + 'WHERE does not support function max', + ]); + + testErrorsAndWarnings('from a_index | where max(versionField) > 0', [ + 'WHERE does not support function max', + ]); + + testErrorsAndWarnings('from a_index | where max(keywordField)', [ + 'WHERE does not support function max', + ]); + + testErrorsAndWarnings('from a_index | where max(keywordField) > 0', [ + 'WHERE does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval var = max(versionField)', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval var = max(versionField) > 0', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval max(versionField)', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval max(versionField) > 0', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval var = max(keywordField)', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval var = max(keywordField) > 0', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval max(keywordField)', [ + 'EVAL does not support function max', + ]); + + testErrorsAndWarnings('from a_index | eval max(keywordField) > 0', [ + 'EVAL does not support function max', ]); }); @@ -12588,8 +12670,86 @@ describe('validation logic', () => { testErrorsAndWarnings('from a_index | stats min(null)', []); testErrorsAndWarnings('row nullVar = null | stats min(nullVar)', []); testErrorsAndWarnings('from a_index | stats min("2022")', []); - testErrorsAndWarnings('from a_index | stats min(concat("20", "22"))', [ - 'Argument of [min] must be [double], found value [concat("20","22")] type [keyword]', + testErrorsAndWarnings('from a_index | stats min(concat("20", "22"))', []); + + testErrorsAndWarnings('from a_index | stats var = min(textField)', []); + + testErrorsAndWarnings('from a_index | stats min(textField)', []); + + testErrorsAndWarnings('from a_index | where min(textField)', [ + 'WHERE does not support function min', + ]); + + testErrorsAndWarnings('from a_index | where min(textField) > 0', [ + 'WHERE does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval var = min(textField)', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval var = min(textField) > 0', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval min(textField)', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval min(textField) > 0', [ + 'EVAL does not support function min', + ]); + testErrorsAndWarnings('from a_index | stats var = min(versionField)', []); + testErrorsAndWarnings('from a_index | stats min(versionField)', []); + testErrorsAndWarnings('from a_index | stats var = min(keywordField)', []); + testErrorsAndWarnings('from a_index | stats min(keywordField)', []); + + testErrorsAndWarnings('from a_index | where min(versionField)', [ + 'WHERE does not support function min', + ]); + + testErrorsAndWarnings('from a_index | where min(versionField) > 0', [ + 'WHERE does not support function min', + ]); + + testErrorsAndWarnings('from a_index | where min(keywordField)', [ + 'WHERE does not support function min', + ]); + + testErrorsAndWarnings('from a_index | where min(keywordField) > 0', [ + 'WHERE does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval var = min(versionField)', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval var = min(versionField) > 0', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval min(versionField)', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval min(versionField) > 0', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval var = min(keywordField)', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval var = min(keywordField) > 0', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval min(keywordField)', [ + 'EVAL does not support function min', + ]); + + testErrorsAndWarnings('from a_index | eval min(keywordField) > 0', [ + 'EVAL does not support function min', ]); }); @@ -14549,6 +14709,26 @@ describe('validation logic', () => { 'Argument of [bin] must be a constant, received [longField]', ] ); + + testErrorsAndWarnings('from a_index | stats by bucket(dateField, textField)', [ + 'Argument of [bucket] must be a constant, received [textField]', + ]); + + testErrorsAndWarnings('from a_index | stats by bin(dateField, textField)', [ + 'Argument of [bin] must be a constant, received [textField]', + ]); + + testErrorsAndWarnings('from a_index | sort bucket(dateField, textField)', [ + 'SORT does not support function bucket', + ]); + + testErrorsAndWarnings('from a_index | stats bucket("2022", textField)', [ + 'Argument of [bucket] must be a constant, received [textField]', + ]); + testErrorsAndWarnings('from a_index | stats bucket(concat("20", "22"), textField)', [ + 'Argument of [bucket] must be [date], found value [concat("20","22")] type [keyword]', + 'Argument of [bucket] must be a constant, received [textField]', + ]); }); describe('percentile', () => { @@ -15791,6 +15971,171 @@ describe('validation logic', () => { [] ); }); + + describe('mv_percentile', () => { + testErrorsAndWarnings('row var = mv_percentile(5.5, 5.5)', []); + testErrorsAndWarnings('row mv_percentile(5.5, 5.5)', []); + testErrorsAndWarnings('row var = mv_percentile(to_double(true), to_double(true))', []); + testErrorsAndWarnings('row var = mv_percentile(5.5, 5)', []); + testErrorsAndWarnings('row mv_percentile(5.5, 5)', []); + testErrorsAndWarnings('row var = mv_percentile(to_double(true), to_integer(true))', []); + testErrorsAndWarnings('row var = mv_percentile(to_double(true), 5)', []); + testErrorsAndWarnings('row var = mv_percentile(5, 5.5)', []); + testErrorsAndWarnings('row mv_percentile(5, 5.5)', []); + testErrorsAndWarnings('row var = mv_percentile(to_integer(true), to_double(true))', []); + testErrorsAndWarnings('row var = mv_percentile(5, 5)', []); + testErrorsAndWarnings('row mv_percentile(5, 5)', []); + testErrorsAndWarnings('row var = mv_percentile(to_integer(true), to_integer(true))', []); + testErrorsAndWarnings('row var = mv_percentile(to_integer(true), 5)', []); + testErrorsAndWarnings('row var = mv_percentile(5, to_double(true))', []); + testErrorsAndWarnings('row var = mv_percentile(5, to_integer(true))', []); + + testErrorsAndWarnings('row var = mv_percentile(true, true)', [ + 'Argument of [mv_percentile] must be [double], found value [true] type [boolean]', + 'Argument of [mv_percentile] must be [double], found value [true] type [boolean]', + ]); + + testErrorsAndWarnings( + 'from a_index | where mv_percentile(doubleField, doubleField) > 0', + [] + ); + + testErrorsAndWarnings( + 'from a_index | where mv_percentile(booleanField, booleanField) > 0', + [ + 'Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]', + 'Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]', + ] + ); + + testErrorsAndWarnings( + 'from a_index | where mv_percentile(doubleField, integerField) > 0', + [] + ); + testErrorsAndWarnings('from a_index | where mv_percentile(doubleField, longField) > 0', []); + testErrorsAndWarnings( + 'from a_index | where mv_percentile(integerField, doubleField) > 0', + [] + ); + testErrorsAndWarnings( + 'from a_index | where mv_percentile(integerField, integerField) > 0', + [] + ); + testErrorsAndWarnings( + 'from a_index | where mv_percentile(integerField, longField) > 0', + [] + ); + testErrorsAndWarnings('from a_index | where mv_percentile(longField, doubleField) > 0', []); + testErrorsAndWarnings( + 'from a_index | where mv_percentile(longField, integerField) > 0', + [] + ); + testErrorsAndWarnings('from a_index | where mv_percentile(longField, longField) > 0', []); + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(doubleField, doubleField)', + [] + ); + testErrorsAndWarnings('from a_index | eval mv_percentile(doubleField, doubleField)', []); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(to_double(booleanField), to_double(booleanField))', + [] + ); + + testErrorsAndWarnings('from a_index | eval mv_percentile(booleanField, booleanField)', [ + 'Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]', + 'Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]', + ]); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(doubleField, integerField)', + [] + ); + testErrorsAndWarnings('from a_index | eval mv_percentile(doubleField, integerField)', []); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(to_double(booleanField), to_integer(booleanField))', + [] + ); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(doubleField, longField)', + [] + ); + testErrorsAndWarnings('from a_index | eval mv_percentile(doubleField, longField)', []); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(to_double(booleanField), longField)', + [] + ); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(integerField, doubleField)', + [] + ); + testErrorsAndWarnings('from a_index | eval mv_percentile(integerField, doubleField)', []); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(to_integer(booleanField), to_double(booleanField))', + [] + ); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(integerField, integerField)', + [] + ); + testErrorsAndWarnings('from a_index | eval mv_percentile(integerField, integerField)', []); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(to_integer(booleanField), to_integer(booleanField))', + [] + ); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(integerField, longField)', + [] + ); + testErrorsAndWarnings('from a_index | eval mv_percentile(integerField, longField)', []); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(to_integer(booleanField), longField)', + [] + ); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(longField, doubleField)', + [] + ); + testErrorsAndWarnings('from a_index | eval mv_percentile(longField, doubleField)', []); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(longField, to_double(booleanField))', + [] + ); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(longField, integerField)', + [] + ); + testErrorsAndWarnings('from a_index | eval mv_percentile(longField, integerField)', []); + + testErrorsAndWarnings( + 'from a_index | eval var = mv_percentile(longField, to_integer(booleanField))', + [] + ); + + testErrorsAndWarnings('from a_index | eval var = mv_percentile(longField, longField)', []); + testErrorsAndWarnings('from a_index | eval mv_percentile(longField, longField)', []); + + testErrorsAndWarnings( + 'from a_index | eval mv_percentile(doubleField, doubleField, extraArg)', + ['Error: [mv_percentile] function expects exactly 2 arguments, got 3.'] + ); + + testErrorsAndWarnings('from a_index | sort mv_percentile(doubleField, doubleField)', []); + testErrorsAndWarnings('from a_index | eval mv_percentile(null, null)', []); + testErrorsAndWarnings('row nullVar = null | eval mv_percentile(nullVar, nullVar)', []); + }); }); }); diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts b/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts index 4de1adf4a3153..5a06cf3f6a246 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts @@ -30,7 +30,7 @@ import { import { areFieldAndVariableTypesCompatible, extractSingularType, - lookupColumn, + getColumnForASTNode, getCommandDefinition, getFunctionDefinition, isArrayType, @@ -295,7 +295,7 @@ function validateFunctionColumnArg( if ( !checkFunctionArgMatchesDefinition(actualArg, parameterDefinition, references, parentCommand) ) { - const columnHit = lookupColumn(actualArg, references); + const columnHit = getColumnForASTNode(actualArg, references); messages.push( getMessageFromId({ messageId: 'wrongArgumentType', @@ -873,18 +873,21 @@ function validateColumnForCommand( if (getColumnExists(column, references)) { const commandDef = getCommandDefinition(commandName); const columnParamsWithInnerTypes = commandDef.signature.params.filter( - ({ type, innerType }) => type === 'column' && innerType + ({ type, innerTypes }) => type === 'column' && innerTypes ); // this should be guaranteed by the columnCheck above - const columnRef = lookupColumn(column, references)!; + const columnRef = getColumnForASTNode(column, references)!; if (columnParamsWithInnerTypes.length) { - const hasSomeWrongInnerTypes = columnParamsWithInnerTypes.every(({ innerType }) => { - if (innerType === 'string' && isStringType(columnRef.type)) return false; - return innerType !== 'any' && innerType !== columnRef.type; + const hasSomeWrongInnerTypes = columnParamsWithInnerTypes.every(({ innerTypes }) => { + if (innerTypes?.includes('string') && isStringType(columnRef.type)) return false; + return innerTypes && !innerTypes.includes('any') && !innerTypes.includes(columnRef.type); }); if (hasSomeWrongInnerTypes) { - const supportedTypes = columnParamsWithInnerTypes.map(({ innerType }) => innerType); + const supportedTypes: string[] = columnParamsWithInnerTypes + .map(({ innerTypes }) => innerTypes) + .flat() + .filter((type) => type !== undefined) as string[]; messages.push( getMessageFromId({ diff --git a/packages/kbn-expandable-flyout/__mocks__/index.tsx b/packages/kbn-expandable-flyout/__mocks__/index.tsx new file mode 100644 index 0000000000000..1b35419219fbb --- /dev/null +++ b/packages/kbn-expandable-flyout/__mocks__/index.tsx @@ -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. + */ + +import React from 'react'; + +export const useExpandableFlyoutApi = jest.fn(() => ({ + openFlyout: jest.fn(), + closeFlyout: jest.fn(), + openPanels: jest.fn(), + openRightPanel: jest.fn(), + openLeftPanel: jest.fn(), + openPreviewPanel: jest.fn(), + closeRightPanel: jest.fn(), + closeLeftPanel: jest.fn(), + closePreviewPanel: jest.fn(), + closePanels: jest.fn(), + previousPreviewPanel: jest.fn(), +})); + +export const useExpandableFlyoutState = jest.fn(); + +export const ExpandableFlyoutProvider = jest.fn(({ children }: React.PropsWithChildren<{}>) => { + return <>{children}; +}); + +export const withExpandableFlyoutProvider = ( + Component: React.ComponentType +) => { + return (props: T) => { + return ; + }; +}; + +export const ExpandableFlyout = jest.fn(); diff --git a/packages/kbn-expandable-flyout/index.ts b/packages/kbn-expandable-flyout/index.ts index e5eaae99c26f8..00f9b1521cc4d 100644 --- a/packages/kbn-expandable-flyout/index.ts +++ b/packages/kbn-expandable-flyout/index.ts @@ -14,6 +14,7 @@ export { useExpandableFlyoutState } from './src/hooks/use_expandable_flyout_stat export { type FlyoutState as ExpandableFlyoutState } from './src/state'; export { ExpandableFlyoutProvider } from './src/provider'; +export { withExpandableFlyoutProvider } from './src/with_provider'; export type { ExpandableFlyoutProps } from './src'; export type { FlyoutPanelProps, PanelPath, ExpandableFlyoutApi } from './src/types'; diff --git a/packages/kbn-expandable-flyout/src/index.test.tsx b/packages/kbn-expandable-flyout/src/index.test.tsx index d08a78c706781..2235cbd5d408b 100644 --- a/packages/kbn-expandable-flyout/src/index.test.tsx +++ b/packages/kbn-expandable-flyout/src/index.test.tsx @@ -110,4 +110,27 @@ describe('ExpandableFlyout', () => { expect(getByTestId(PREVIEW_SECTION_TEST_ID)).toBeInTheDocument(); }); + + it('should not render flyout when right has value but does not matches registered panels', () => { + const state = { + byId: { + [id]: { + right: { + id: 'key1', + }, + left: undefined, + preview: undefined, + }, + }, + }; + + const { queryByTestId } = render( + + + + ); + + expect(queryByTestId('my-test-flyout')).toBeNull(); + expect(queryByTestId(RIGHT_SECTION_TEST_ID)).toBeNull(); + }); }); diff --git a/packages/kbn-expandable-flyout/src/index.tsx b/packages/kbn-expandable-flyout/src/index.tsx index ba11b597e0b06..a112187bd733b 100644 --- a/packages/kbn-expandable-flyout/src/index.tsx +++ b/packages/kbn-expandable-flyout/src/index.tsx @@ -86,7 +86,8 @@ export const ExpandableFlyout: React.FC = ({ showPreview, }); - const hideFlyout = !left && !right && !preview?.length; + const hideFlyout = !(left && leftSection) && !(right && rightSection) && !preview?.length; + if (hideFlyout) { return null; } @@ -94,6 +95,7 @@ export const ExpandableFlyout: React.FC = ({ return ( { diff --git a/packages/kbn-expandable-flyout/src/with_provider.test.tsx b/packages/kbn-expandable-flyout/src/with_provider.test.tsx new file mode 100644 index 0000000000000..e262157048778 --- /dev/null +++ b/packages/kbn-expandable-flyout/src/with_provider.test.tsx @@ -0,0 +1,29 @@ +/* + * 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 { render } from '@testing-library/react'; +import { useExpandableFlyoutApi } from './hooks/use_expandable_flyout_api'; +import React from 'react'; +import { withExpandableFlyoutProvider } from './with_provider'; + +const TestComponent = () => { + useExpandableFlyoutApi(); + + return
; +}; + +describe('withExpandableFlyoutProvider', () => { + it('should throw when rendered without Expandable Provider', () => { + expect(() => render()).toThrow(); + }); + + it('should not throw when rendered with Expandable Provider', () => { + const TestComponentWithProvider = withExpandableFlyoutProvider(TestComponent); + expect(() => render()).not.toThrow(); + }); +}); diff --git a/packages/kbn-expandable-flyout/src/with_provider.tsx b/packages/kbn-expandable-flyout/src/with_provider.tsx new file mode 100644 index 0000000000000..a12b46a6405d0 --- /dev/null +++ b/packages/kbn-expandable-flyout/src/with_provider.tsx @@ -0,0 +1,25 @@ +/* + * 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 { ComponentType } from 'react'; +import { ExpandableFlyoutContextProviderProps } from './context'; +import { ExpandableFlyoutProvider } from './provider'; + +export const withExpandableFlyoutProvider = ( + Component: ComponentType, + expandableProviderProps?: ExpandableFlyoutContextProviderProps +) => { + return (props: Props) => { + return ( + + + + ); + }; +}; diff --git a/packages/kbn-expect/expect.js b/packages/kbn-expect/expect.js index 8a7d1802a7e0e..1a48d75a4615d 100644 --- a/packages/kbn-expect/expect.js +++ b/packages/kbn-expect/expect.js @@ -45,7 +45,7 @@ function Assertion (obj, flag, parent) { this.flags[flag] = true; for (var i in parent.flags) { - if (parent.flags.hasOwnProperty(i)) { + if (Object.hasOwn(parent.flags, i)) { this.flags[i] = true; } } @@ -70,7 +70,7 @@ function Assertion (obj, flag, parent) { }; for (var fn in Assertion.prototype) { - if (Assertion.prototype.hasOwnProperty(fn) && fn != name) { + if (Object.hasOwn(Assertion.prototype, fn) && fn != name) { if (typeof this[name] === 'function' && fn === 'length') { continue; } diff --git a/packages/kbn-flot-charts/lib/jquery_flot.js b/packages/kbn-flot-charts/lib/jquery_flot.js index 5252356279e51..3b13b317c616c 100644 --- a/packages/kbn-flot-charts/lib/jquery_flot.js +++ b/packages/kbn-flot-charts/lib/jquery_flot.js @@ -2750,7 +2750,7 @@ Licensed under the MIT license. var ascending = options.legend.sorted != "descending"; entries.sort(function(a, b) { return a.label == b.label ? 0 : ( - (a.label < b.label) != ascending ? 1 : -1 // Logical XOR + ((a.label < b.label) != ascending ? 1 : -1) // Logical XOR ); }); } diff --git a/packages/kbn-ftr-common-functional-services/index.ts b/packages/kbn-ftr-common-functional-services/index.ts index 4bd3eca34c45c..3cc6df44adf01 100644 --- a/packages/kbn-ftr-common-functional-services/index.ts +++ b/packages/kbn-ftr-common-functional-services/index.ts @@ -25,4 +25,7 @@ export type SupertestWithoutAuthProviderType = ProvidedType; + export type { FtrProviderContext } from './services/ftr_provider_context'; diff --git a/packages/kbn-ftr-common-functional-services/services/saml_auth/get_auth_provider.ts b/packages/kbn-ftr-common-functional-services/services/saml_auth/get_auth_provider.ts index 3f1ec7af917ff..dfe6d83908a00 100644 --- a/packages/kbn-ftr-common-functional-services/services/saml_auth/get_auth_provider.ts +++ b/packages/kbn-ftr-common-functional-services/services/saml_auth/get_auth_provider.ts @@ -6,20 +6,12 @@ * Side Public License, v 1. */ -import fs from 'fs'; import { type Config } from '@kbn/test'; -import { ToolingLog } from '@kbn/tooling-log'; -import { MOCK_IDP_REALM_NAME } from '@kbn/mock-idp-utils'; -import { KibanaServer } from '../..'; - import { ServerlessAuthProvider } from './serverless/auth_provider'; import { StatefulAuthProvider } from './stateful/auth_provider'; -import { createRole, createRoleMapping } from './stateful/create_role_mapping'; - -const STATEFUL_ADMIN_ROLE_MAPPING_PATH = './stateful/admin_mapping'; export interface AuthProvider { - getSupportedRoleDescriptors(): any; + getSupportedRoleDescriptors(): Record; getDefaultRole(): string; getRolesDefinitionPath(): string; getCommonRequestHeader(): { [key: string]: string }; @@ -28,26 +20,10 @@ export interface AuthProvider { export interface AuthProviderProps { config: Config; - kibanaServer: KibanaServer; - log: ToolingLog; } -export const getAuthProvider = async (props: AuthProviderProps) => { - const { config, log, kibanaServer } = props; +export const getAuthProvider = (props: AuthProviderProps) => { + const { config } = props; const isServerless = !!props.config.get('serverless'); - if (isServerless) { - return new ServerlessAuthProvider(config); - } - - const provider = new StatefulAuthProvider(); - // TODO: Move it to @kbn-es package, so that roles and its mapping are created before FTR services loading starts. - // 'viewer' and 'editor' roles are available by default, but we have to create 'admin' role - const adminRoleMapping = JSON.parse( - fs.readFileSync(require.resolve(STATEFUL_ADMIN_ROLE_MAPPING_PATH), 'utf8') - ); - await createRole({ roleName: 'admin', roleMapping: adminRoleMapping, kibanaServer, log }); - const roles = Object.keys(provider.getSupportedRoleDescriptors()); - // Creating roles mapping for mock-idp - await createRoleMapping({ name: MOCK_IDP_REALM_NAME, roles, config, log }); - return provider; + return isServerless ? new ServerlessAuthProvider(config) : new StatefulAuthProvider(); }; diff --git a/packages/kbn-ftr-common-functional-services/services/saml_auth/saml_auth_provider.ts b/packages/kbn-ftr-common-functional-services/services/saml_auth/saml_auth_provider.ts index 4e79cad656197..af5dec4efea59 100644 --- a/packages/kbn-ftr-common-functional-services/services/saml_auth/saml_auth_provider.ts +++ b/packages/kbn-ftr-common-functional-services/services/saml_auth/saml_auth_provider.ts @@ -20,14 +20,13 @@ export interface RoleCredentials { cookieHeader: { Cookie: string }; } -export async function SamlAuthProvider({ getService }: FtrProviderContext) { +export function SamlAuthProvider({ getService }: FtrProviderContext) { const config = getService('config'); const log = getService('log'); - const kibanaServer = getService('kibanaServer'); const supertestWithoutAuth = getService('supertestWithoutAuth'); const isCloud = !!process.env.TEST_CLOUD; - const authRoleProvider = await getAuthProvider({ config, kibanaServer, log }); + const authRoleProvider = getAuthProvider({ config }); const supportedRoleDescriptors = authRoleProvider.getSupportedRoleDescriptors(); const supportedRoles = Object.keys(supportedRoleDescriptors); diff --git a/packages/kbn-ftr-common-functional-services/services/saml_auth/serverless/auth_provider.ts b/packages/kbn-ftr-common-functional-services/services/saml_auth/serverless/auth_provider.ts index eecbe3a5862f2..d8cb8ae9b5f0d 100644 --- a/packages/kbn-ftr-common-functional-services/services/saml_auth/serverless/auth_provider.ts +++ b/packages/kbn-ftr-common-functional-services/services/saml_auth/serverless/auth_provider.ts @@ -49,7 +49,7 @@ export class ServerlessAuthProvider implements AuthProvider { this.rolesDefinitionPath = resolve(SERVERLESS_ROLES_ROOT_PATH, this.projectType, 'roles.yml'); } - getSupportedRoleDescriptors(): any { + getSupportedRoleDescriptors(): Record { return readRolesDescriptorsFromResource(this.rolesDefinitionPath); } getDefaultRole(): string { diff --git a/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/admin_mapping.json b/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/admin_mapping.json deleted file mode 100644 index f8544f16bd239..0000000000000 --- a/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/admin_mapping.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "kibana":[ - { - "base":[ - "all" - ], - "feature":{ - - }, - "spaces":[ - "*" - ] - } - ], - "elasticsearch":{ - "cluster":[ - "all" - ], - "indices":[ - { - "names":[ - "*" - ], - "privileges":[ - "all" - ], - "allow_restricted_indices":false - }, - { - "names":[ - "*" - ], - "privileges":[ - "monitor", - "read", - "read_cross_cluster", - "view_index_metadata" - ], - "allow_restricted_indices":true - } - ], - "run_as":[ - - ] - } -} \ No newline at end of file diff --git a/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/auth_provider.ts b/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/auth_provider.ts index cf27fd9d5d506..4dfe8ce6550d7 100644 --- a/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/auth_provider.ts +++ b/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/auth_provider.ts @@ -17,7 +17,7 @@ import { export class StatefulAuthProvider implements AuthProvider { private readonly rolesDefinitionPath = resolve(REPO_ROOT, STATEFUL_ROLES_ROOT_PATH, 'roles.yml'); - getSupportedRoleDescriptors(): any { + getSupportedRoleDescriptors(): Record { return readRolesDescriptorsFromResource(this.rolesDefinitionPath); } getDefaultRole() { diff --git a/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/create_role_mapping.ts b/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/create_role_mapping.ts deleted file mode 100644 index 1e9b897362dc6..0000000000000 --- a/packages/kbn-ftr-common-functional-services/services/saml_auth/stateful/create_role_mapping.ts +++ /dev/null @@ -1,52 +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 { Config, createEsClientForFtrConfig } from '@kbn/test'; -import { ToolingLog } from '@kbn/tooling-log'; -import { KibanaServer } from '../../..'; - -export interface CreateRoleProps { - roleName: string; - roleMapping: string[]; - kibanaServer: KibanaServer; - log: ToolingLog; -} - -export interface CreateRoleMappingProps { - name: string; - roles: string[]; - config: Config; - log: ToolingLog; -} - -export async function createRole(props: CreateRoleProps) { - const { roleName, roleMapping, kibanaServer, log } = props; - log.debug(`Adding a role: ${roleName}`); - const { status, statusText } = await kibanaServer.request({ - path: `/api/security/role/${roleName}`, - method: 'PUT', - body: roleMapping, - retries: 0, - }); - if (status !== 204) { - throw new Error(`Expected status code of 204, received ${status} ${statusText}`); - } -} - -export async function createRoleMapping(props: CreateRoleMappingProps) { - const { name, roles, config, log } = props; - log.debug(`Creating a role mapping: {realm.name: ${name}, roles: ${roles}}`); - const esClient = createEsClientForFtrConfig(config); - await esClient.security.putRoleMapping({ - name, - roles, - enabled: true, - // @ts-ignore - rules: { field: { 'realm.name': name } }, - }); -} diff --git a/packages/kbn-ftr-common-functional-services/tsconfig.json b/packages/kbn-ftr-common-functional-services/tsconfig.json index ff10ec6c9d5fb..56a442ad2f5a9 100644 --- a/packages/kbn-ftr-common-functional-services/tsconfig.json +++ b/packages/kbn-ftr-common-functional-services/tsconfig.json @@ -18,7 +18,6 @@ "@kbn/expect", "@kbn/repo-info", "@kbn/es", - "@kbn/mock-idp-utils" ], "exclude": [ "target/**/*", diff --git a/packages/kbn-ftr-common-functional-ui-services/services/browser.ts b/packages/kbn-ftr-common-functional-ui-services/services/browser.ts index c017433446d75..8ac46821c60bf 100644 --- a/packages/kbn-ftr-common-functional-ui-services/services/browser.ts +++ b/packages/kbn-ftr-common-functional-ui-services/services/browser.ts @@ -590,6 +590,27 @@ class BrowserService extends FtrService { await this.driver.executeScript('return window.localStorage.clear();'); } + /** + * Adds a value in session storage for the focused window/frame. + * + * @return {Promise} + */ + public async getSessionStorageItem(key: string): Promise { + return await this.driver.executeScript( + `return window.sessionStorage.getItem("${key}");` + ); + } + + /** + * Removes a value in session storage for the focused window/frame. + * + * @param {string} key + * @return {Promise} + */ + public async removeSessionStorageItem(key: string): Promise { + await this.driver.executeScript('return window.sessionStorage.removeItem(arguments[0]);', key); + } + /** * Clears session storage for the focused window/frame. * diff --git a/packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts index 6eb10984eeb66..a4c45e7b24e7c 100644 --- a/packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts +++ b/packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts @@ -18,6 +18,16 @@ export async function RemoteProvider({ getService }: FtrProviderContext) { const browserType: Browsers = config.get('browser.type'); type BrowserStorage = 'sessionStorage' | 'localStorage'; + const getSessionStorageItem = async (key: string) => { + try { + return await driver.executeScript(`return window.sessionStorage.getItem("${key}");`); + } catch (error) { + if (!error.message.includes(`Failed to read the 'sessionStorage' property from 'Window'`)) { + throw error; + } + } + }; + const clearBrowserStorage = async (storageType: BrowserStorage) => { try { await driver.executeScript(`window.${storageType}.clear();`); @@ -93,6 +103,32 @@ export async function RemoteProvider({ getService }: FtrProviderContext) { lifecycle.afterTestSuite.add(async () => { await tryWebDriverCall(async () => { + // collect error message stashed in SessionStorage that indicate EuiProvider implementation error + const euiProviderWarning = await getSessionStorageItem('dev.euiProviderWarning'); + if (euiProviderWarning != null) { + let errorMessage: string; + let errorStack: string; + let pageHref: string; + let pageTitle: string; + try { + ({ + message: errorMessage, + stack: errorStack, + pageHref, + pageTitle, + } = JSON.parse(euiProviderWarning)); + } catch (error) { + throw new Error(`Found EuiProvider dev error, but the details could not be parsed`); + } + + log.error(`pageTitle: ${pageTitle}`); + log.error(`pageHref: ${pageHref}`); + log.error(`Error: ${errorMessage}`); + log.error(`Error stack: ${errorStack}`); + throw new Error(`Found EuiProvider dev error on: ${pageHref}`); + } + + // global cleanup const { width, height } = windowSizeStack.shift()!; await driver.manage().window().setRect({ width, height }); await clearBrowserStorage('sessionStorage'); diff --git a/packages/kbn-grid-layout/README.md b/packages/kbn-grid-layout/README.md new file mode 100644 index 0000000000000..873eb55b1210b --- /dev/null +++ b/packages/kbn-grid-layout/README.md @@ -0,0 +1,3 @@ +# @kbn/grid-layout + +Contains a simple drag and drop layout engine for Kibana Dashboards. diff --git a/packages/kbn-grid-layout/grid/grid_layout.tsx b/packages/kbn-grid-layout/grid/grid_layout.tsx new file mode 100644 index 0000000000000..68650035f7b44 --- /dev/null +++ b/packages/kbn-grid-layout/grid/grid_layout.tsx @@ -0,0 +1,92 @@ +/* + * 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 { EuiPortal, transparentize } from '@elastic/eui'; +import { css } from '@emotion/react'; +import { useBatchedPublishingSubjects } from '@kbn/presentation-publishing'; +import { euiThemeVars } from '@kbn/ui-theme'; +import React from 'react'; +import { GridRow } from './grid_row'; +import { GridLayoutData, GridSettings } from './types'; +import { useGridLayoutEvents } from './use_grid_layout_events'; +import { useGridLayoutState } from './use_grid_layout_state'; + +export const GridLayout = ({ + getCreationOptions, + renderPanelContents, +}: { + getCreationOptions: () => { initialLayout: GridLayoutData; gridSettings: GridSettings }; + renderPanelContents: (panelId: string) => React.ReactNode; +}) => { + const { gridLayoutStateManager, gridSizeRef } = useGridLayoutState({ + getCreationOptions, + }); + useGridLayoutEvents({ gridLayoutStateManager }); + + const [gridLayout, runtimeSettings, interactionEvent] = useBatchedPublishingSubjects( + gridLayoutStateManager.gridLayout$, + gridLayoutStateManager.runtimeSettings$, + gridLayoutStateManager.interactionEvent$ + ); + + return ( +
+ {gridLayout.map((rowData, rowIndex) => { + return ( + { + const currentLayout = gridLayoutStateManager.gridLayout$.value; + currentLayout[rowIndex].isCollapsed = !currentLayout[rowIndex].isCollapsed; + gridLayoutStateManager.gridLayout$.next(currentLayout); + }} + setInteractionEvent={(nextInteractionEvent) => { + if (!nextInteractionEvent) { + gridLayoutStateManager.hideDragPreview(); + } + gridLayoutStateManager.interactionEvent$.next(nextInteractionEvent); + }} + ref={(element) => (gridLayoutStateManager.rowRefs.current[rowIndex] = element)} + /> + ); + })} + +
+
+
+ +
+ ); +}; diff --git a/packages/kbn-grid-layout/grid/grid_panel.tsx b/packages/kbn-grid-layout/grid/grid_panel.tsx new file mode 100644 index 0000000000000..a0f53cef8869c --- /dev/null +++ b/packages/kbn-grid-layout/grid/grid_panel.tsx @@ -0,0 +1,158 @@ +/* + * 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 { + EuiIcon, + EuiPanel, + euiFullHeight, + transparentize, + useEuiOverflowScroll, +} from '@elastic/eui'; +import { css } from '@emotion/react'; +import { euiThemeVars } from '@kbn/ui-theme'; +import React, { useCallback, useRef } from 'react'; +import { GridPanelData, PanelInteractionEvent } from './types'; + +export const GridPanel = ({ + activePanelId, + panelData, + renderPanelContents, + setInteractionEvent, +}: { + panelData: GridPanelData; + activePanelId: string | undefined; + renderPanelContents: (panelId: string) => React.ReactNode; + setInteractionEvent: (interactionData?: Omit) => void; +}) => { + const panelRef = useRef(null); + const ghostRef = useRef(null); + const thisPanelActive = activePanelId === panelData.id; + + const interactionStart = useCallback( + (type: 'drag' | 'resize', e: React.DragEvent) => { + if (!panelRef.current || !ghostRef.current) return; + e.dataTransfer.effectAllowed = 'move'; + e.dataTransfer.dropEffect = 'move'; + e.dataTransfer.setDragImage(ghostRef.current, 0, 0); + const panelRect = panelRef.current.getBoundingClientRect(); + setInteractionEvent({ + type, + id: panelData.id, + panelDiv: panelRef.current, + mouseOffsets: { + top: e.clientY - panelRect.top, + left: e.clientX - panelRect.left, + right: e.clientX - panelRect.right, + bottom: e.clientY - panelRect.bottom, + }, + }); + }, + [panelData.id, setInteractionEvent] + ); + + return ( +
+ + {/* Hidden dragging ghost */} +
+ {/* drag handle */} +
) => interactionStart('drag', e)} + > + +
+ {/* Resize handle */} +
interactionStart('resize', e)} + css={css` + right: 0; + bottom: 0; + opacity: 0; + margin: -2px; + position: absolute; + width: ${euiThemeVars.euiSizeL}; + height: ${euiThemeVars.euiSizeL}; + transition: opacity 0.2s, border 0.2s; + border-radius: 7px 0 7px 0; + border-bottom: 2px solid ${euiThemeVars.euiColorSuccess}; + border-right: 2px solid ${euiThemeVars.euiColorSuccess}; + :hover { + background-color: ${transparentize(euiThemeVars.euiColorSuccess, 0.05)}; + cursor: se-resize; + } + `} + /> +
+ {renderPanelContents(panelData.id)} +
+ +
+ ); +}; diff --git a/packages/kbn-grid-layout/grid/grid_row.tsx b/packages/kbn-grid-layout/grid/grid_row.tsx new file mode 100644 index 0000000000000..3f2676a1db6ba --- /dev/null +++ b/packages/kbn-grid-layout/grid/grid_row.tsx @@ -0,0 +1,124 @@ +/* + * 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 { EuiButtonIcon, EuiFlexGroup, EuiSpacer, EuiTitle, transparentize } from '@elastic/eui'; +import { css } from '@emotion/react'; +import { euiThemeVars } from '@kbn/ui-theme'; +import React, { forwardRef, useMemo } from 'react'; +import { GridPanel } from './grid_panel'; +import { GridRowData, PanelInteractionEvent, RuntimeGridSettings } from './types'; + +const gridColor = transparentize(euiThemeVars.euiColorSuccess, 0.2); +const getGridBackgroundCSS = (settings: RuntimeGridSettings) => { + const { gutterSize, columnPixelWidth, rowHeight } = settings; + return css` + background-position: top -${gutterSize / 2}px left -${gutterSize / 2}px; + background-size: ${columnPixelWidth + gutterSize}px ${rowHeight + gutterSize}px; + background-image: linear-gradient(to right, ${gridColor} 1px, transparent 1px), + linear-gradient(to bottom, ${gridColor} 1px, transparent 1px); + `; +}; + +export const GridRow = forwardRef< + HTMLDivElement, + { + rowIndex: number; + rowData: GridRowData; + toggleIsCollapsed: () => void; + activePanelId: string | undefined; + targetRowIndex: number | undefined; + runtimeSettings: RuntimeGridSettings; + renderPanelContents: (panelId: string) => React.ReactNode; + setInteractionEvent: (interactionData?: PanelInteractionEvent) => void; + } +>( + ( + { + rowData, + rowIndex, + activePanelId, + targetRowIndex, + runtimeSettings, + toggleIsCollapsed, + renderPanelContents, + setInteractionEvent, + }, + gridRef + ) => { + const { gutterSize, columnCount, rowHeight } = runtimeSettings; + const isGridTargeted = activePanelId && targetRowIndex === rowIndex; + + // calculate row count based on the number of rows needed to fit all panels + const rowCount = useMemo(() => { + const maxRow = Object.values(rowData.panels).reduce((acc, panel) => { + return Math.max(acc, panel.row + panel.height); + }, 0); + return maxRow || 1; + }, [rowData]); + + return ( + <> + {rowIndex !== 0 && ( + <> + + + + +

{rowData.title}

+
+
+ + + )} + {!rowData.isCollapsed && ( +
+ {Object.values(rowData.panels).map((panelData) => ( + { + if (partialInteractionEvent) { + setInteractionEvent({ + ...partialInteractionEvent, + targetRowIndex: rowIndex, + }); + return; + } + setInteractionEvent(); + }} + /> + ))} +
+ )} + + ); + } +); diff --git a/packages/kbn-grid-layout/grid/resolve_grid_row.ts b/packages/kbn-grid-layout/grid/resolve_grid_row.ts new file mode 100644 index 0000000000000..1fb7d43dc35d2 --- /dev/null +++ b/packages/kbn-grid-layout/grid/resolve_grid_row.ts @@ -0,0 +1,107 @@ +/* + * 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 { GridPanelData, GridRowData } from './types'; + +const collides = (panelA: GridPanelData, panelB: GridPanelData) => { + if (panelA.id === panelB.id) return false; // same panel + if (panelA.column + panelA.width <= panelB.column) return false; // panel a is left of panel b + if (panelA.column >= panelB.column + panelB.width) return false; // panel a is right of panel b + if (panelA.row + panelA.height <= panelB.row) return false; // panel a is above panel b + if (panelA.row >= panelB.row + panelB.height) return false; // panel a is below panel b + return true; // boxes overlap +}; + +const getAllCollisionsWithPanel = ( + panelToCheck: GridPanelData, + gridLayout: GridRowData, + keysInOrder: string[] +): GridPanelData[] => { + const collidingPanels: GridPanelData[] = []; + for (const key of keysInOrder) { + const comparePanel = gridLayout.panels[key]; + if (comparePanel.id === panelToCheck.id) continue; + if (collides(panelToCheck, comparePanel)) { + collidingPanels.push(comparePanel); + } + } + return collidingPanels; +}; + +const getKeysInOrder = (rowData: GridRowData, draggedId?: string): string[] => { + const panelKeys = Object.keys(rowData.panels); + return panelKeys.sort((panelKeyA, panelKeyB) => { + const panelA = rowData.panels[panelKeyA]; + const panelB = rowData.panels[panelKeyB]; + + // sort by row first + if (panelA.row > panelB.row) return 1; + if (panelA.row < panelB.row) return -1; + + // if rows are the same. Is either panel being dragged? + if (panelA.id === draggedId) return -1; + if (panelB.id === draggedId) return 1; + + // if rows are the same and neither panel is being dragged, sort by column + if (panelA.column > panelB.column) return 1; + if (panelA.column < panelB.column) return -1; + + // fall back + return 1; + }); +}; + +const compactGridRow = (originalLayout: GridRowData) => { + const nextRowData = { ...originalLayout, panels: { ...originalLayout.panels } }; + // compact all vertical space. + const sortedKeysAfterMove = getKeysInOrder(nextRowData); + for (const panelKey of sortedKeysAfterMove) { + const panel = nextRowData.panels[panelKey]; + // try moving panel up one row at a time until it collides + while (panel.row > 0) { + const collisions = getAllCollisionsWithPanel( + { ...panel, row: panel.row - 1 }, + nextRowData, + sortedKeysAfterMove + ); + if (collisions.length !== 0) break; + panel.row -= 1; + } + } + return nextRowData; +}; + +export const resolveGridRow = ( + originalRowData: GridRowData, + dragRequest?: GridPanelData +): GridRowData => { + const nextRowData = { ...originalRowData, panels: { ...originalRowData.panels } }; + + // Apply drag request + if (dragRequest) { + nextRowData.panels[dragRequest.id] = dragRequest; + } + // return nextRowData; + + // push all panels down if they collide with another panel + const sortedKeys = getKeysInOrder(nextRowData, dragRequest?.id); + + for (const key of sortedKeys) { + const panel = nextRowData.panels[key]; + const collisions = getAllCollisionsWithPanel(panel, nextRowData, sortedKeys); + + for (const collision of collisions) { + const rowOverlap = panel.row + panel.height - collision.row; + if (rowOverlap > 0) { + collision.row += rowOverlap; + } + } + } + const compactedGrid = compactGridRow(nextRowData); + return compactedGrid; +}; diff --git a/packages/kbn-grid-layout/grid/types.ts b/packages/kbn-grid-layout/grid/types.ts new file mode 100644 index 0000000000000..e3119f6e1cfd2 --- /dev/null +++ b/packages/kbn-grid-layout/grid/types.ts @@ -0,0 +1,97 @@ +/* + * 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 { BehaviorSubject } from 'rxjs'; +export interface GridCoordinate { + column: number; + row: number; +} + +export interface GridRect extends GridCoordinate { + width: number; + height: number; +} + +export interface GridPanelData extends GridRect { + id: string; +} + +export interface GridRowData { + title: string; + isCollapsed: boolean; + panels: { + [key: string]: GridPanelData; + }; +} + +export type GridLayoutData = GridRowData[]; + +export interface GridSettings { + gutterSize: number; + rowHeight: number; + columnCount: number; +} + +/** + * The runtime settings for the grid, including the pixel width of each column + * which is calculated on the fly based on the grid settings and the width of + * the containing element. + */ +export type RuntimeGridSettings = GridSettings & { columnPixelWidth: number }; + +export interface GridLayoutStateManager { + hideDragPreview: () => void; + updatePreviewElement: (rect: { + top: number; + left: number; + bottom: number; + right: number; + }) => void; + + gridLayout$: BehaviorSubject; + runtimeSettings$: BehaviorSubject; + rowRefs: React.MutableRefObject>; + dragPreviewRef: React.MutableRefObject; + interactionEvent$: BehaviorSubject; +} + +/** + * The information required to start a panel interaction. + */ +export interface PanelInteractionEvent { + /** + * The type of interaction being performed. + */ + type: 'drag' | 'resize'; + + /** + * The id of the panel being interacted with. + */ + id: string; + + /** + * The index of the grid row this panel interaction is targeting. + */ + targetRowIndex: number; + + /** + * The pixel rect of the panel being interacted with. + */ + panelDiv: HTMLDivElement; + + /** + * The pixel offsets from where the mouse was at drag start to the + * edges of the panel + */ + mouseOffsets: { + top: number; + left: number; + right: number; + bottom: number; + }; +} diff --git a/packages/kbn-grid-layout/grid/use_grid_layout_events.ts b/packages/kbn-grid-layout/grid/use_grid_layout_events.ts new file mode 100644 index 0000000000000..c8c1a505fc13a --- /dev/null +++ b/packages/kbn-grid-layout/grid/use_grid_layout_events.ts @@ -0,0 +1,205 @@ +/* + * 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 { useEffect, useRef } from 'react'; +import { resolveGridRow } from './resolve_grid_row'; +import { GridPanelData, GridLayoutStateManager } from './types'; + +export const isGridDataEqual = (a?: GridPanelData, b?: GridPanelData) => { + return ( + a?.id === b?.id && + a?.column === b?.column && + a?.row === b?.row && + a?.width === b?.width && + a?.height === b?.height + ); +}; + +export const useGridLayoutEvents = ({ + gridLayoutStateManager, +}: { + gridLayoutStateManager: GridLayoutStateManager; +}) => { + const dragEnterCount = useRef(0); + const lastRequestedPanelPosition = useRef(undefined); + + // ----------------------------------------------------------------------------------------- + // Set up drag events + // ----------------------------------------------------------------------------------------- + useEffect(() => { + const { runtimeSettings$, interactionEvent$, gridLayout$ } = gridLayoutStateManager; + const dragOver = (e: MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + + const gridRowElements = gridLayoutStateManager.rowRefs.current; + const previewElement = gridLayoutStateManager.dragPreviewRef.current; + + const interactionEvent = interactionEvent$.value; + const isResize = interactionEvent?.type === 'resize'; + + const currentLayout = gridLayout$.value; + const currentGridData = (() => { + if (!interactionEvent) return; + for (const row of currentLayout) { + if (row.panels[interactionEvent.id]) return row.panels[interactionEvent.id]; + } + })(); + + if ( + !runtimeSettings$.value || + !interactionEvent || + !previewElement || + !gridRowElements || + !currentGridData + ) { + return; + } + + const mouseTargetPixel = { x: e.clientX, y: e.clientY }; + const panelRect = interactionEvent.panelDiv.getBoundingClientRect(); + const previewRect = { + left: isResize ? panelRect.left : mouseTargetPixel.x - interactionEvent.mouseOffsets.left, + top: isResize ? panelRect.top : mouseTargetPixel.y - interactionEvent.mouseOffsets.top, + bottom: mouseTargetPixel.y - interactionEvent.mouseOffsets.bottom, + right: mouseTargetPixel.x - interactionEvent.mouseOffsets.right, + }; + gridLayoutStateManager.updatePreviewElement(previewRect); + + // find the grid that the preview rect is over + const previewBottom = + previewRect.top + gridLayoutStateManager.runtimeSettings$.value.rowHeight; + const lastRowIndex = interactionEvent?.targetRowIndex; + const targetRowIndex = (() => { + if (isResize) return lastRowIndex; + + let highestOverlap = -Infinity; + let highestOverlapRowIndex = -1; + gridRowElements.forEach((row, index) => { + if (!row) return; + const rowRect = row.getBoundingClientRect(); + const overlap = + Math.min(previewBottom, rowRect.bottom) - Math.max(previewRect.top, rowRect.top); + if (overlap > highestOverlap) { + highestOverlap = overlap; + highestOverlapRowIndex = index; + } + }); + return highestOverlapRowIndex; + })(); + const hasChangedGridRow = targetRowIndex !== lastRowIndex; + + // re-render when the target row changes + if (hasChangedGridRow) { + interactionEvent$.next({ + ...interactionEvent, + targetRowIndex, + }); + } + + // calculate the requested grid position + const { columnCount, gutterSize, rowHeight, columnPixelWidth } = runtimeSettings$.value; + const targetedGridRow = gridRowElements[targetRowIndex]; + const targetedGridLeft = targetedGridRow?.getBoundingClientRect().left ?? 0; + const targetedGridTop = targetedGridRow?.getBoundingClientRect().top ?? 0; + + const maxColumn = isResize ? columnCount : columnCount - currentGridData.width; + + const localXCoordinate = isResize + ? previewRect.right - targetedGridLeft + : previewRect.left - targetedGridLeft; + const localYCoordinate = isResize + ? previewRect.bottom - targetedGridTop + : previewRect.top - targetedGridTop; + + const targetColumn = Math.min( + Math.max(Math.round(localXCoordinate / (columnPixelWidth + gutterSize)), 0), + maxColumn + ); + const targetRow = Math.max(Math.round(localYCoordinate / (rowHeight + gutterSize)), 0); + const requestedGridData = { ...currentGridData }; + if (isResize) { + requestedGridData.width = Math.max(targetColumn - requestedGridData.column, 1); + requestedGridData.height = Math.max(targetRow - requestedGridData.row, 1); + } else { + requestedGridData.column = targetColumn; + requestedGridData.row = targetRow; + } + + // resolve the new grid layout + if ( + hasChangedGridRow || + !isGridDataEqual(requestedGridData, lastRequestedPanelPosition.current) + ) { + lastRequestedPanelPosition.current = { ...requestedGridData }; + + // remove the panel from the row it's currently in. + const nextLayout = currentLayout.map((row, rowIndex) => { + const { [interactionEvent.id]: interactingPanel, ...otherPanels } = row.panels; + return { ...row, panels: { ...otherPanels } }; + }); + + // resolve destination grid + const destinationGrid = nextLayout[targetRowIndex]; + const resolvedDestinationGrid = resolveGridRow(destinationGrid, requestedGridData); + nextLayout[targetRowIndex] = resolvedDestinationGrid; + + // resolve origin grid + if (hasChangedGridRow) { + const originGrid = nextLayout[lastRowIndex]; + const resolvedOriginGrid = resolveGridRow(originGrid); + nextLayout[lastRowIndex] = resolvedOriginGrid; + } + gridLayout$.next(nextLayout); + } + }; + + const onDrop = (e: MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + if (!interactionEvent$.value) return; + + interactionEvent$.next(undefined); + gridLayoutStateManager.hideDragPreview(); + dragEnterCount.current = 0; + }; + + const onDragEnter = (e: MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + if (!interactionEvent$.value) return; + + dragEnterCount.current++; + }; + + const onDragLeave = (e: MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + if (!interactionEvent$.value) return; + + dragEnterCount.current--; + if (dragEnterCount.current === 0) { + interactionEvent$.next(undefined); + gridLayoutStateManager.hideDragPreview(); + dragEnterCount.current = 0; + } + }; + + window.addEventListener('drop', onDrop); + window.addEventListener('dragover', dragOver); + window.addEventListener('dragenter', onDragEnter); + window.addEventListener('dragleave', onDragLeave); + return () => { + window.removeEventListener('drop', dragOver); + window.removeEventListener('dragover', dragOver); + window.removeEventListener('dragenter', onDragEnter); + window.removeEventListener('dragleave', onDragLeave); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); +}; diff --git a/packages/kbn-grid-layout/grid/use_grid_layout_state.ts b/packages/kbn-grid-layout/grid/use_grid_layout_state.ts new file mode 100644 index 0000000000000..bad259b428892 --- /dev/null +++ b/packages/kbn-grid-layout/grid/use_grid_layout_state.ts @@ -0,0 +1,94 @@ +/* + * 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 { debounce } from 'lodash'; +import { useMemo, useRef } from 'react'; +import { BehaviorSubject } from 'rxjs'; +import useResizeObserver from 'use-resize-observer/polyfilled'; +import { + GridLayoutData, + GridLayoutStateManager, + GridSettings, + PanelInteractionEvent, + RuntimeGridSettings, +} from './types'; + +export const useGridLayoutState = ({ + getCreationOptions, +}: { + getCreationOptions: () => { initialLayout: GridLayoutData; gridSettings: GridSettings }; +}): { + gridLayoutStateManager: GridLayoutStateManager; + gridSizeRef: (instance: HTMLDivElement | null) => void; +} => { + const rowRefs = useRef>([]); + const dragPreviewRef = useRef(null); + + const { gridLayoutStateManager, onWidthChange } = useMemo(() => { + const { initialLayout, gridSettings } = getCreationOptions(); + const gridLayout$ = new BehaviorSubject(initialLayout); + const interactionEvent$ = new BehaviorSubject(undefined); + const runtimeSettings$ = new BehaviorSubject({ + ...gridSettings, + columnPixelWidth: 0, + }); + + // debounce width changes to avoid re-rendering too frequently when the browser is resizing + const widthChange = debounce((elementWidth: number) => { + const columnPixelWidth = + (elementWidth - gridSettings.gutterSize * (gridSettings.columnCount - 1)) / + gridSettings.columnCount; + runtimeSettings$.next({ ...gridSettings, columnPixelWidth }); + }, 250); + + return { + gridLayoutStateManager: { + rowRefs, + gridLayout$, + dragPreviewRef, + runtimeSettings$, + interactionEvent$, + updatePreviewElement: (previewRect: { + top: number; + bottom: number; + left: number; + right: number; + }) => { + if (!dragPreviewRef.current) return; + dragPreviewRef.current.style.opacity = '1'; + dragPreviewRef.current.style.left = `${previewRect.left}px`; + dragPreviewRef.current.style.top = `${previewRect.top}px`; + dragPreviewRef.current.style.width = `${Math.max( + previewRect.right - previewRect.left, + runtimeSettings$.value.columnPixelWidth + )}px`; + dragPreviewRef.current.style.height = `${Math.max( + previewRect.bottom - previewRect.top, + runtimeSettings$.value.rowHeight + )}px`; + }, + hideDragPreview: () => { + if (!dragPreviewRef.current) return; + dragPreviewRef.current.style.opacity = '0'; + }, + }, + onWidthChange: widthChange, + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const { ref: gridSizeRef } = useResizeObserver({ + onResize: (dimensions) => { + if (dimensions.width) { + onWidthChange(dimensions.width); + } + }, + }); + + return { gridLayoutStateManager, gridSizeRef }; +}; diff --git a/packages/kbn-grid-layout/index.ts b/packages/kbn-grid-layout/index.ts new file mode 100644 index 0000000000000..4ebe1e7575527 --- /dev/null +++ b/packages/kbn-grid-layout/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 { GridLayout } from './grid/grid_layout'; +export type { GridLayoutData, GridPanelData, GridRowData, GridSettings } from './grid/types'; diff --git a/packages/kbn-grid-layout/jest.config.js b/packages/kbn-grid-layout/jest.config.js new file mode 100644 index 0000000000000..b4c6123bdccce --- /dev/null +++ b/packages/kbn-grid-layout/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../..', + roots: ['/packages/kbn-grid-layout'], +}; diff --git a/packages/kbn-grid-layout/kibana.jsonc b/packages/kbn-grid-layout/kibana.jsonc new file mode 100644 index 0000000000000..8063456ea0b5f --- /dev/null +++ b/packages/kbn-grid-layout/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-browser", + "id": "@kbn/grid-layout", + "owner": "@elastic/kibana-presentation" +} diff --git a/packages/kbn-grid-layout/package.json b/packages/kbn-grid-layout/package.json new file mode 100644 index 0000000000000..102eef2fa4d93 --- /dev/null +++ b/packages/kbn-grid-layout/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/grid-layout", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/kbn-grid-layout/tsconfig.json b/packages/kbn-grid-layout/tsconfig.json new file mode 100644 index 0000000000000..3aff3ea3aa354 --- /dev/null +++ b/packages/kbn-grid-layout/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react", + "@emotion/react/types/css-prop" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/presentation-publishing", + "@kbn/ui-theme", + ] +} diff --git a/packages/kbn-grouping/src/containers/query/types.ts b/packages/kbn-grouping/src/containers/query/types.ts index 69a284ecf7a59..c50e4f8b3391a 100644 --- a/packages/kbn-grouping/src/containers/query/types.ts +++ b/packages/kbn-grouping/src/containers/query/types.ts @@ -7,7 +7,7 @@ */ import type { - InlineScript, + Script, MappingRuntimeField, MappingRuntimeFields, } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; @@ -52,7 +52,7 @@ export interface MainAggregation extends NamedAggregation { } export interface GroupingRuntimeField extends MappingRuntimeField { - script: InlineScript & { + script: Script & { params: Record; }; } diff --git a/packages/kbn-handlebars/src/spec/index.regressions.test.ts b/packages/kbn-handlebars/src/spec/index.regressions.test.ts index fc2065fe7585d..5ff37a3dd9849 100644 --- a/packages/kbn-handlebars/src/spec/index.regressions.test.ts +++ b/packages/kbn-handlebars/src/spec/index.regressions.test.ts @@ -231,7 +231,7 @@ describe('Regressions', () => { // It's valid to execute a block against an undefined context, but // helpers can not do so, so we expect to have an empty object here; for (const name in this) { - if (Object.prototype.hasOwnProperty.call(this, name)) { + if (Object.hasOwn(this, name)) { return 'found'; } } diff --git a/packages/kbn-handlebars/src/utils.ts b/packages/kbn-handlebars/src/utils.ts index b44f4a9791f02..d33bafcd0ef5e 100644 --- a/packages/kbn-handlebars/src/utils.ts +++ b/packages/kbn-handlebars/src/utils.ts @@ -63,6 +63,7 @@ export function allowUnsafeEval() { try { // Do not remove the `kbnUnsafeEvalTest` parameter. // It is used for filtering out expected CSP failures, and must be the first piece of content in this function. + // eslint-disable-next-line no-new-func new Function('kbnUnsafeEvalTest', 'return true;'); return true; } catch (e) { diff --git a/packages/kbn-handlebars/src/visitor.ts b/packages/kbn-handlebars/src/visitor.ts index 16dc151df8640..2195820bf46de 100644 --- a/packages/kbn-handlebars/src/visitor.ts +++ b/packages/kbn-handlebars/src/visitor.ts @@ -112,7 +112,7 @@ export class ElasticHandlebarsVisitor extends Handlebars.Visitor { if (result == null) { return result; } - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + if (Object.hasOwn(parent, propertyName)) { return result; } diff --git a/packages/kbn-investigation-shared/README.md b/packages/kbn-investigation-shared/README.md new file mode 100644 index 0000000000000..07c07fe3e7081 --- /dev/null +++ b/packages/kbn-investigation-shared/README.md @@ -0,0 +1,3 @@ +# @kbn/investigation-shared + +Empty package generated by @kbn/generate diff --git a/packages/kbn-investigation-shared/index.ts b/packages/kbn-investigation-shared/index.ts new file mode 100644 index 0000000000000..de0577ee3ed83 --- /dev/null +++ b/packages/kbn-investigation-shared/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 './src'; diff --git a/packages/kbn-investigation-shared/jest.config.js b/packages/kbn-investigation-shared/jest.config.js new file mode 100644 index 0000000000000..97bfdd78ff319 --- /dev/null +++ b/packages/kbn-investigation-shared/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../..', + roots: ['/packages/kbn-investigation-shared'], +}; diff --git a/packages/kbn-investigation-shared/kibana.jsonc b/packages/kbn-investigation-shared/kibana.jsonc new file mode 100644 index 0000000000000..ffc2802ff3af9 --- /dev/null +++ b/packages/kbn-investigation-shared/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/investigation-shared", + "owner": "@elastic/obs-ux-management-team" +} diff --git a/packages/kbn-investigation-shared/package.json b/packages/kbn-investigation-shared/package.json new file mode 100644 index 0000000000000..bf4a97caf483e --- /dev/null +++ b/packages/kbn-investigation-shared/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/investigation-shared", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/packages/kbn-investigation-shared/src/index.ts b/packages/kbn-investigation-shared/src/index.ts new file mode 100644 index 0000000000000..cf2c6a5e96f54 --- /dev/null +++ b/packages/kbn-investigation-shared/src/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 './rest_specs'; +export * from './schema'; diff --git a/packages/kbn-investigation-shared/src/rest_specs/create.ts b/packages/kbn-investigation-shared/src/rest_specs/create.ts new file mode 100644 index 0000000000000..cab2de27d5eb7 --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/create.ts @@ -0,0 +1,30 @@ +/* + * 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 t from 'io-ts'; +import { investigationResponseSchema } from './investigation'; +import { alertOriginSchema, blankOriginSchema } from '../schema'; + +const createInvestigationParamsSchema = t.type({ + body: t.type({ + id: t.string, + title: t.string, + params: t.type({ + timeRange: t.type({ from: t.number, to: t.number }), + }), + origin: t.union([alertOriginSchema, blankOriginSchema]), + }), +}); + +const createInvestigationResponseSchema = investigationResponseSchema; + +type CreateInvestigationParams = t.TypeOf; +type CreateInvestigationResponse = t.OutputOf; + +export { createInvestigationParamsSchema, createInvestigationResponseSchema }; +export type { CreateInvestigationParams, CreateInvestigationResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/create_item.ts b/packages/kbn-investigation-shared/src/rest_specs/create_item.ts new file mode 100644 index 0000000000000..c94673313a50c --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/create_item.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 * as t from 'io-ts'; +import { investigationItemsSchema } from '../schema'; +import { investigationItemResponseSchema } from './investigation_item'; + +const createInvestigationItemParamsSchema = t.type({ + path: t.type({ + investigationId: t.string, + }), + body: investigationItemsSchema, +}); + +const createInvestigationItemResponseSchema = investigationItemResponseSchema; + +type CreateInvestigationItemParams = t.TypeOf< + typeof createInvestigationItemParamsSchema.props.body +>; +type CreateInvestigationItemResponse = t.OutputOf; + +export { createInvestigationItemParamsSchema, createInvestigationItemResponseSchema }; +export type { CreateInvestigationItemParams, CreateInvestigationItemResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/create_note.ts b/packages/kbn-investigation-shared/src/rest_specs/create_note.ts new file mode 100644 index 0000000000000..0132b86093185 --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/create_note.ts @@ -0,0 +1,29 @@ +/* + * 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 t from 'io-ts'; +import { investigationNoteResponseSchema } from './investigation_note'; + +const createInvestigationNoteParamsSchema = t.type({ + path: t.type({ + investigationId: t.string, + }), + body: t.type({ + content: t.string, + }), +}); + +const createInvestigationNoteResponseSchema = investigationNoteResponseSchema; + +type CreateInvestigationNoteParams = t.TypeOf< + typeof createInvestigationNoteParamsSchema.props.body +>; +type CreateInvestigationNoteResponse = t.OutputOf; + +export { createInvestigationNoteParamsSchema, createInvestigationNoteResponseSchema }; +export type { CreateInvestigationNoteParams, CreateInvestigationNoteResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/delete.ts b/packages/kbn-investigation-shared/src/rest_specs/delete.ts new file mode 100644 index 0000000000000..52df3b250775d --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/delete.ts @@ -0,0 +1,20 @@ +/* + * 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 t from 'io-ts'; + +const deleteInvestigationParamsSchema = t.type({ + path: t.type({ + investigationId: t.string, + }), +}); + +type DeleteInvestigationParams = t.TypeOf; + +export { deleteInvestigationParamsSchema }; +export type { DeleteInvestigationParams }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/delete_item.ts b/packages/kbn-investigation-shared/src/rest_specs/delete_item.ts new file mode 100644 index 0000000000000..14ac6f763ce38 --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/delete_item.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. + */ + +import * as t from 'io-ts'; + +const deleteInvestigationItemParamsSchema = t.type({ + path: t.type({ + investigationId: t.string, + itemId: t.string, + }), +}); + +type DeleteInvestigationItemParams = t.TypeOf< + typeof deleteInvestigationItemParamsSchema.props.path +>; + +export { deleteInvestigationItemParamsSchema }; +export type { DeleteInvestigationItemParams }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/delete_note.ts b/packages/kbn-investigation-shared/src/rest_specs/delete_note.ts new file mode 100644 index 0000000000000..80cae4a982721 --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/delete_note.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. + */ + +import * as t from 'io-ts'; + +const deleteInvestigationNoteParamsSchema = t.type({ + path: t.type({ + investigationId: t.string, + noteId: t.string, + }), +}); + +type DeleteInvestigationNoteParams = t.TypeOf< + typeof deleteInvestigationNoteParamsSchema.props.path +>; + +export { deleteInvestigationNoteParamsSchema }; +export type { DeleteInvestigationNoteParams }; diff --git a/x-pack/plugins/observability_solution/investigate_app/common/schema/find.ts b/packages/kbn-investigation-shared/src/rest_specs/find.ts similarity index 75% rename from x-pack/plugins/observability_solution/investigate_app/common/schema/find.ts rename to packages/kbn-investigation-shared/src/rest_specs/find.ts index dc76a39fce679..0bbb853117138 100644 --- a/x-pack/plugins/observability_solution/investigate_app/common/schema/find.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/find.ts @@ -1,14 +1,17 @@ /* * 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 * as t from 'io-ts'; import { investigationResponseSchema } from './investigation'; const findInvestigationsParamsSchema = t.partial({ query: t.partial({ + alertId: t.string, page: t.string, perPage: t.string, }), @@ -21,8 +24,8 @@ const findInvestigationsResponseSchema = t.type({ results: t.array(investigationResponseSchema), }); -type FindInvestigationsParams = t.TypeOf; // Parsed payload used by the backend -type FindInvestigationsResponse = t.OutputOf; // Raw response sent to the frontend +type FindInvestigationsParams = t.TypeOf; +type FindInvestigationsResponse = t.OutputOf; export { findInvestigationsParamsSchema, findInvestigationsResponseSchema }; export type { FindInvestigationsParams, FindInvestigationsResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/get.ts b/packages/kbn-investigation-shared/src/rest_specs/get.ts new file mode 100644 index 0000000000000..f0cc850116087 --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/get.ts @@ -0,0 +1,24 @@ +/* + * 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 t from 'io-ts'; +import { investigationResponseSchema } from './investigation'; + +const getInvestigationParamsSchema = t.type({ + path: t.type({ + investigationId: t.string, + }), +}); + +const getInvestigationResponseSchema = investigationResponseSchema; + +type GetInvestigationParams = t.TypeOf; // Parsed payload used by the backend +type GetInvestigationResponse = t.OutputOf; // Raw response sent to the frontend + +export { getInvestigationParamsSchema, getInvestigationResponseSchema }; +export type { GetInvestigationParams, GetInvestigationResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/get_items.ts b/packages/kbn-investigation-shared/src/rest_specs/get_items.ts new file mode 100644 index 0000000000000..dde19ceda9243 --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/get_items.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. + */ + +import * as t from 'io-ts'; +import { investigationItemResponseSchema } from './investigation_item'; + +const getInvestigationItemsParamsSchema = t.type({ + path: t.type({ + investigationId: t.string, + }), +}); + +const getInvestigationItemsResponseSchema = t.array(investigationItemResponseSchema); + +type GetInvestigationItemsResponse = t.OutputOf; + +export { getInvestigationItemsParamsSchema, getInvestigationItemsResponseSchema }; +export type { GetInvestigationItemsResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/get_notes.ts b/packages/kbn-investigation-shared/src/rest_specs/get_notes.ts new file mode 100644 index 0000000000000..7cd9aa1f3fe9c --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/get_notes.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. + */ + +import * as t from 'io-ts'; +import { investigationNoteResponseSchema } from './investigation_note'; + +const getInvestigationNotesParamsSchema = t.type({ + path: t.type({ + investigationId: t.string, + }), +}); + +const getInvestigationNotesResponseSchema = t.array(investigationNoteResponseSchema); + +type GetInvestigationNotesResponse = t.OutputOf; + +export { getInvestigationNotesParamsSchema, getInvestigationNotesResponseSchema }; +export type { GetInvestigationNotesResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/index.ts b/packages/kbn-investigation-shared/src/rest_specs/index.ts new file mode 100644 index 0000000000000..50c1e300cd96a --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/index.ts @@ -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. + */ + +export type * from './create'; +export type * from './create_note'; +export type * from './delete'; +export type * from './find'; +export type * from './get'; +export type * from './get_notes'; +export type * from './delete_note'; +export type * from './investigation_note'; +export type * from './create_item'; +export type * from './delete_item'; +export type * from './get_items'; + +export * from './create'; +export * from './create_note'; +export * from './delete'; +export * from './find'; +export * from './get'; +export * from './get_notes'; +export * from './delete_note'; +export * from './investigation_note'; +export * from './create_item'; +export * from './delete_item'; +export * from './get_items'; diff --git a/packages/kbn-investigation-shared/src/rest_specs/investigation.ts b/packages/kbn-investigation-shared/src/rest_specs/investigation.ts new file mode 100644 index 0000000000000..c2530ff0dc9a4 --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/investigation.ts @@ -0,0 +1,17 @@ +/* + * 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 t from 'io-ts'; +import { investigationSchema } from '../schema'; + +const investigationResponseSchema = investigationSchema; + +type InvestigationResponse = t.OutputOf; + +export { investigationResponseSchema }; +export type { InvestigationResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts b/packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts new file mode 100644 index 0000000000000..df9ec315e3277 --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts @@ -0,0 +1,17 @@ +/* + * 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 t from 'io-ts'; +import { investigationItemSchema } from '../schema'; + +const investigationItemResponseSchema = investigationItemSchema; + +type InvestigationItemResponse = t.OutputOf; + +export { investigationItemResponseSchema }; +export type { InvestigationItemResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts b/packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts new file mode 100644 index 0000000000000..5e6a15b327d8a --- /dev/null +++ b/packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts @@ -0,0 +1,17 @@ +/* + * 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 t from 'io-ts'; +import { investigationNoteSchema } from '../schema'; + +const investigationNoteResponseSchema = investigationNoteSchema; + +type InvestigationNoteResponse = t.OutputOf; + +export { investigationNoteResponseSchema }; +export type { InvestigationNoteResponse }; diff --git a/packages/kbn-investigation-shared/src/schema/index.ts b/packages/kbn-investigation-shared/src/schema/index.ts new file mode 100644 index 0000000000000..d6c017c963e7c --- /dev/null +++ b/packages/kbn-investigation-shared/src/schema/index.ts @@ -0,0 +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 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 './investigation'; +export * from './investigation_item'; +export * from './investigation_note'; +export * from './origin'; diff --git a/packages/kbn-investigation-shared/src/schema/investigation.ts b/packages/kbn-investigation-shared/src/schema/investigation.ts new file mode 100644 index 0000000000000..299d077d71e6c --- /dev/null +++ b/packages/kbn-investigation-shared/src/schema/investigation.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 * as t from 'io-ts'; +import { alertOriginSchema, blankOriginSchema } from './origin'; +import { investigationNoteSchema } from './investigation_note'; +import { investigationItemSchema } from './investigation_item'; + +const investigationSchema = t.type({ + id: t.string, + title: t.string, + createdAt: t.number, + createdBy: t.string, + params: t.type({ + timeRange: t.type({ from: t.number, to: t.number }), + }), + origin: t.union([alertOriginSchema, blankOriginSchema]), + status: t.union([t.literal('ongoing'), t.literal('closed')]), + notes: t.array(investigationNoteSchema), + items: t.array(investigationItemSchema), +}); + +export { investigationSchema }; diff --git a/packages/kbn-investigation-shared/src/schema/investigation_item.ts b/packages/kbn-investigation-shared/src/schema/investigation_item.ts new file mode 100644 index 0000000000000..8689224960c52 --- /dev/null +++ b/packages/kbn-investigation-shared/src/schema/investigation_item.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 * as t from 'io-ts'; + +const esqlItemSchema = t.type({ + title: t.string, + type: t.literal('esql'), + params: t.type({ + esql: t.string, + suggestion: t.any, + }), +}); + +const investigationItemsSchema = esqlItemSchema; // replace with union with various item types + +const investigationItemSchema = t.intersection([ + t.type({ id: t.string, createdAt: t.number, createdBy: t.string }), + investigationItemsSchema, +]); + +export { investigationItemSchema, investigationItemsSchema, esqlItemSchema }; diff --git a/packages/kbn-investigation-shared/src/schema/investigation_note.ts b/packages/kbn-investigation-shared/src/schema/investigation_note.ts new file mode 100644 index 0000000000000..53ecd11c77bb4 --- /dev/null +++ b/packages/kbn-investigation-shared/src/schema/investigation_note.ts @@ -0,0 +1,18 @@ +/* + * 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 t from 'io-ts'; + +const investigationNoteSchema = t.type({ + id: t.string, + content: t.string, + createdAt: t.number, + createdBy: t.string, +}); + +export { investigationNoteSchema }; diff --git a/packages/kbn-investigation-shared/src/schema/origin.ts b/packages/kbn-investigation-shared/src/schema/origin.ts new file mode 100644 index 0000000000000..7d5c5447b633d --- /dev/null +++ b/packages/kbn-investigation-shared/src/schema/origin.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. + */ + +import * as t from 'io-ts'; + +const blankOriginSchema = t.type({ type: t.literal('blank') }); +const alertOriginSchema = t.type({ type: t.literal('alert'), id: t.string }); + +export { alertOriginSchema, blankOriginSchema }; diff --git a/packages/kbn-investigation-shared/tsconfig.json b/packages/kbn-investigation-shared/tsconfig.json new file mode 100644 index 0000000000000..2f9ddddbeea23 --- /dev/null +++ b/packages/kbn-investigation-shared/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [] +} diff --git a/packages/kbn-language-documentation-popover/src/components/documentation.scss b/packages/kbn-language-documentation-popover/src/components/documentation.scss index 752797decfa4e..2db3d25619d6e 100644 --- a/packages/kbn-language-documentation-popover/src/components/documentation.scss +++ b/packages/kbn-language-documentation-popover/src/components/documentation.scss @@ -62,8 +62,8 @@ } .documentation__docsText { - @include euiYScroll; padding: $euiSize; + @include euiYScroll; } .documentation__docsTextGroup, diff --git a/packages/kbn-managed-content-badge/index.ts b/packages/kbn-managed-content-badge/index.ts index a548520c01237..1fb38681fe2b4 100644 --- a/packages/kbn-managed-content-badge/index.ts +++ b/packages/kbn-managed-content-badge/index.ts @@ -9,9 +9,10 @@ import { i18n } from '@kbn/i18n'; import type { EuiToolTipProps } from '@elastic/eui'; import type { TopNavMenuBadgeProps } from '@kbn/navigation-plugin/public'; -export const getManagedContentBadge: (tooltipText: string) => TopNavMenuBadgeProps = ( - tooltipText -) => ({ +export const getManagedContentBadge: ( + tooltipText: string, + disableTooltipProps?: boolean +) => TopNavMenuBadgeProps = (tooltipText, enableTooltipProps = true) => ({ 'data-test-subj': 'managedContentBadge', badgeText: i18n.translate('managedContentBadge.text', { defaultMessage: 'Managed', @@ -21,8 +22,10 @@ export const getManagedContentBadge: (tooltipText: string) => TopNavMenuBadgePro }), color: 'primary', iconType: 'glasses', - toolTipProps: { - content: tooltipText, - position: 'bottom', - } as EuiToolTipProps, + toolTipProps: enableTooltipProps + ? ({ + content: tooltipText, + position: 'bottom', + } as EuiToolTipProps) + : undefined, }); diff --git a/packages/kbn-managed-vscode-config/src/update_vscode_config.ts b/packages/kbn-managed-vscode-config/src/update_vscode_config.ts index d327ab98ae82c..2e3a3a5d25563 100644 --- a/packages/kbn-managed-vscode-config/src/update_vscode_config.ts +++ b/packages/kbn-managed-vscode-config/src/update_vscode_config.ts @@ -141,7 +141,7 @@ const mergeManagedProperties = ( if ( isBasicObjectProp(prop) && isManaged(prop) && - !Object.prototype.hasOwnProperty.call(managedValue, prop.key.value) + !Object.hasOwn(managedValue, prop.key.value) ) { remove(properties, prop); } diff --git a/packages/kbn-management/settings/components/field_input/input/select_input.tsx b/packages/kbn-management/settings/components/field_input/input/select_input.tsx index 9421d4d3e83b1..a02dbf61bd16f 100644 --- a/packages/kbn-management/settings/components/field_input/input/select_input.tsx +++ b/packages/kbn-management/settings/components/field_input/input/select_input.tsx @@ -42,7 +42,7 @@ export const SelectInput = ({ const options = useMemo( () => optionsProp?.map((option) => ({ - text: optionLabels.hasOwnProperty(option) ? optionLabels[option] : option, + text: Object.hasOwn(optionLabels, option) ? optionLabels[option] : option, value: option, })), [optionsProp, optionLabels] diff --git a/packages/kbn-management/settings/components/form/use_save.ts b/packages/kbn-management/settings/components/form/use_save.ts index 53af23e476d74..5268e6fcb9a5c 100644 --- a/packages/kbn-management/settings/components/form/use_save.ts +++ b/packages/kbn-management/settings/components/form/use_save.ts @@ -39,7 +39,7 @@ export const useSave = (params: UseSaveParameters) => { await saveChanges(changes, params.scope); params.clearChanges(); const requiresReload = params.fields.some( - (setting) => changes.hasOwnProperty(setting.id) && setting.requiresPageReload + (setting) => Object.hasOwn(changes, setting.id) && setting.requiresPageReload ); if (requiresReload) { showReloadPagePrompt(); diff --git a/packages/kbn-mock-idp-plugin/public/role_switcher.tsx b/packages/kbn-mock-idp-plugin/public/role_switcher.tsx index 7ef4e435e4e65..63bf43f4aa52e 100644 --- a/packages/kbn-mock-idp-plugin/public/role_switcher.tsx +++ b/packages/kbn-mock-idp-plugin/public/role_switcher.tsx @@ -145,7 +145,7 @@ const createForm = (url: string, fields: Record) => { form.setAttribute('action', url); for (const key in fields) { - if (!fields.hasOwnProperty(key)) { + if (!Object.hasOwn(fields, key)) { continue; } const input = document.createElement('input'); diff --git a/packages/kbn-monaco/src/console/folding_range_provider/folding_range_provider.ts b/packages/kbn-monaco/src/console/folding_range_provider/folding_range_provider.ts new file mode 100644 index 0000000000000..c88a02baa8fbc --- /dev/null +++ b/packages/kbn-monaco/src/console/folding_range_provider/folding_range_provider.ts @@ -0,0 +1,17 @@ +/* + * 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 { monaco } from '../../..'; +import { getFoldingRanges } from './folding_range_utils'; + +export const foldingRangeProvider: monaco.languages.FoldingRangeProvider = { + provideFoldingRanges: (model) => [ + ...getFoldingRanges(model.getLinesContent(), '{', '}'), + ...getFoldingRanges(model.getLinesContent(), '[', ']'), + ], +}; diff --git a/packages/kbn-monaco/src/console/folding_range_provider/folding_range_utils.test.ts b/packages/kbn-monaco/src/console/folding_range_provider/folding_range_utils.test.ts new file mode 100644 index 0000000000000..13a17ca866898 --- /dev/null +++ b/packages/kbn-monaco/src/console/folding_range_provider/folding_range_utils.test.ts @@ -0,0 +1,57 @@ +/* + * 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 { getFoldingRanges } from './folding_range_utils'; + +describe('getFoldingRanges', () => { + // Sample test input visualization: + // 1 PUT /test/_doc/1 + // 2 { + // 3 "some_key": { + // 4 "some_inner_key": """{ + // 5 "multi_line": "json string" + // 6 }""", + // 7 "some_other_key": 123 + // 8 }, + // 9 "outer_key_2": [ + // 10 1, + // 11 2, + // 12 3 + // 13 ] + // 14 } + + const SAMPLE_INPUT = [ + 'PUT /test/_doc/1', + '{ ', + ' "some_key": { ', + ' "some_inner_key": """{', + ' "multi_line": "json string"', + ' }""",', + ' "some_other_key": 123', + ' },', + ' "outer_key_2": [', + ' 1,', + ' 2,', + ' 3', + ' ]', + '}', + ]; + + it('returns correct ranges for parentheses', () => { + const expectedRanges = [ + { start: 3, end: 7 }, + { start: 2, end: 13 }, + ]; + expect(getFoldingRanges(SAMPLE_INPUT, '{', '}')).toEqual(expectedRanges); + }); + + it('returns correct ranges for square brackets', () => { + const expectedRanges = [{ start: 9, end: 12 }]; + expect(getFoldingRanges(SAMPLE_INPUT, '[', ']')).toEqual(expectedRanges); + }); +}); diff --git a/packages/kbn-monaco/src/console/folding_range_provider/folding_range_utils.ts b/packages/kbn-monaco/src/console/folding_range_provider/folding_range_utils.ts new file mode 100644 index 0000000000000..fb4f2d5cec00c --- /dev/null +++ b/packages/kbn-monaco/src/console/folding_range_provider/folding_range_utils.ts @@ -0,0 +1,47 @@ +/* + * 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 { monaco } from '../../..'; + +const getOpeningLineRegex = (openingMarker: string) => { + // Opening parentheses can only be preceded by a colon or nothing + // This ensures that it's not between quotes + const regExStr = `^(.*:\\s*)?\\${openingMarker}$`; + return new RegExp(regExStr); +}; + +const getClosingLineRegex = (closingMarker: string) => { + // Closing marker can only be followed by a comma or nothing + // This ensures that it's not between quotes + const regExStr = `^\\${closingMarker}\\s*(,)?$`; + return new RegExp(regExStr); +}; + +export const getFoldingRanges = (lines: string[], openingMarker: string, closingMarker: string) => { + const ranges: monaco.languages.ProviderResult = []; + const stack: number[] = []; + const openingLineRegex = getOpeningLineRegex(openingMarker); + const closingLineRegex = getClosingLineRegex(closingMarker); + + for (let i = 0; i < lines.length; i++) { + const lineContent = lines[i].trim(); + if (openingLineRegex.test(lineContent)) { + stack.push(i + 1); // Line numbers start from 1 so we need to add 1 to the current index + } else if (closingLineRegex.test(lineContent)) { + const start = stack.pop(); + if (start) { + ranges.push({ + start, + end: i, + }); + } + } + } + + return ranges; +}; diff --git a/packages/kbn-monaco/src/console/folding_range_provider/index.ts b/packages/kbn-monaco/src/console/folding_range_provider/index.ts new file mode 100644 index 0000000000000..4e9429182c000 --- /dev/null +++ b/packages/kbn-monaco/src/console/folding_range_provider/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 { foldingRangeProvider } from './folding_range_provider'; diff --git a/packages/kbn-monaco/src/console/index.ts b/packages/kbn-monaco/src/console/index.ts index 5b4127191802d..7f408a6fb8480 100644 --- a/packages/kbn-monaco/src/console/index.ts +++ b/packages/kbn-monaco/src/console/index.ts @@ -19,6 +19,7 @@ import { consoleOutputLexerRules, consoleOutputLanguageConfiguration, } from './lexer_rules'; +import { foldingRangeProvider } from './folding_range_provider'; export { CONSOLE_LANG_ID, CONSOLE_OUTPUT_LANG_ID, CONSOLE_THEME_ID } from './constants'; @@ -28,12 +29,14 @@ export const ConsoleLang: LangModuleType = { ID: CONSOLE_LANG_ID, lexerRules, languageConfiguration, + foldingRangeProvider, }; export const ConsoleOutputLang: LangModuleType = { ID: CONSOLE_OUTPUT_LANG_ID, lexerRules: consoleOutputLexerRules, languageConfiguration: consoleOutputLanguageConfiguration, + foldingRangeProvider, }; export type { ParsedRequest } from './types'; diff --git a/packages/kbn-monaco/src/console/lexer_rules/shared.ts b/packages/kbn-monaco/src/console/lexer_rules/shared.ts index 9a877d8d131b1..04ad2a573af2c 100644 --- a/packages/kbn-monaco/src/console/lexer_rules/shared.ts +++ b/packages/kbn-monaco/src/console/lexer_rules/shared.ts @@ -15,11 +15,13 @@ export const consoleSharedLanguageConfiguration: monaco.languages.LanguageConfig brackets: [ ['{', '}'], ['[', ']'], + ['"""', '"""\n'], ], autoClosingPairs: [ { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '"', close: '"' }, + { open: '"""', close: '"""' }, ], }; diff --git a/packages/kbn-monaco/src/console/parser.js b/packages/kbn-monaco/src/console/parser.js index e7369444ab85a..881370f5b9fac 100644 --- a/packages/kbn-monaco/src/console/parser.js +++ b/packages/kbn-monaco/src/console/parser.js @@ -37,24 +37,7 @@ export const createParser = () => { requestStartOffset = at - 1; requests.push({ startOffset: requestStartOffset }); }, - addRequestMethod = function(method) { - const lastRequest = getLastRequest(); - lastRequest.method = method; - requests.push(lastRequest); - requestEndOffset = at - 1; - }, - addRequestUrl = function(url) { - const lastRequest = getLastRequest(); - lastRequest.url = url; - requests.push(lastRequest); - requestEndOffset = at - 1; - }, - addRequestData = function(data) { - const lastRequest = getLastRequest(); - const dataArray = lastRequest.data || []; - dataArray.push(data); - lastRequest.data = dataArray; - requests.push(lastRequest); + updateRequestEnd = function () { requestEndOffset = at - 1; }, addRequestEnd = function() { @@ -409,17 +392,17 @@ export const createParser = () => { request = function () { white(); addRequestStart(); - const parsedMethod = method(); - addRequestMethod(parsedMethod); + method(); + updateRequestEnd(); strictWhite(); - const parsedUrl = url(); - addRequestUrl(parsedUrl); + url(); + updateRequestEnd(); strictWhite(); // advance to one new line newLine(); strictWhite(); if (ch == '{') { - const parsedObject = object(); - addRequestData(parsedObject); + object(); + updateRequestEnd(); } // multi doc request strictWhite(); // advance to one new line @@ -427,8 +410,8 @@ export const createParser = () => { strictWhite(); while (ch == '{') { // another object - const parsedObject = object(); - addRequestData(parsedObject); + object(); + updateRequestEnd(); strictWhite(); newLine(); strictWhite(); diff --git a/packages/kbn-monaco/src/console/parser.test.ts b/packages/kbn-monaco/src/console/parser.test.ts index 417fdd12e2c18..1529d907317cf 100644 --- a/packages/kbn-monaco/src/console/parser.test.ts +++ b/packages/kbn-monaco/src/console/parser.test.ts @@ -25,9 +25,7 @@ describe('console parser', () => { const { requests, errors } = parser(input) as ConsoleParserResult; expect(requests.length).toBe(1); expect(errors.length).toBe(0); - const { method, url, startOffset, endOffset } = requests[0]; - expect(method).toBe('GET'); - expect(url).toBe('_search'); + const { startOffset, endOffset } = requests[0]; // the start offset of the request is the beginning of the string expect(startOffset).toBe(0); // the end offset of the request is the end of the string @@ -38,6 +36,10 @@ describe('console parser', () => { const input = 'GET _search\nPOST _test_index'; const { requests } = parser(input) as ConsoleParserResult; expect(requests.length).toBe(2); + expect(requests[0].startOffset).toBe(0); + expect(requests[0].endOffset).toBe(11); + expect(requests[1].startOffset).toBe(12); + expect(requests[1].endOffset).toBe(28); }); it('parses a request with a request body', () => { @@ -45,15 +47,8 @@ describe('console parser', () => { 'GET _search\n' + '{\n' + ' "query": {\n' + ' "match_all": {}\n' + ' }\n' + '}'; const { requests } = parser(input) as ConsoleParserResult; expect(requests.length).toBe(1); - const { method, url, data } = requests[0]; - expect(method).toBe('GET'); - expect(url).toBe('_search'); - expect(data).toEqual([ - { - query: { - match_all: {}, - }, - }, - ]); + const { startOffset, endOffset } = requests[0]; + expect(startOffset).toBe(0); + expect(endOffset).toBe(52); }); }); diff --git a/packages/kbn-monaco/src/console/types.ts b/packages/kbn-monaco/src/console/types.ts index 346bd0e6beeeb..4ad7d28ac778b 100644 --- a/packages/kbn-monaco/src/console/types.ts +++ b/packages/kbn-monaco/src/console/types.ts @@ -14,9 +14,6 @@ export interface ErrorAnnotation { export interface ParsedRequest { startOffset: number; endOffset?: number; - method: string; - url?: string; - data?: Array>; } export interface ConsoleParserResult { errors: ErrorAnnotation[]; diff --git a/packages/kbn-monaco/src/esql/language.ts b/packages/kbn-monaco/src/esql/language.ts index 7c49da41a996e..958af9e80c1f6 100644 --- a/packages/kbn-monaco/src/esql/language.ts +++ b/packages/kbn-monaco/src/esql/language.ts @@ -100,9 +100,10 @@ export const ESQLLang: CustomLangModuleType = { (...uris) => workerProxyService.getWorker(uris), callbacks ); - const suggestionEntries = await astAdapter.autocomplete(model, position, context); + const suggestions = await astAdapter.autocomplete(model, position, context); return { - suggestions: wrapAsMonacoSuggestions(suggestionEntries.suggestions), + // @ts-expect-error because of range typing: https://github.com/microsoft/monaco-editor/issues/4638 + suggestions: wrapAsMonacoSuggestions(suggestions), }; }, }; diff --git a/packages/kbn-monaco/src/esql/lib/converters/suggestions.ts b/packages/kbn-monaco/src/esql/lib/converters/suggestions.ts index 0d02a19dda070..2eaf598a61974 100644 --- a/packages/kbn-monaco/src/esql/lib/converters/suggestions.ts +++ b/packages/kbn-monaco/src/esql/lib/converters/suggestions.ts @@ -6,29 +6,46 @@ * Side Public License, v 1. */ -import type { SuggestionRawDefinition } from '@kbn/esql-validation-autocomplete'; import { monaco } from '../../../monaco_imports'; -import { MonacoAutocompleteCommandDefinition } from '../types'; +import { + MonacoAutocompleteCommandDefinition, + SuggestionRawDefinitionWithMonacoRange, +} from '../types'; export function wrapAsMonacoSuggestions( - suggestions: SuggestionRawDefinition[] + suggestions: SuggestionRawDefinitionWithMonacoRange[] ): MonacoAutocompleteCommandDefinition[] { - return suggestions.map( - ({ label, text, asSnippet, kind, detail, documentation, sortText, command }) => ({ + return suggestions.map( + ({ label, - insertText: text, - kind: - kind in monaco.languages.CompletionItemKind - ? monaco.languages.CompletionItemKind[kind] - : monaco.languages.CompletionItemKind.Method, // fallback to Method + text, + asSnippet, + kind, detail, documentation, sortText, + filterText, command, - insertTextRules: asSnippet - ? monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet - : undefined, - range: undefined as unknown as monaco.IRange, - }) + range, + }) => { + const monacoSuggestion: MonacoAutocompleteCommandDefinition = { + label, + insertText: text, + filterText, + kind: + kind in monaco.languages.CompletionItemKind + ? monaco.languages.CompletionItemKind[kind] + : monaco.languages.CompletionItemKind.Method, // fallback to Method + detail, + documentation, + sortText, + command, + insertTextRules: asSnippet + ? monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet + : undefined, + range, + }; + return monacoSuggestion; + } ); } diff --git a/packages/kbn-monaco/src/esql/lib/esql_ast_provider.ts b/packages/kbn-monaco/src/esql/lib/esql_ast_provider.ts index 8aa2e16979c5b..95f31764d7a78 100644 --- a/packages/kbn-monaco/src/esql/lib/esql_ast_provider.ts +++ b/packages/kbn-monaco/src/esql/lib/esql_ast_provider.ts @@ -16,8 +16,9 @@ import { monaco } from '../../monaco_imports'; import type { ESQLWorker } from '../worker/esql_worker'; import { wrapAsMonacoMessages } from './converters/positions'; import { getHoverItem } from './hover/hover'; -import { monacoPositionToOffset } from './shared/utils'; +import { monacoPositionToOffset, offsetRangeToMonacoRange } from './shared/utils'; import { getSignatureHelp } from './signature'; +import { SuggestionRawDefinitionWithMonacoRange } from './types'; export class ESQLAstAdapter { constructor( @@ -66,17 +67,17 @@ export class ESQLAstAdapter { model: monaco.editor.ITextModel, position: monaco.Position, context: monaco.languages.CompletionContext - ) { + ): Promise { const getAstFn = await this.getAstWorker(model); const fullText = model.getValue(); const offset = monacoPositionToOffset(fullText, position); - const suggestionEntries = await suggest(fullText, offset, context, getAstFn, this.callbacks); - return { - suggestions: suggestionEntries.map((suggestion) => ({ - ...suggestion, - range: undefined as unknown as monaco.IRange, - })), - }; + const suggestions = await suggest(fullText, offset, context, getAstFn, this.callbacks); + for (const s of suggestions) { + (s as SuggestionRawDefinitionWithMonacoRange).range = s.rangeToReplace + ? offsetRangeToMonacoRange(fullText, s.rangeToReplace) + : undefined; + } + return suggestions; } async codeAction( diff --git a/packages/kbn-monaco/src/esql/lib/esql_theme.test.ts b/packages/kbn-monaco/src/esql/lib/esql_theme.test.ts index 90abbb14c7913..98320b3791fc2 100644 --- a/packages/kbn-monaco/src/esql/lib/esql_theme.test.ts +++ b/packages/kbn-monaco/src/esql/lib/esql_theme.test.ts @@ -116,6 +116,7 @@ describe('ESQL Theme', () => { 'closing_metrics_line_comment', 'closing_metrics_multiline_comment', 'closing_metrics_ws', + 'match_operator', ]; // First, check that every valid exception is actually valid diff --git a/packages/kbn-monaco/src/esql/lib/shared/utils.ts b/packages/kbn-monaco/src/esql/lib/shared/utils.ts index 9f2d6d4f22545..8b6762fafccf2 100644 --- a/packages/kbn-monaco/src/esql/lib/shared/utils.ts +++ b/packages/kbn-monaco/src/esql/lib/shared/utils.ts @@ -11,11 +11,75 @@ import type { monaco } from '../../../monaco_imports'; // From Monaco position to linear offset export function monacoPositionToOffset(expression: string, position: monaco.Position): number { const lines = expression.split(/\n/); - return lines - .slice(0, position.lineNumber) - .reduce( - (prev, current, index) => - prev + (index === position.lineNumber - 1 ? position.column - 1 : current.length + 1), - 0 - ); + let offset = 0; + + for (let i = 0; i < position.lineNumber - 1; i++) { + offset += lines[i].length + 1; // +1 for the newline character + } + + offset += position.column - 1; + + return offset; } + +/** + * Given an offset range, returns a monaco IRange object. + * @param expression + * @param range + * @returns + */ +export const offsetRangeToMonacoRange = ( + expression: string, + range: { start: number; end: number } +): { + startColumn: number; + endColumn: number; + startLineNumber: number; + endLineNumber: number; +} => { + let startColumn = 0; + let endColumn = 0; + // How far we are past the last newline character + let currentOffset = 0; + + let startLineNumber = 1; + let endLineNumber = 1; + let currentLine = 1; + + for (let i = 0; i < expression.length; i++) { + if (expression[i] === '\n') { + currentLine++; + currentOffset = i + 1; + } + + if (i === range.start) { + startLineNumber = currentLine; + startColumn = i - currentOffset; + } + + if (i === range.end) { + endLineNumber = currentLine; + endColumn = i - currentOffset; + break; // No need to continue once we find the end position + } + } + + // Handle the case where the start offset is past the end of the string + if (range.start >= expression.length) { + startLineNumber = currentLine; + startColumn = range.start - currentOffset; + } + + // Handle the case where the end offset is at the end or past the end of the string + if (range.end >= expression.length) { + endLineNumber = currentLine; + endColumn = range.end - currentOffset; + } + + return { + startColumn, + endColumn, + startLineNumber, + endLineNumber, + }; +}; diff --git a/packages/kbn-monaco/src/esql/lib/types.ts b/packages/kbn-monaco/src/esql/lib/types.ts index 6bd51a1690067..d16c40dcead1e 100644 --- a/packages/kbn-monaco/src/esql/lib/types.ts +++ b/packages/kbn-monaco/src/esql/lib/types.ts @@ -6,19 +6,27 @@ * Side Public License, v 1. */ +import { SuggestionRawDefinition } from '@kbn/esql-validation-autocomplete'; import { monaco } from '../../monaco_imports'; export type MonacoAutocompleteCommandDefinition = Pick< monaco.languages.CompletionItem, | 'label' | 'insertText' + | 'filterText' | 'kind' | 'detail' | 'documentation' | 'sortText' | 'insertTextRules' | 'command' - | 'range' ->; +> & { range?: monaco.IRange }; export type MonacoCodeAction = monaco.languages.CodeAction; + +export type SuggestionRawDefinitionWithMonacoRange = Omit< + SuggestionRawDefinition, + 'rangeToReplace' +> & { + range?: monaco.IRange; +}; diff --git a/packages/kbn-monaco/src/helpers.ts b/packages/kbn-monaco/src/helpers.ts index 81d30b680762a..7a7f0c888aebf 100644 --- a/packages/kbn-monaco/src/helpers.ts +++ b/packages/kbn-monaco/src/helpers.ts @@ -9,7 +9,7 @@ import { monaco } from './monaco_imports'; import type { LangModuleType, CustomLangModuleType } from './types'; export function registerLanguage(language: LangModuleType | CustomLangModuleType) { - const { ID, lexerRules, languageConfiguration } = language; + const { ID, lexerRules, languageConfiguration, foldingRangeProvider } = language; monaco.languages.register({ id: ID }); @@ -22,6 +22,10 @@ export function registerLanguage(language: LangModuleType | CustomLangModuleType monaco.languages.setLanguageConfiguration(ID, languageConfiguration); } + if (foldingRangeProvider) { + monaco.languages.registerFoldingRangeProvider(ID, foldingRangeProvider); + } + if ('onLanguage' in language) { await language.onLanguage(); } diff --git a/packages/kbn-monaco/src/types.ts b/packages/kbn-monaco/src/types.ts index 5a4d3c1793031..7fb852c1ae683 100644 --- a/packages/kbn-monaco/src/types.ts +++ b/packages/kbn-monaco/src/types.ts @@ -13,6 +13,7 @@ export interface LangModuleType { ID: string; lexerRules?: monaco.languages.IMonarchLanguage; languageConfiguration?: monaco.languages.LanguageConfiguration; + foldingRangeProvider?: monaco.languages.FoldingRangeProvider; getSuggestionProvider?: Function; } diff --git a/packages/kbn-openapi-bundler/src/bundler/merge_documents/enrich_with_version_mime_param.ts b/packages/kbn-openapi-bundler/src/bundler/merge_documents/enrich_with_version_mime_param.ts index d3d7c6e44885e..5216efae0012e 100644 --- a/packages/kbn-openapi-bundler/src/bundler/merge_documents/enrich_with_version_mime_param.ts +++ b/packages/kbn-openapi-bundler/src/bundler/merge_documents/enrich_with_version_mime_param.ts @@ -12,9 +12,12 @@ import { isRefNode } from '../process_document'; import { getOasDocumentVersion } from '../../utils/get_oas_document_version'; import { KNOWN_HTTP_METHODS } from './http_methods'; +const DEFAULT_API_VERSION = '2023-10-31'; +const VERSION_REGEX = /\d{4}-\d{2}-\d{2}/; + export function enrichWithVersionMimeParam(resolvedDocuments: ResolvedDocument[]): void { for (const resolvedDocument of resolvedDocuments) { - const version = getOasDocumentVersion(resolvedDocument); + const version = extractApiVersion(resolvedDocument); const paths = resolvedDocument.document.paths as OpenAPIV3.PathsObject; for (const path of Object.keys(paths ?? {})) { @@ -80,3 +83,13 @@ function enrichContentWithVersion( delete content[mimeType]; } } + +function extractApiVersion(resolvedDocument: ResolvedDocument): string { + const version = getOasDocumentVersion(resolvedDocument); + + if (!VERSION_REGEX.test(version)) { + return DEFAULT_API_VERSION; + } + + return version < DEFAULT_API_VERSION ? DEFAULT_API_VERSION : version; +} diff --git a/packages/kbn-openapi-bundler/src/utils/extract_by_json_pointer.ts b/packages/kbn-openapi-bundler/src/utils/extract_by_json_pointer.ts index 3826621591866..8140fff7bd3a2 100644 --- a/packages/kbn-openapi-bundler/src/utils/extract_by_json_pointer.ts +++ b/packages/kbn-openapi-bundler/src/utils/extract_by_json_pointer.ts @@ -7,7 +7,7 @@ */ import chalk from 'chalk'; -import { dump } from 'js-yaml'; +import { safeDump } from 'js-yaml'; import { isPlainObjectType } from './is_plain_object_type'; /** @@ -32,7 +32,9 @@ export function extractByJsonPointer(document: unknown, pointer: string): unknow throw new Error( `JSON Pointer ${chalk.bold(pointer)} resolution failure. Expected ${chalk.magenta( path.join('/') - )} to be a plain object but it has type "${typeof target}" in \n\n${dump(document)}` + )} to be a plain object but it has type "${typeof target}" in \n\n${safeDump(document, { + skipInvalid: true, + })}` ); } @@ -66,7 +68,7 @@ export function extractObjectByJsonPointer( throw new Error( `JSON Pointer resolution failure. Expected ${chalk.magenta( pointer - )} to be a plain object in \n\n${dump(document)}` + )} to be a plain object in \n\n${safeDump(document, { skipInvalid: true })}` ); } diff --git a/packages/kbn-openapi-bundler/src/utils/read_document.ts b/packages/kbn-openapi-bundler/src/utils/read_document.ts index 49476c134e91f..31dc0aed79646 100644 --- a/packages/kbn-openapi-bundler/src/utils/read_document.ts +++ b/packages/kbn-openapi-bundler/src/utils/read_document.ts @@ -8,7 +8,7 @@ import fs from 'fs/promises'; import { basename, extname } from 'path'; -import { load } from 'js-yaml'; +import { safeLoad } from 'js-yaml'; import chalk from 'chalk'; import { logger } from '../logger'; import { isPlainObjectType } from './is_plain_object_type'; @@ -45,7 +45,7 @@ async function readYamlFile(filePath: string): Promise> // Typing load's result to Record is optimistic as we can't be sure // there is object inside a yaml file. We don't have this validation layer so far // but using JSON Schemas here should mitigate this problem. - return load(await fs.readFile(filePath, { encoding: 'utf8' })); + return safeLoad(await fs.readFile(filePath, { encoding: 'utf8' })); } async function readJsonFile(filePath: string): Promise> { diff --git a/packages/kbn-openapi-bundler/src/utils/write_yaml_document.ts b/packages/kbn-openapi-bundler/src/utils/write_yaml_document.ts index 980f898777aef..35a7f41d3d747 100644 --- a/packages/kbn-openapi-bundler/src/utils/write_yaml_document.ts +++ b/packages/kbn-openapi-bundler/src/utils/write_yaml_document.ts @@ -7,7 +7,7 @@ */ import fs from 'fs/promises'; -import { dump } from 'js-yaml'; +import { safeDump } from 'js-yaml'; import { dirname } from 'path'; export async function writeYamlDocument(filePath: string, document: unknown): Promise { @@ -23,21 +23,16 @@ export async function writeYamlDocument(filePath: string, document: unknown): Pr function stringifyToYaml(document: unknown): string { try { - // We don't want to have `undefined` values serialized into YAML. - // `JSON.stringify()` simply skips `undefined` values while js-yaml v 3.14 DOES NOT. - // js-yaml >= v4 has it fixed so `dump()`'s behavior is consistent with `JSON.stringify()`. - // Until js-yaml is updated to v4 use the hack with JSON serialization/deserialization. - const clearedDocument = JSON.parse(JSON.stringify(document)); - // Disable YAML Anchors https://yaml.org/spec/1.2.2/#3222-anchors-and-aliases // It makes YAML much more human readable - return dump(clearedDocument, { + return safeDump(document, { noRefs: true, sortKeys: sortYamlKeys, + skipInvalid: true, // Skip invalid types like `undefined` }); } catch (e) { // Try to stringify with YAML Anchors enabled - return dump(document, { noRefs: false, sortKeys: sortYamlKeys }); + return safeDump(document, { noRefs: false, sortKeys: sortYamlKeys, skipInvalid: true }); } } diff --git a/packages/kbn-openapi-bundler/tests/bundler/bundle_specs.ts b/packages/kbn-openapi-bundler/tests/bundler/bundle_specs.ts index 59d5271fc0f87..66746979eaab1 100644 --- a/packages/kbn-openapi-bundler/tests/bundler/bundle_specs.ts +++ b/packages/kbn-openapi-bundler/tests/bundler/bundle_specs.ts @@ -16,7 +16,7 @@ import { unlinkSync, writeFileSync, } from 'fs'; -import { dump, load } from 'js-yaml'; +import { safeDump, safeLoad } from 'js-yaml'; import { OpenAPIV3 } from 'openapi-types'; import { bundle, BundlerConfig } from '../../src/openapi_bundler'; @@ -56,7 +56,10 @@ function dumpSpecs(folderPath: string, oasSpecs: Record { const [bundledSpec] = Object.values(readBundledSpecs(outputFolderPath)); - const expected = load( + const expected = safeLoad( readFileSync(join(folderToBundlePath, 'expected.yaml'), { encoding: 'utf8' }) ); diff --git a/packages/kbn-openapi-bundler/tests/bundler/circular.test.ts b/packages/kbn-openapi-bundler/tests/bundler/circular.test.ts index b711014a4ff34..90561369a7347 100644 --- a/packages/kbn-openapi-bundler/tests/bundler/circular.test.ts +++ b/packages/kbn-openapi-bundler/tests/bundler/circular.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { dump } from 'js-yaml'; +import { safeDump } from 'js-yaml'; import { OpenAPIV3 } from 'openapi-types'; import { bundleSpecs } from './bundle_specs'; import { createOASDocument } from '../create_oas_document'; @@ -48,7 +48,8 @@ describe('OpenAPI Bundler - circular specs', () => { }) ); - expect(dump(bundledSpec.paths['/api/some_api']!.get!.responses['200'])).toMatchInlineSnapshot(` + expect(safeDump(bundledSpec.paths['/api/some_api']!.get!.responses['200'])) + .toMatchInlineSnapshot(` "content: application/json: schema: &ref_0 diff --git a/packages/kbn-openapi-bundler/tests/merger/merge_specs.ts b/packages/kbn-openapi-bundler/tests/merger/merge_specs.ts index 0455bb1088369..92b7fc0901179 100644 --- a/packages/kbn-openapi-bundler/tests/merger/merge_specs.ts +++ b/packages/kbn-openapi-bundler/tests/merger/merge_specs.ts @@ -16,7 +16,7 @@ import { unlinkSync, writeFileSync, } from 'fs'; -import { dump, load } from 'js-yaml'; +import { safeDump, safeLoad } from 'js-yaml'; import { OpenAPIV3 } from 'openapi-types'; import { merge, MergerConfig } from '../../src/openapi_merger'; @@ -56,7 +56,10 @@ function dumpSpecs(folderPath: string, oasSpecs: Record; export const PlatformErrorResponse = z.object({ diff --git a/packages/kbn-openapi-common/schemas/primitives.gen.ts b/packages/kbn-openapi-common/schemas/primitives.gen.ts index a9027448d7e77..1a3477ec1735c 100644 --- a/packages/kbn-openapi-common/schemas/primitives.gen.ts +++ b/packages/kbn-openapi-common/schemas/primitives.gen.ts @@ -15,7 +15,7 @@ * version: not applicable */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; /** * A string that is not empty and does not contain only whitespace diff --git a/packages/kbn-openapi-common/tsconfig.json b/packages/kbn-openapi-common/tsconfig.json index 168274f98f058..ca7d7e4715362 100644 --- a/packages/kbn-openapi-common/tsconfig.json +++ b/packages/kbn-openapi-common/tsconfig.json @@ -6,5 +6,7 @@ "exclude": ["target/**/*"], "extends": "../../tsconfig.base.json", "include": ["**/*.ts"], - "kbn_references": [] + "kbn_references": [ + "@kbn/zod", + ] } diff --git a/packages/kbn-openapi-generator/README.md b/packages/kbn-openapi-generator/README.md index cd3fe96f18601..1652588cbe15b 100644 --- a/packages/kbn-openapi-generator/README.md +++ b/packages/kbn-openapi-generator/README.md @@ -67,7 +67,7 @@ By default it uses the `zod_operation_schema` template which produces runtime ty Example of generated code: ```ts -import { z } from 'zod'; +import { z } from '@kbn/zod'; /* * NOTICE: Do not edit this file manually. diff --git a/packages/kbn-openapi-generator/docs/USAGE_GUIDE.md b/packages/kbn-openapi-generator/docs/USAGE_GUIDE.md new file mode 100644 index 0000000000000..3c7e96401edb4 --- /dev/null +++ b/packages/kbn-openapi-generator/docs/USAGE_GUIDE.md @@ -0,0 +1,435 @@ +## OpenAPI Generator (`kbn-openapi-generator`) Usage Guide + +OpenAPI code generator (`kbn-openapi-generator`) could be used to generate different artifacts like runtime types, documentation, server stub implementations, clients, and much more given OpenAPI specification. Usually the first priority is to generate Zod schemas and related TypeScript types and integrate them into routes implementation and related code. The current guide focuses mainly on that topic. + +Any OpenAPI spec files should conform to [OpenAPI Specification 3.0](https://swagger.io/specification/v3/). OpenAPI Generator supports a subset of the specification. + +_For general information and getting started guide check `README` in the root of this package._ + +### How to organize files with OpenAPI specs? + +We recommend to follow rules described below. These rules were derived from hands-on experience while using OpenAPI specs and code generation in Rule Management team. + +- Prefer placing OpenAPI specs in a package (see `kbn-securitysolution-lists-common` or `kbn-securitysolution-exceptions-common` for examples). Generated artifacts can be easily imported into the other packages or plugins. Having specs in a package simplify reusing (you don't need long relative paths `../../../../my.schema.yaml`) of common OpenAPI primitives like `NonEmptyString` or `UUID` defined in `kbn-openapi-common` package. +- Split API endpoint declarations into separate files. The rule of thumb here is having one HTTP Method declaration per file. For example you want to declare two endpoints `GET /api/my/data` and `POST /api/my/data` so you need to create two OpenAPI spec files for them. +- Make sure you define `operationId` for each path item. `operationId` is a unique string used to identify the operation (a single API operation on a path like `GET` and `POST`). The id MUST be unique among all operations described in Kibana. The `operationId` value is case-sensitive. Tools and libraries use the `operationId` to uniquely identify an operation. +- Make sure OpenAPI spec file name matches defined `operationId` so it can be easily found in IDE. +- Feel free to group OpenAPI specs inside domain folder in smaller groups according to the business logic. +- Prefer reducing tight coupling by using index files to reexport artifacts from `*.gen.ts` files (see `kbn-securitysolution-lists-common` or `kbn-securitysolution-exceptions-common` for examples). + +> **Info:** By default OpenAPI code generator expects OpenAPI spec files named `.schema.yaml`. If it's absolutely necessary to use another suffix make sure OpenAPI code generator picks file up by modifying generating script where `generate()` function is invoked. + +You have quite a lot of freedom on organizing your OpenAPI specs and code generator supports any valid OpenAPI. + +#### Example + +You can find an example package's folder structure + +- kbn-solutionname-domain-name-common + - api + - business feature A + - create_entity.schema.yaml + - delete_entity.schema.yaml + ... + - business feature B + - read_configuration.schema.yaml + - update_featureB_entity.schema.yaml + ... + - scripts - openapi_generate.js + ... + +### How to enable code generation? + +By default OpenAPI code generator generation produces artifacts for `components` defined in OpenAPI specs but disabled for `paths`. `x-codegen-enabled` custom property allows to enable/disable code generation for particular path item or components. `x-codegen-enabled: true` should be always added to path items you want to enable code generation for. + +> **Warning:** When code generation for path items is enabled OpenAPI code generator produces Zod schemas and TS types for request body, request parameters and successful response. **You AREN'T required to define schemas for request body, request parameters and successful response manually.** If you don't see such artifacts most probably path items code generation is disabled. + +#### Examples + +The following example demonstrates an API endpoint declaration with enabled code generation. Notice `x-codegen-enabled: true` added to the path item to enable code generation. When it's omitted code generator will only produce artifacts for `components.schemas.ReadDeleted` schema. `common.schema.yaml` doesn't have property `x-codegen-enabled` since code generation is enabled by default for schema components. + +**read_entity.schema.yaml** + +```yaml +openapi: 3.0.0 +info: + title: Read entity + version: '2023-10-31' +paths: + /api/my/data/{id}: + get: + x-labels: [serverless, ess] + x-codegen-enabled: true + operationId: ReadEntity + summary: Reads entity + description: This a more detailed description why you should read an entity + parameters: + - name: id + in: path + required: true + description: The entity's `id` value + schema: + $ref: '../common.schema.yaml#/components/schemas/EntityId' + - name: read_deleted + in: query + required: false + description: Whether request should return deleted entity + schema: + $ref: '#/components/schemas/ReadDeleted' + responses: + 200: + description: Indicates a successful call + content: + application/json: + schema: + $ref: '../common.schema.yaml#/components/schemas/Entity' + +components: + schemas: + ReadDeleted: + type: boolean +``` + +**common.schema.yaml** + +```yaml +openapi: 3.0.0 +info: + title: Common schemas + version: 'not applicable' + +components: + schemas: + EntityId: + type: string + + Entity: + type: object + properties: + id: + $ref: '#/components/schemas/EntityId' + value: + type: string + required: [id, value] +``` + +In a case when you want to disable code generation for components add `x-codegen-enabled: false` under `components` object as in the example below + +```yaml +openapi: 3.0.0 +info: + title: Common schemas + version: 'not applicable' + +components: + x-codegen-enabled: false + schemas: + EntityId: + type: string + + Entity: + type: object + properties: + id: + $ref: '#/components/schemas/EntityId' + value: + type: string + required: [id, value] +``` + +### How to integrate generated artifacts into route's implementation? + +Having OpenAPI specs and code generation by itself doesn't guarantee OpenAPI describes API endpoints precisely. To make sure OpenAPI description and implementation match you should use generated artifacts in route's implementation for input and optionally output data validation and type checking. Let's consider the following OpenAPI spec describing `/api/my/path/{id}` API endpoint + +```yaml +openapi: 3.0.0 +info: + title: Create entity endpoint + version: '2023-10-31' + +paths: + /api/my/data/{id}: + post: + x-labels: [serverless, ess] + x-codegen-enabled: true + operationId: CreateEntity + summary: Creates entity + description: This a more detailed description why you should create an entity + parameters: + - name: id + in: path + required: false + description: This is an example optional request path parameter + schema: + $ref: '#/components/schemas/EntityId' + - name: keep_hidden + in: query + required: false + description: This is an example request query parameter + schema: + $ref: '#/components/schemas/ReadDeleted' + requestBody: + description: This is an example request query parameter + required: true + content: + application/json: + schema: + type: object + properties: + fieldA: + type: string + fieldB: + type: boolean + required: [fieldA, fieldB] + responses: + 200: + description: Indicates a successful call + content: + application/json: + schema: + $ref: '#/components/schemas/Entity' + +components: + schemas: + EntityId: + type: string + + ReadDeleted: + type: boolean + + Entity: + type: object + properties: + id: + type: string + value: + type: string + required: [id, value] +``` + +Running OpenAPI Generator on that file will produce the following `.gen.ts` file + +```ts +import { z } from '@kbn/zod'; + +export type EntityId = z.infer; +export const EntityId = z.string(); + +export type ReadDeleted = z.infer; +export const ReadDeleted = z.boolean(); + +export type Entity = z.infer; +export const Entity = z.object({ + id: z.string(), + value: z.string(), +}); + +export type CreateEntityRequestQuery = z.infer; +export const CreateEntityRequestQuery = z.object({ + /** + * This is an example request query parameter + */ + keep_hidden: ReadDeleted.optional(), +}); +export type CreateEntityRequestQueryInput = z.input; + +export type CreateEntityRequestParams = z.infer; +export const CreateEntityRequestParams = z.object({ + /** + * This is an example optional request path parameter + */ + id: EntityId.optional(), +}); +export type CreateEntityRequestParamsInput = z.input; + +export type CreateEntityRequestBody = z.infer; +export const CreateEntityRequestBody = z.object({ + fieldA: z.string(), + fieldB: z.boolean(), +}); +export type CreateEntityRequestBodyInput = z.input; + +export type CreateEntityResponse = z.infer; +export const CreateEntityResponse = Entity; +``` + +Generated artifacts above could be integrated into route's implementation in the following way + +```ts +import { + CreateEntityRequestParams, + CreateEntityRequestQuery, + CreateEntityRequestBody, + CreateEntityResponse, +} from './my/api_domain'; + +export const createEntityRoute = (router: Router): void => { + router.versioned + .post({ + access: 'public', + path: '/api/my/data/{id}', + options: { + tags: ['access:securitySolution'], + }, + }) + .addVersion( + { + version: '2023-10-31', + validate: { + request: { + params: buildRouteValidationWithZod(CreateEntityRequestParams), + query: buildRouteValidationWithZod(CreateEntityRequestQuery), + body: buildRouteValidationWithZod(CreateEntityRequestBody), + }, + }, + }, + async (context, request, response): Promise> => { + try { + // implementation goes here + const options = { + id: request.params.id, + keepHidden: request.query.keep_hidden, + }; + const result = await createEntity(request.body, options); + + // Optional output validation. + // Could just return `result` but it makes sense to validate the `result` when we can't + // control it's construction or the return type is too way complex. + return response.ok({ + body: CreateEntityResponse.parse(result), + }); + + // Another option is to construct response explicitly + // return response.ok({ + // body: { + // id: result.id, + // value: result.value, + // } + // }); + } catch (err) { + const error = transformError(err as Error); + + return siemResponse.error({ + body: error.message, + statusCode: error.statusCode, + }); + } + } + ); +}; +``` + +### Can I use references in OpenAPI specs? + +OpenAPI Generator supports only `schema` references currently. Using references for `responses`, `parameters`, `requestBodies` and `pathItems` will lead either to errors during code generation or invalid `.gen.ts` files. + +If you strongly believe any of the unsupported references should be supported by OpenAPI Generator feel free to create an enhancement ticket in GitHub and assign it to Rule Management team. + +### Can I use circular/self-circular (recursive/self-recursive) schemas? + +Yes you can define local circular and/or self-circular schemas. Support for that functionality was added in [#186221](https://github.com/elastic/kibana/pull/186221). + +It works with exceptions + +- Only local references are supported (starting with `#/components/`) +- Discriminated unions aren't supported (a discriminated union should be assembled from object types which makes it more challenging to support them) + +If you strongly believe any of the unsupported features should be supported by OpenAPI Generator feel free to create an enhancement ticket in GitHub and assign it to Rule Management team. + +### Is there a way to specify `default` value for a referenced schema? + +Sometimes you might have an array schema defined in a spec with shared schemas like + +**common.schema.yaml** + +```yaml +openapi: 3.0.0 +info: + title: Common schemas + version: 'not applicable' +paths: {} + +components: + schemas: + ParametersArray: + type: array + items: + $ref: '#/components/schemas/Parameter' + + Parameter: + type: object + properties: + fieldA: + type: string + fieldB: + type: string +``` + +and you want to reference `ParametersArray` in for example a request body + +**spec.schema.yaml** + +```yaml +openapi: 3.0.0 +info: + title: Update parameters + version: '2023-10-31' +paths: + /api/my/data: + post: + x-labels: [serverless, ess] + x-codegen-enabled: true + operationId: UpdateParameters + summary: Updates parameters + description: This a more detailed description why you should update the parameters + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + someField: + type: string + parameters: + $ref: './common.schema.yaml#/components/schemas/ParametersArray' + required: [someField] + responses: ... +``` + +But you also want to have default value for example an empty array. In this case you can't provide any additional properties (including `default`) to the reference since OpenAPI 3.0 doesn't allow any properties next to `$ref`. + +The solution is to decompose the `ParametersArray` like below + +**spec.schema.yaml** + +```yaml +openapi: 3.0.0 +info: + title: Update parameters + version: '2023-10-31' +paths: + /api/my/data: + post: + x-labels: [serverless, ess] + x-codegen-enabled: true + operationId: UpdateParameters + summary: Updates parameters + description: This a more detailed description why you should update the parameters + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + someField: + type: string + parameters: + type: array + items: + $ref: './common.schema.yaml#/components/schemas/Parameter' + default: [] + required: [someField] + responses: ... +``` diff --git a/packages/kbn-openapi-generator/src/template_service/templates/zod_operation_schema.handlebars b/packages/kbn-openapi-generator/src/template_service/templates/zod_operation_schema.handlebars index 6e5d21363a5ae..fa750c7d1f8ab 100644 --- a/packages/kbn-openapi-generator/src/template_service/templates/zod_operation_schema.handlebars +++ b/packages/kbn-openapi-generator/src/template_service/templates/zod_operation_schema.handlebars @@ -7,13 +7,13 @@ {{> disclaimer}} -import type { ZodTypeDef } from 'zod'; -import { z } from 'zod'; +import type { ZodTypeDef } from '@kbn/zod'; +import { z } from '@kbn/zod'; import { requiredOptional, isValidDateMath, ArrayFromString, BooleanFromString } from '@kbn/zod-helpers'; {{#each imports}} -import { - {{#each this}}{{.}},{{/each}} +import { + {{#each this}}{{.}},{{/each}} } from "{{@key}}" {{/each}} diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index 84055d662a65b..3a56e7e75029b 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -28,7 +28,7 @@ pageLoadAssetSize: dashboardEnhanced: 65646 data: 454087 dataQuality: 19384 - datasetQuality: 50624 + datasetQuality: 52000 dataViewEditor: 28082 dataViewFieldEditor: 42021 dataViewManagement: 5300 @@ -136,15 +136,17 @@ pageLoadAssetSize: savedSearch: 16225 screenshotMode: 17856 screenshotting: 22870 + searchAssistant: 19831 searchConnectors: 30000 searchHomepage: 19831 + searchIndices: 20519 searchInferenceEndpoints: 20470 searchNotebooks: 18942 searchPlayground: 19325 searchprofiler: 67080 security: 81771 securitySolution: 98429 - securitySolutionEss: 16573 + securitySolutionEss: 31781 securitySolutionServerless: 62488 serverless: 16573 serverlessObservability: 68747 diff --git a/packages/kbn-optimizer/src/common/bundle.test.ts b/packages/kbn-optimizer/src/common/bundle.test.ts index 59d730dd661be..58acd982bf383 100644 --- a/packages/kbn-optimizer/src/common/bundle.test.ts +++ b/packages/kbn-optimizer/src/common/bundle.test.ts @@ -59,7 +59,7 @@ it('creates cache keys', () => { }, "dllName": "manifest-name", "dllRefs": Object { - "./some-foo.ts": "1:ku/53aRMuAA+4TmQeCWA/w:GtuPW9agF2yecW0xAIHtUQ", + "./some-foo.ts": "1:8ZZnQFMG7xLG5lQakybjWCNbihQ:6Yk7GIWDT9j4uCAeHPI2xJcHgrE", }, "spec": Object { "banner": undefined, diff --git a/packages/kbn-optimizer/src/common/dll_manifest.ts b/packages/kbn-optimizer/src/common/dll_manifest.ts index 6192e6cd4135a..f4e86eb9ee948 100644 --- a/packages/kbn-optimizer/src/common/dll_manifest.ts +++ b/packages/kbn-optimizer/src/common/dll_manifest.ts @@ -19,7 +19,7 @@ export interface ParsedDllManifest { } const hash = (s: string) => { - return Crypto.createHash('md5').update(s).digest('base64').replace(/=+$/, ''); + return Crypto.createHash('sha1').update(s).digest('base64').replace(/=+$/, ''); }; export function parseDllManifest(manifest: DllManifest): ParsedDllManifest { diff --git a/packages/kbn-optimizer/src/worker/webpack.config.ts b/packages/kbn-optimizer/src/worker/webpack.config.ts index ecf2ea603767d..f81d0e89fb983 100644 --- a/packages/kbn-optimizer/src/worker/webpack.config.ts +++ b/packages/kbn-optimizer/src/worker/webpack.config.ts @@ -50,6 +50,7 @@ export function getWebpackConfig( profile: worker.profileWebpack, output: { + hashFunction: 'sha1', path: bundle.outputDir, filename: `${bundle.id}.${bundle.type}.js`, chunkFilename: `${bundle.id}.chunk.[id].js`, @@ -212,6 +213,18 @@ export function getWebpackConfig( includePaths: [Path.resolve(worker.repoRoot, 'node_modules')], sourceMap: true, quietDeps: true, + logger: { + warn: (message: string, warning: any) => { + // Muted - see https://github.com/elastic/kibana/issues/190345 for tracking remediation + if (warning?.deprecationType?.id === 'mixed-decls') return; + + if (warning.deprecation) + return process.stderr.write( + `DEPRECATION WARNING: ${message}\n${warning.stack}` + ); + process.stderr.write('WARNING: ' + message); + }, + }, }, }, }, diff --git a/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap b/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap index 3e16455f5006e..a3c634f582d43 100644 --- a/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap +++ b/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap @@ -44,7 +44,7 @@ Object { "paths": Object { "/foo/{id}": Object { "get": Object { - "operationId": "/foo/{id}#0", + "operationId": "%2Ffoo%2F%7Bid%7D#0", "parameters": Array [ Object { "description": "The version of the API to use", @@ -138,7 +138,7 @@ Object { "/bar": Object { "get": Object { "deprecated": true, - "operationId": "/bar#0", + "operationId": "%2Fbar#0", "parameters": Array [ Object { "description": "The version of the API to use", @@ -229,7 +229,7 @@ OK response oas-test-version-2", "/foo/{id}/{path*}": Object { "delete": Object { "description": "route description", - "operationId": "/foo/{id}/{path*}#2", + "operationId": "%2Ffoo%2F%7Bid%7D%2F%7Bpath*%7D#2", "parameters": Array [ Object { "description": "The version of the API to use", @@ -267,7 +267,7 @@ OK response oas-test-version-2", }, "get": Object { "description": "route description", - "operationId": "/foo/{id}/{path*}#0", + "operationId": "%2Ffoo%2F%7Bid%7D%2F%7Bpath*%7D#0", "parameters": Array [ Object { "description": "The version of the API to use", @@ -413,7 +413,7 @@ OK response oas-test-version-2", }, "post": Object { "description": "route description", - "operationId": "/foo/{id}/{path*}#1", + "operationId": "%2Ffoo%2F%7Bid%7D%2F%7Bpath*%7D#1", "parameters": Array [ Object { "description": "The version of the API to use", @@ -570,7 +570,7 @@ OK response oas-test-version-2", }, "/no-xsrf/{id}/{path*}": Object { "post": Object { - "operationId": "/no-xsrf/{id}/{path*}#1", + "operationId": "%2Fno-xsrf%2F%7Bid%7D%2F%7Bpath*%7D#1", "parameters": Array [ Object { "description": "The version of the API to use", @@ -721,7 +721,7 @@ Object { "paths": Object { "/recursive": Object { "get": Object { - "operationId": "/recursive#0", + "operationId": "%2Frecursive#0", "parameters": Array [ Object { "description": "The version of the API to use", @@ -804,7 +804,7 @@ Object { "paths": Object { "/foo/{id}": Object { "get": Object { - "operationId": "/foo/{id}#0", + "operationId": "%2Ffoo%2F%7Bid%7D#0", "parameters": Array [ Object { "description": "The version of the API to use", @@ -842,7 +842,7 @@ Object { }, "/test": Object { "get": Object { - "operationId": "/test#0", + "operationId": "%2Ftest#0", "parameters": Array [ Object { "description": "The version of the API to use", diff --git a/packages/kbn-router-to-openapispec/src/generate_oas.test.fixture.ts b/packages/kbn-router-to-openapispec/src/generate_oas.test.fixture.ts index 09bb6064c2bcb..731e07d034ebc 100644 --- a/packages/kbn-router-to-openapispec/src/generate_oas.test.fixture.ts +++ b/packages/kbn-router-to-openapispec/src/generate_oas.test.fixture.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { schema } from '@kbn/config-schema'; export const sharedOas = { @@ -33,7 +33,7 @@ export const sharedOas = { '/bar': { get: { deprecated: true, - operationId: '/bar#0', + operationId: '%2Fbar#0', parameters: [ { description: 'The version of the API to use', @@ -152,7 +152,7 @@ export const sharedOas = { '/foo/{id}/{path*}': { get: { description: 'route description', - operationId: '/foo/{id}/{path*}#0', + operationId: '%2Ffoo%2F%7Bid%7D%2F%7Bpath*%7D#0', parameters: [ { description: 'The version of the API to use', @@ -276,7 +276,7 @@ export const sharedOas = { }, post: { description: 'route description', - operationId: '/foo/{id}/{path*}#1', + operationId: '%2Ffoo%2F%7Bid%7D%2F%7Bpath*%7D#1', parameters: [ { description: 'The version of the API to use', diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/enum.test.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/enum.test.ts index 5c783e739d045..71f3ff1eeca70 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/enum.test.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/enum.test.ts @@ -110,6 +110,39 @@ describe('processEnum', () => { ], }, }, + { + name: 'correctly transforms schema.nullable inputs', + input: { + anyOf: [ + { + description: 'test', + type: 'object', + properties: { + test: { + type: 'string', + }, + }, + required: ['test'], + }, + { + enum: [], + nullable: true, + type: undefined, + }, + ], + } as OpenAPIV3.SchemaObject, + expected: { + description: 'test', + type: 'object', + properties: { + test: { + type: 'string', + }, + }, + required: ['test'], + nullable: true, + }, + }, ])('$name', ({ input, expected }) => { processEnum(input); expect(input).toEqual(expected); diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/enum.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/enum.ts index 7bbb7ae2c26d0..fb2e3856ae495 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/enum.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/enum.ts @@ -9,8 +9,38 @@ import type { OpenAPIV3 } from 'openapi-types'; import { isReferenceObject } from '../../../common'; -export const processEnum = (schema: OpenAPIV3.SchemaObject) => { - if (!schema.anyOf) return; +/** Identify special case output of schema.nullable() */ +const isNullableOutput = (schema: OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject) => { + return ( + !isReferenceObject(schema) && + Object.keys(schema).length === 3 && + schema.enum?.length === 0 && + schema.nullable === true && + schema.type === undefined + ); +}; + +/** + * Handle special case output of schema.nullable() + * + * We go from: + * { anyOf: [ { type: 'string' }, { nullable: true, enum: [] } ] } + * + * To: + * { type: 'string', nullable: true } + */ +const processNullableOutput = (schema: OpenAPIV3.SchemaObject) => { + if (schema.anyOf!.length !== 2) return false; + const idx = schema.anyOf!.findIndex((item) => isNullableOutput(item)); + if (idx === -1) return false; + const anyOf = schema.anyOf!; + delete schema.anyOf; + schema.nullable = true; + Object.assign(schema, anyOf[1 - idx]); + return true; +}; + +const prettifyEnum = (schema: OpenAPIV3.SchemaObject) => { const result: unknown[] = []; let type: OpenAPIV3.SchemaObject['type']; for (const item of schema.anyOf!) { @@ -24,3 +54,9 @@ export const processEnum = (schema: OpenAPIV3.SchemaObject) => { schema.enum = result; delete schema.anyOf; }; + +export const processEnum = (schema: OpenAPIV3.SchemaObject) => { + if (!schema.anyOf) return; + if (processNullableOutput(schema)) return; + prettifyEnum(schema); +}; diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.test.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.test.ts index fd7b127ef8726..ae257aaec1edf 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.test.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.test.ts @@ -11,13 +11,10 @@ import { joi2JsonInternal } from '../../parse'; import { processObject } from './object'; test.each([ - [ - schema.object({}), - { type: 'object', properties: {}, additionalProperties: false, required: [] }, - ], + [schema.object({}), { type: 'object', properties: {}, additionalProperties: false }], [ schema.object({ never: schema.never() }), - { type: 'object', properties: {}, additionalProperties: false, required: [] }, + { type: 'object', properties: {}, additionalProperties: false }, ], [ schema.object( diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.ts index ec5888f986bd6..0b21134061c78 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.ts @@ -38,7 +38,7 @@ const populateRequiredFields = (schema: OpenAPIV3.SchemaObject): void => { } } - schema.required = required; + if (required.length > 0) schema.required = required; }; const removeNeverType = (schema: OpenAPIV3.SchemaObject): void => { diff --git a/packages/kbn-router-to-openapispec/src/operation_id_counter.test.ts b/packages/kbn-router-to-openapispec/src/operation_id_counter.test.ts new file mode 100644 index 0000000000000..270b6b6e2c982 --- /dev/null +++ b/packages/kbn-router-to-openapispec/src/operation_id_counter.test.ts @@ -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 { createOperationIdCounter } from './operation_id_counter'; + +test('empty case', () => { + const opIdCounter = createOperationIdCounter(); + expect(opIdCounter('')).toBe('#0'); +}); + +test('other cases', () => { + const opIdCounter = createOperationIdCounter(); + const tests = [ + ['/', '%2F#0'], + ['/api/cool', '%2Fapi%2Fcool#0'], + ['/api/cool', '%2Fapi%2Fcool#1'], + ['/api/cool', '%2Fapi%2Fcool#2'], + ['/api/cool/{variable}', '%2Fapi%2Fcool%2F%7Bvariable%7D#0'], + ['/api/cool/{optionalVariable?}', '%2Fapi%2Fcool%2F%7BoptionalVariable%3F%7D#0'], + ['/api/cool/{optionalVariable?}', '%2Fapi%2Fcool%2F%7BoptionalVariable%3F%7D#1'], + ]; + + tests.forEach(([input, expected]) => { + expect(opIdCounter(input)).toBe(expected); + }); +}); diff --git a/packages/kbn-router-to-openapispec/src/operation_id_counter.ts b/packages/kbn-router-to-openapispec/src/operation_id_counter.ts index 91fe2adf395d8..0842ec88d094f 100644 --- a/packages/kbn-router-to-openapispec/src/operation_id_counter.ts +++ b/packages/kbn-router-to-openapispec/src/operation_id_counter.ts @@ -11,6 +11,7 @@ export type OperationIdCounter = (name: string) => string; export const createOperationIdCounter = () => { const operationIdCounters = new Map(); return (name: string): string => { + name = encodeURIComponent(name); // Aliases an operationId to ensure it is unique across // multiple method+path combinations sharing a name. // "search" -> "search#0", "search#1", etc. diff --git a/packages/kbn-safer-lodash-set/README.md b/packages/kbn-safer-lodash-set/README.md index 823b1acff3b01..110a06421e45e 100644 --- a/packages/kbn-safer-lodash-set/README.md +++ b/packages/kbn-safer-lodash-set/README.md @@ -78,7 +78,7 @@ set(child, 'foo', 3); // object and the `parent` object has not been modified: console.log(child.foo); // 3 console.log(parent.foo); // 1 -console.log(Object.prototype.hasOwnProperty.call(child, 'foo')); // true +console.log(Object.hasOwn(child, 'foo')); // true ``` ### The `path` must not access function prototypes diff --git a/packages/kbn-safer-lodash-set/test/fp_patch_test.js b/packages/kbn-safer-lodash-set/test/fp_patch_test.js index a7a900bd7601f..abc2ce348f5a7 100644 --- a/packages/kbn-safer-lodash-set/test/fp_patch_test.js +++ b/packages/kbn-safer-lodash-set/test/fp_patch_test.js @@ -190,7 +190,7 @@ setFunctions.forEach(([testPermutations, set, testName]) => { t.notStrictEqual(arr, result); t.ok(Array.isArray(result)); Object.keys(expected).forEach((key) => { - t.ok(Object.prototype.hasOwnProperty.call(result, key)); + t.ok(Object.hasOwn(result, key)); t.deepEqual(result[key], expected[key]); }); }); diff --git a/packages/kbn-safer-lodash-set/test/patch_test.js b/packages/kbn-safer-lodash-set/test/patch_test.js index f83cbe1e40b85..cbd2f879dd609 100644 --- a/packages/kbn-safer-lodash-set/test/patch_test.js +++ b/packages/kbn-safer-lodash-set/test/patch_test.js @@ -115,7 +115,7 @@ setAndSetWithFunctions.forEach(([set, testName]) => { const arr = []; set(arr, path, 'foo'); Object.keys(expected).forEach((key) => { - t.ok(Object.prototype.hasOwnProperty.call(arr, key)); + t.ok(Object.hasOwn(arr, key)); t.deepEqual(arr[key], expected[key]); }); t.end(); diff --git a/packages/kbn-screenshotting-server/README.md b/packages/kbn-screenshotting-server/README.md new file mode 100644 index 0000000000000..5dbac6d0ea00f --- /dev/null +++ b/packages/kbn-screenshotting-server/README.md @@ -0,0 +1,3 @@ +# @kbn/screenshotting-server + +Stateless code pertaining to the capture of screenshots for Kibana Reporting diff --git a/packages/kbn-screenshotting-server/index.ts b/packages/kbn-screenshotting-server/index.ts new file mode 100644 index 0000000000000..8ba3e368f4629 --- /dev/null +++ b/packages/kbn-screenshotting-server/index.ts @@ -0,0 +1,13 @@ +/* + * 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 { args } from './src/args'; +export { ChromiumArchivePaths, type PackageInfo } from './src/paths'; +export { getChromiumPackage } from './src/get_chromium_package'; +export { type ConfigType, createConfig, config, durationToNumber } from './src/config'; +export { ConfigSchema } from './src/config/schema'; diff --git a/packages/kbn-screenshotting-server/jest.config.js b/packages/kbn-screenshotting-server/jest.config.js new file mode 100644 index 0000000000000..7436a349ebfc7 --- /dev/null +++ b/packages/kbn-screenshotting-server/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../..', + roots: ['/packages/kbn-screenshotting-server'], +}; diff --git a/packages/kbn-screenshotting-server/kibana.jsonc b/packages/kbn-screenshotting-server/kibana.jsonc new file mode 100644 index 0000000000000..1f2aa1c0f5794 --- /dev/null +++ b/packages/kbn-screenshotting-server/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-server", + "id": "@kbn/screenshotting-server", + "owner": "@elastic/appex-sharedux" +} diff --git a/packages/kbn-screenshotting-server/package.json b/packages/kbn-screenshotting-server/package.json new file mode 100644 index 0000000000000..11f02c6cb5c30 --- /dev/null +++ b/packages/kbn-screenshotting-server/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/screenshotting-server", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.test.ts b/packages/kbn-screenshotting-server/src/args.test.ts similarity index 89% rename from x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.test.ts rename to packages/kbn-screenshotting-server/src/args.test.ts index d66386deb1669..b3ed9a8a4003c 100644 --- a/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.test.ts +++ b/packages/kbn-screenshotting-server/src/args.test.ts @@ -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 os from 'os'; diff --git a/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.ts b/packages/kbn-screenshotting-server/src/args.ts similarity index 92% rename from x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.ts rename to packages/kbn-screenshotting-server/src/args.ts index 2337e452cdc94..a1b1b82e8a24a 100644 --- a/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.ts +++ b/packages/kbn-screenshotting-server/src/args.ts @@ -1,12 +1,13 @@ /* * 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 os from 'os'; -import type { ConfigType } from '../../../config'; +import type { ConfigType } from './config'; interface WindowSize { height: number; diff --git a/x-pack/plugins/screenshotting/server/config/create_config.test.ts b/packages/kbn-screenshotting-server/src/config/create_config.test.ts similarity index 86% rename from x-pack/plugins/screenshotting/server/config/create_config.test.ts rename to packages/kbn-screenshotting-server/src/config/create_config.test.ts index 4bc5ff65727d0..9a6a7e1cdd579 100644 --- a/x-pack/plugins/screenshotting/server/config/create_config.test.ts +++ b/packages/kbn-screenshotting-server/src/config/create_config.test.ts @@ -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 type { Logger } from '@kbn/core/server'; diff --git a/x-pack/plugins/screenshotting/server/config/create_config.ts b/packages/kbn-screenshotting-server/src/config/create_config.ts similarity index 89% rename from x-pack/plugins/screenshotting/server/config/create_config.ts rename to packages/kbn-screenshotting-server/src/config/create_config.ts index c2ab86b5de76e..099dc0b8cb9e6 100644 --- a/x-pack/plugins/screenshotting/server/config/create_config.ts +++ b/packages/kbn-screenshotting-server/src/config/create_config.ts @@ -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 { set } from '@kbn/safer-lodash-set'; diff --git a/x-pack/plugins/screenshotting/server/config/default_chromium_sandbox_disabled.test.ts b/packages/kbn-screenshotting-server/src/config/default_chromium_sandbox_disabled.test.ts similarity index 92% rename from x-pack/plugins/screenshotting/server/config/default_chromium_sandbox_disabled.test.ts rename to packages/kbn-screenshotting-server/src/config/default_chromium_sandbox_disabled.test.ts index 0b5f503e86921..01e863556691d 100644 --- a/x-pack/plugins/screenshotting/server/config/default_chromium_sandbox_disabled.test.ts +++ b/packages/kbn-screenshotting-server/src/config/default_chromium_sandbox_disabled.test.ts @@ -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. */ jest.mock('getos', () => jest.fn()); diff --git a/x-pack/plugins/screenshotting/server/config/default_chromium_sandbox_disabled.ts b/packages/kbn-screenshotting-server/src/config/default_chromium_sandbox_disabled.ts similarity index 90% rename from x-pack/plugins/screenshotting/server/config/default_chromium_sandbox_disabled.ts rename to packages/kbn-screenshotting-server/src/config/default_chromium_sandbox_disabled.ts index 34986e804f45a..19b268f20439c 100644 --- a/x-pack/plugins/screenshotting/server/config/default_chromium_sandbox_disabled.ts +++ b/packages/kbn-screenshotting-server/src/config/default_chromium_sandbox_disabled.ts @@ -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 getOsSync from 'getos'; diff --git a/packages/kbn-screenshotting-server/src/config/index.ts b/packages/kbn-screenshotting-server/src/config/index.ts new file mode 100644 index 0000000000000..583952da6cba6 --- /dev/null +++ b/packages/kbn-screenshotting-server/src/config/index.ts @@ -0,0 +1,94 @@ +/* + * 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 type { PluginConfigDescriptor } from '@kbn/core/server'; +import { ConfigSchema, ConfigType } from './schema'; + +/** + * Helper function + */ +export const durationToNumber = (value: number | moment.Duration): number => { + if (typeof value === 'number') { + return value; + } + return value.asMilliseconds(); +}; + +/** + * Screenshotting plugin configuration schema. + */ +export const config: PluginConfigDescriptor = { + schema: ConfigSchema, + deprecations: ({ renameFromRoot }) => [ + renameFromRoot('xpack.reporting.capture.networkPolicy', 'xpack.screenshotting.networkPolicy', { + level: 'warning', + }), + renameFromRoot( + 'xpack.reporting.capture.browser.autoDownload', + 'xpack.screenshotting.browser.autoDownload', + { level: 'warning' } + ), + renameFromRoot( + 'xpack.reporting.capture.browser.chromium.inspect', + 'xpack.screenshotting.browser.chromium.inspect', + { level: 'warning' } + ), + renameFromRoot( + 'xpack.reporting.capture.browser.chromium.disableSandbox', + 'xpack.screenshotting.browser.chromium.disableSandbox', + { level: 'warning' } + ), + renameFromRoot( + 'xpack.reporting.capture.browser.chromium.proxy.enabled', + 'xpack.screenshotting.browser.chromium.proxy.enabled', + { level: 'warning' } + ), + renameFromRoot( + 'xpack.reporting.capture.browser.chromium.proxy.server', + 'xpack.screenshotting.browser.chromium.proxy.server', + { level: 'warning' } + ), + renameFromRoot( + 'xpack.reporting.capture.browser.chromium.proxy.bypass', + 'xpack.screenshotting.browser.chromium.proxy.bypass', + { level: 'warning' } + ), + renameFromRoot( + 'xpack.reporting.capture.timeouts.openUrl', + 'xpack.screenshotting.capture.timeouts.openUrl', + { level: 'warning' } + ), + renameFromRoot( + 'xpack.reporting.capture.timeouts.renderComplete', + 'xpack.screenshotting.capture.timeouts.renderComplete', + { level: 'warning' } + ), + renameFromRoot( + 'xpack.reporting.capture.timeouts.waitForElements', + 'xpack.screenshotting.capture.timeouts.waitForElements', + { level: 'warning' } + ), + renameFromRoot('xpack.reporting.capture.zoom', 'xpack.screenshotting.capture.zoom', { + level: 'warning', + }), + renameFromRoot('xpack.reporting.capture.loadDelay', 'xpack.screenshotting.capture.loadDelay', { + level: 'warning', + }), + ], + exposeToUsage: { + networkPolicy: false, // show as [redacted] + capture: { + timeouts: { openUrl: true, renderComplete: true, waitForElements: true }, + loadDelay: true, + zoom: true, + }, + }, +}; + +export { createConfig } from './create_config'; +export type { ConfigType } from './schema'; diff --git a/x-pack/plugins/screenshotting/server/config/schema.ts b/packages/kbn-screenshotting-server/src/config/schema.ts similarity index 94% rename from x-pack/plugins/screenshotting/server/config/schema.ts rename to packages/kbn-screenshotting-server/src/config/schema.ts index 0dda1e3ae9981..ce542f2a849f4 100644 --- a/x-pack/plugins/screenshotting/server/config/schema.ts +++ b/packages/kbn-screenshotting-server/src/config/schema.ts @@ -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 { schema, TypeOf, offeringBasedSchema } from '@kbn/config-schema'; diff --git a/packages/kbn-screenshotting-server/src/get_chromium_package.ts b/packages/kbn-screenshotting-server/src/get_chromium_package.ts new file mode 100644 index 0000000000000..af79341d0046a --- /dev/null +++ b/packages/kbn-screenshotting-server/src/get_chromium_package.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. + */ + +import os from 'os'; +import { ChromiumArchivePaths } from './paths'; + +const paths = new ChromiumArchivePaths(); + +export const getChromiumPackage = () => { + const platform = process.platform; + const architecture = os.arch(); + + const chromiumPackageInfo = paths.find(process.platform, architecture); + if (!chromiumPackageInfo) { + throw new Error(`Unsupported platform: ${platform}-${architecture}`); + } + return chromiumPackageInfo; +}; diff --git a/packages/kbn-screenshotting-server/src/paths.ts b/packages/kbn-screenshotting-server/src/paths.ts new file mode 100644 index 0000000000000..f3c339988567f --- /dev/null +++ b/packages/kbn-screenshotting-server/src/paths.ts @@ -0,0 +1,132 @@ +/* + * 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 path from 'path'; + +export interface PackageInfo { + platform: 'linux' | 'darwin' | 'win32'; + architecture: 'x64' | 'arm64'; + archiveFilename: string; + archiveChecksum: string; + binaryChecksum: string; + binaryRelativePath: string; + isPreInstalled: boolean; + location: 'custom' | 'common'; + revision: number; +} + +enum BaseUrl { + // see https://www.chromium.org/getting-involved/download-chromium + common = 'https://commondatastorage.googleapis.com/chromium-browser-snapshots', + // A GCS bucket under the Kibana team + custom = 'https://storage.googleapis.com/headless_shell', +} + +interface CustomPackageInfo extends PackageInfo { + location: 'custom'; +} +interface CommonPackageInfo extends PackageInfo { + location: 'common'; + archivePath: string; +} + +function isCommonPackage(p: PackageInfo): p is CommonPackageInfo { + return p.location === 'common'; +} + +export class ChromiumArchivePaths { + public readonly packages: Array = [ + { + platform: 'darwin', + architecture: 'x64', + archiveFilename: 'chrome-mac.zip', + archiveChecksum: 'fa8004f3c8c5574c089c901e48429d1b01720bf3dd25e05ac56c41d0ab470c10', + binaryChecksum: '56f25cb6881e5c2b1aac0d8e87630517d1af8effdc9319d35f872add048df1ca', + binaryRelativePath: 'chrome-mac/Chromium.app/Contents/MacOS/Chromium', + revision: 1300317, // 1300313 is not available for Mac_x64 + location: 'common', + archivePath: 'Mac', + isPreInstalled: false, + }, + { + platform: 'darwin', + architecture: 'arm64', + archiveFilename: 'chrome-mac.zip', + archiveChecksum: 'bea49fd3ccd6aaccd7cdc4df38306f002a2934aaa2c044f3b5a3272b31ec77ca', + binaryChecksum: '4c55d9e47deb1179c377c9785afdcdb5f3d3f351bff62b414d43e32ff195bd55', + binaryRelativePath: 'chrome-mac/Chromium.app/Contents/MacOS/Chromium', + revision: 1300314, // 1300313 is not available for Mac_Arm + location: 'common', + archivePath: 'Mac_Arm', + isPreInstalled: false, + }, + { + platform: 'linux', + architecture: 'x64', + archiveFilename: 'chromium-5b5d829-locales-linux_x64.zip', + archiveChecksum: '799e8fd5f47ea70b8a3972d39b2617c9cbebc7fc433a89251dae312a7c77534b', + binaryChecksum: '216b8f7ff9b41e985397342c2df54e4f8e07a01a3b8a929f39b9a10931d26ff5', + binaryRelativePath: 'headless_shell-linux_x64/headless_shell', + revision: 1300313, + location: 'custom', + isPreInstalled: true, + }, + { + platform: 'linux', + architecture: 'arm64', + archiveFilename: 'chromium-5b5d829-locales-linux_arm64.zip', + archiveChecksum: '961e20c45c61f8e948efdc4128bb17c23217bbcb28537f270ccf5bf0826981e7', + binaryChecksum: 'fc4027fb6b1c96bef9374d5d9f791097fae2ec2ddc4e0134167075bd52d1458f', + binaryRelativePath: 'headless_shell-linux_arm64/headless_shell', + revision: 1300313, + location: 'custom', + isPreInstalled: true, + }, + { + platform: 'win32', + architecture: 'x64', + archiveFilename: 'chrome-win.zip', + archiveChecksum: '27a2ed1473cefc6f48ff5665faa1fbcc69ef5be47ee21777a60e87c8379fdd93', + binaryChecksum: 'd603401a5e6f8bd734b329876e4221a4d24a1999f14df6e32eeb5e6a72520d96', + binaryRelativePath: path.join('chrome-win', 'chrome.exe'), + revision: 1300320, // 1300313 is not available for win32 + location: 'common', + archivePath: 'Win', + isPreInstalled: true, + }, + ]; + + // zip files get downloaded to a .chromium directory in the kibana root + public readonly archivesPath = path.resolve(__dirname, '../../../../../../.chromium'); + + public find(platform: string, architecture: string, packages: PackageInfo[] = this.packages) { + return packages.find((p) => p.platform === platform && p.architecture === architecture); + } + + public resolvePath(p: PackageInfo) { + // adding architecture to the path allows it to download two binaries that have the same name, but are different architecture + return path.resolve(this.archivesPath, p.architecture, p.archiveFilename); + } + + public getAllArchiveFilenames(): string[] { + return this.packages.map((p) => this.resolvePath(p)); + } + + public getDownloadUrl(p: PackageInfo) { + if (isCommonPackage(p)) { + const { common } = BaseUrl; + const { archivePath, revision, archiveFilename } = p; + return `${common}/${archivePath}/${revision}/${archiveFilename}`; + } + return BaseUrl.custom + '/' + p.archiveFilename; // revision is not used for URL if package is a custom build + } + + public getBinaryPath(p: PackageInfo, chromiumPath: string) { + return path.join(chromiumPath, p.binaryRelativePath); + } +} diff --git a/packages/kbn-screenshotting-server/tsconfig.json b/packages/kbn-screenshotting-server/tsconfig.json new file mode 100644 index 0000000000000..1ca4b9da2b0f6 --- /dev/null +++ b/packages/kbn-screenshotting-server/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts" + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core", + "@kbn/safer-lodash-set", + "@kbn/config-schema" + ] +} diff --git a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap index 1bfa3200b4243..1b462f58b2ed4 100644 --- a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap +++ b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap @@ -6,21 +6,21 @@ Object { "baseElement":
@@ -30,7 +30,7 @@ Object { aria-expanded="false" aria-invalid="false" autocomplete="off" - class="euiComboBox__input" + class="euiComboBox__input emotion-euiComboBoxInput" data-test-subj="comboBoxSearchInput" id="generated-id__eui-combobox-id" role="combobox" @@ -74,21 +74,21 @@ Object { , "container":
@@ -98,7 +98,7 @@ Object { aria-expanded="false" aria-invalid="false" autocomplete="off" - class="euiComboBox__input" + class="euiComboBox__input emotion-euiComboBoxInput" data-test-subj="comboBoxSearchInput" id="generated-id__eui-combobox-id" role="combobox" @@ -199,20 +199,20 @@ Object { "baseElement":
@@ -222,7 +222,7 @@ Object { aria-expanded="false" aria-invalid="false" autocomplete="off" - class="euiComboBox__input" + class="euiComboBox__input emotion-euiComboBoxInput" data-test-subj="comboBoxSearchInput" disabled="" id="generated-id__eui-combobox-id" @@ -239,20 +239,20 @@ Object { , "container":
@@ -262,7 +262,7 @@ Object { aria-expanded="false" aria-invalid="false" autocomplete="off" - class="euiComboBox__input" + class="euiComboBox__input emotion-euiComboBoxInput" data-test-subj="comboBoxSearchInput" disabled="" id="generated-id__eui-combobox-id" @@ -336,21 +336,21 @@ Object { "baseElement":
@@ -360,7 +360,7 @@ Object { aria-expanded="false" aria-invalid="false" autocomplete="off" - class="euiComboBox__input" + class="euiComboBox__input emotion-euiComboBoxInput" data-test-subj="comboBoxSearchInput" id="generated-id__eui-combobox-id" role="combobox" @@ -393,21 +393,21 @@ Object { , "container":
@@ -417,7 +417,7 @@ Object { aria-expanded="false" aria-invalid="false" autocomplete="off" - class="euiComboBox__input" + class="euiComboBox__input emotion-euiComboBoxInput" data-test-subj="comboBoxSearchInput" id="generated-id__eui-combobox-id" role="combobox" @@ -507,21 +507,21 @@ Object { "baseElement":
@@ -531,7 +531,7 @@ Object { aria-expanded="false" aria-invalid="false" autocomplete="off" - class="euiComboBox__input" + class="euiComboBox__input emotion-euiComboBoxInput" data-test-subj="comboBoxSearchInput" disabled="" id="generated-id__eui-combobox-id" @@ -557,21 +557,21 @@ Object { , "container":
@@ -581,7 +581,7 @@ Object { aria-expanded="false" aria-invalid="false" autocomplete="off" - class="euiComboBox__input" + class="euiComboBox__input emotion-euiComboBoxInput" data-test-subj="comboBoxSearchInput" disabled="" id="generated-id__eui-combobox-id" diff --git a/packages/kbn-securitysolution-endpoint-exceptions-common/api/create_endpoint_list/create_endpoint_list.gen.ts b/packages/kbn-securitysolution-endpoint-exceptions-common/api/create_endpoint_list/create_endpoint_list.gen.ts index 7a6f0231a9f59..94ce9b7b8da74 100644 --- a/packages/kbn-securitysolution-endpoint-exceptions-common/api/create_endpoint_list/create_endpoint_list.gen.ts +++ b/packages/kbn-securitysolution-endpoint-exceptions-common/api/create_endpoint_list/create_endpoint_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { EndpointList } from '../model/endpoint_list_common.gen'; diff --git a/packages/kbn-securitysolution-endpoint-exceptions-common/api/create_endpoint_list_item/create_endpoint_list_item.gen.ts b/packages/kbn-securitysolution-endpoint-exceptions-common/api/create_endpoint_list_item/create_endpoint_list_item.gen.ts index f36f79f7b0b2a..a8ce0d06bec96 100644 --- a/packages/kbn-securitysolution-endpoint-exceptions-common/api/create_endpoint_list_item/create_endpoint_list_item.gen.ts +++ b/packages/kbn-securitysolution-endpoint-exceptions-common/api/create_endpoint_list_item/create_endpoint_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListItemHumanId, diff --git a/packages/kbn-securitysolution-endpoint-exceptions-common/api/delete_endpoint_list_item/delete_endpoint_list_item.gen.ts b/packages/kbn-securitysolution-endpoint-exceptions-common/api/delete_endpoint_list_item/delete_endpoint_list_item.gen.ts index cd02179c2922f..bffe32c61efad 100644 --- a/packages/kbn-securitysolution-endpoint-exceptions-common/api/delete_endpoint_list_item/delete_endpoint_list_item.gen.ts +++ b/packages/kbn-securitysolution-endpoint-exceptions-common/api/delete_endpoint_list_item/delete_endpoint_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListItemId, diff --git a/packages/kbn-securitysolution-endpoint-exceptions-common/api/find_endpoint_list_item/find_endpoint_list_item.gen.ts b/packages/kbn-securitysolution-endpoint-exceptions-common/api/find_endpoint_list_item/find_endpoint_list_item.gen.ts index ac1f955df209e..e00e21c0d9844 100644 --- a/packages/kbn-securitysolution-endpoint-exceptions-common/api/find_endpoint_list_item/find_endpoint_list_item.gen.ts +++ b/packages/kbn-securitysolution-endpoint-exceptions-common/api/find_endpoint_list_item/find_endpoint_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; import { EndpointListItem } from '../model/endpoint_list_common.gen'; diff --git a/packages/kbn-securitysolution-endpoint-exceptions-common/api/model/endpoint_list_common.gen.ts b/packages/kbn-securitysolution-endpoint-exceptions-common/api/model/endpoint_list_common.gen.ts index 30f7c80ba257c..4152f49e9ba90 100644 --- a/packages/kbn-securitysolution-endpoint-exceptions-common/api/model/endpoint_list_common.gen.ts +++ b/packages/kbn-securitysolution-endpoint-exceptions-common/api/model/endpoint_list_common.gen.ts @@ -15,7 +15,7 @@ * version: not applicable */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionList, diff --git a/packages/kbn-securitysolution-endpoint-exceptions-common/api/read_endpoint_list_item/read_endpoint_list_item.gen.ts b/packages/kbn-securitysolution-endpoint-exceptions-common/api/read_endpoint_list_item/read_endpoint_list_item.gen.ts index e3661cb8099d3..28cf72345e008 100644 --- a/packages/kbn-securitysolution-endpoint-exceptions-common/api/read_endpoint_list_item/read_endpoint_list_item.gen.ts +++ b/packages/kbn-securitysolution-endpoint-exceptions-common/api/read_endpoint_list_item/read_endpoint_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListItemId, diff --git a/packages/kbn-securitysolution-endpoint-exceptions-common/api/update_endpoint_list_item/update_endpoint_list_item.gen.ts b/packages/kbn-securitysolution-endpoint-exceptions-common/api/update_endpoint_list_item/update_endpoint_list_item.gen.ts index 38d8cd87a430e..e3dca2cdc27a9 100644 --- a/packages/kbn-securitysolution-endpoint-exceptions-common/api/update_endpoint_list_item/update_endpoint_list_item.gen.ts +++ b/packages/kbn-securitysolution-endpoint-exceptions-common/api/update_endpoint_list_item/update_endpoint_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListItemId, diff --git a/packages/kbn-securitysolution-endpoint-exceptions-common/tsconfig.json b/packages/kbn-securitysolution-endpoint-exceptions-common/tsconfig.json index 750feb76c4bd2..7e3c3fd7396dc 100644 --- a/packages/kbn-securitysolution-endpoint-exceptions-common/tsconfig.json +++ b/packages/kbn-securitysolution-endpoint-exceptions-common/tsconfig.json @@ -6,5 +6,9 @@ "exclude": ["target/**/*"], "extends": "../../tsconfig.base.json", "include": ["**/*.ts"], - "kbn_references": ["@kbn/securitysolution-exceptions-common", "@kbn/openapi-common"] + "kbn_references": [ + "@kbn/securitysolution-exceptions-common", + "@kbn/openapi-common", + "@kbn/zod", + ] } diff --git a/packages/kbn-securitysolution-es-utils/src/transform_error/index.ts b/packages/kbn-securitysolution-es-utils/src/transform_error/index.ts index d893a3e1b4ed7..8fdf8fe32907c 100644 --- a/packages/kbn-securitysolution-es-utils/src/transform_error/index.ts +++ b/packages/kbn-securitysolution-es-utils/src/transform_error/index.ts @@ -9,7 +9,7 @@ import { errors } from '@elastic/elasticsearch'; import Boom from '@hapi/boom'; import { stringifyZodError } from '@kbn/zod-helpers'; -import { ZodError } from 'zod'; +import { ZodError } from '@kbn/zod'; import { BadRequestError } from '../bad_request_error'; export interface OutputError { diff --git a/packages/kbn-securitysolution-es-utils/tsconfig.json b/packages/kbn-securitysolution-es-utils/tsconfig.json index c9296a28f35c7..e584d504cc9c0 100644 --- a/packages/kbn-securitysolution-es-utils/tsconfig.json +++ b/packages/kbn-securitysolution-es-utils/tsconfig.json @@ -15,5 +15,6 @@ ], "kbn_references": [ "@kbn/zod-helpers", + "@kbn/zod", ] } diff --git a/packages/kbn-securitysolution-exceptions-common/api/create_exception_list/create_exception_list.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/create_exception_list/create_exception_list.gen.ts index 3509b26499fc9..88154be8135eb 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/create_exception_list/create_exception_list.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/create_exception_list/create_exception_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListHumanId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/create_exception_list_item/create_exception_list_item.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/create_exception_list_item/create_exception_list_item.gen.ts index a11dd91aedd44..b39449b737735 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/create_exception_list_item/create_exception_list_item.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/create_exception_list_item/create_exception_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; import { diff --git a/packages/kbn-securitysolution-exceptions-common/api/create_rule_exceptions/create_rule_exceptions.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/create_rule_exceptions/create_rule_exceptions.gen.ts index e30f466cc056c..7fd4235fa3570 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/create_rule_exceptions/create_rule_exceptions.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/create_rule_exceptions/create_rule_exceptions.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { UUID, NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; import { diff --git a/packages/kbn-securitysolution-exceptions-common/api/create_shared_exceptions_list/create_shared_exceptions_list.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/create_shared_exceptions_list/create_shared_exceptions_list.gen.ts index e050c211e1513..28879de7ff81e 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/create_shared_exceptions_list/create_shared_exceptions_list.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/create_shared_exceptions_list/create_shared_exceptions_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListName, diff --git a/packages/kbn-securitysolution-exceptions-common/api/delete_exception_list/delete_exception_list.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/delete_exception_list/delete_exception_list.gen.ts index 0797b7e3b9b01..808cc84807ab1 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/delete_exception_list/delete_exception_list.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/delete_exception_list/delete_exception_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/delete_exception_list_item/delete_exception_list_item.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/delete_exception_list_item/delete_exception_list_item.gen.ts index d709fd5597b80..e44334ad60e5c 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/delete_exception_list_item/delete_exception_list_item.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/delete_exception_list_item/delete_exception_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListItemId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/duplicate_exception_list/duplicate_exception_list.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/duplicate_exception_list/duplicate_exception_list.gen.ts index e5c3f19b28aa2..65ea86f9f2f35 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/duplicate_exception_list/duplicate_exception_list.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/duplicate_exception_list/duplicate_exception_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListHumanId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/export_exception_list/export_exception_list.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/export_exception_list/export_exception_list.gen.ts index bb62df2e43226..f4c4fc720951a 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/export_exception_list/export_exception_list.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/export_exception_list/export_exception_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/find_exception_list_items/find_exception_list_items.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/find_exception_list_items/find_exception_list_items.gen.ts index 3c89952682847..9cf4d99c4d93a 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/find_exception_list_items/find_exception_list_items.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/find_exception_list_items/find_exception_list_items.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ArrayFromString } from '@kbn/zod-helpers'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; diff --git a/packages/kbn-securitysolution-exceptions-common/api/find_exception_lists/find_exception_lists.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/find_exception_lists/find_exception_lists.gen.ts index 6ae1aef1f15df..b478692515bda 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/find_exception_lists/find_exception_lists.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/find_exception_lists/find_exception_lists.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ArrayFromString } from '@kbn/zod-helpers'; import { ExceptionNamespaceType, ExceptionList } from '../model/exception_list_common.gen'; diff --git a/packages/kbn-securitysolution-exceptions-common/api/import_exceptions/import_exceptions.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/import_exceptions/import_exceptions.gen.ts index ec25576cc9dfe..a1b6d0ce8e26b 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/import_exceptions/import_exceptions.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/import_exceptions/import_exceptions.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { BooleanFromString } from '@kbn/zod-helpers'; import { diff --git a/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_common.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_common.gen.ts index 360e4ec747d85..28f3d2ac62b8f 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_common.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_common.gen.ts @@ -15,7 +15,7 @@ * version: not applicable */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; import { ExceptionListItemEntryArray } from './exception_list_item_entry.gen'; diff --git a/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_item_entry.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_item_entry.gen.ts index c297388633429..d7a0e54487783 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_item_entry.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_item_entry.gen.ts @@ -15,7 +15,7 @@ * version: not applicable */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; import { ListId, ListType } from '@kbn/securitysolution-lists-common/api/model/list_common.gen'; diff --git a/packages/kbn-securitysolution-exceptions-common/api/read_exception_list/read_exception_list.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/read_exception_list/read_exception_list.gen.ts index 1cd161cbcbc20..d86025c948329 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/read_exception_list/read_exception_list.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/read_exception_list/read_exception_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/read_exception_list_item/read_exception_list_item.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/read_exception_list_item/read_exception_list_item.gen.ts index 5c8d5a27c38d8..9ab5ae84446f5 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/read_exception_list_item/read_exception_list_item.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/read_exception_list_item/read_exception_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListItemId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/read_exception_list_summary/read_exception_list_summary.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/read_exception_list_summary/read_exception_list_summary.gen.ts index d740f5843b5ce..94a9c6a51895b 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/read_exception_list_summary/read_exception_list_summary.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/read_exception_list_summary/read_exception_list_summary.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/update_exception_list/update_exception_list.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/update_exception_list/update_exception_list.gen.ts index 8fb0760677873..7fa7febd0e066 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/update_exception_list/update_exception_list.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/update_exception_list/update_exception_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ExceptionListId, diff --git a/packages/kbn-securitysolution-exceptions-common/api/update_exception_list_item/update_exception_list_item.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/update_exception_list_item/update_exception_list_item.gen.ts index 963628a7be5c5..82e696cbf3825 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/update_exception_list_item/update_exception_list_item.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/update_exception_list_item/update_exception_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; import { diff --git a/packages/kbn-securitysolution-exceptions-common/tsconfig.json b/packages/kbn-securitysolution-exceptions-common/tsconfig.json index 96bc2e233e73e..a51728703b383 100644 --- a/packages/kbn-securitysolution-exceptions-common/tsconfig.json +++ b/packages/kbn-securitysolution-exceptions-common/tsconfig.json @@ -9,6 +9,7 @@ "kbn_references": [ "@kbn/openapi-common", "@kbn/zod-helpers", - "@kbn/securitysolution-lists-common" + "@kbn/securitysolution-lists-common", + "@kbn/zod" ] } diff --git a/packages/kbn-securitysolution-lists-common/api/create_list/create_list.gen.ts b/packages/kbn-securitysolution-lists-common/api/create_list/create_list.gen.ts index 22c4a1c47bb8a..479f755956f52 100644 --- a/packages/kbn-securitysolution-lists-common/api/create_list/create_list.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/create_list/create_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId, diff --git a/packages/kbn-securitysolution-lists-common/api/create_list_index/create_list_index.gen.ts b/packages/kbn-securitysolution-lists-common/api/create_list_index/create_list_index.gen.ts index b2217f2016422..ebf5229162334 100644 --- a/packages/kbn-securitysolution-lists-common/api/create_list_index/create_list_index.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/create_list_index/create_list_index.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; export type CreateListIndexResponse = z.infer; export const CreateListIndexResponse = z.object({ diff --git a/packages/kbn-securitysolution-lists-common/api/create_list_item/create_list_item.gen.ts b/packages/kbn-securitysolution-lists-common/api/create_list_item/create_list_item.gen.ts index 94e1be2171921..da325ddefce0a 100644 --- a/packages/kbn-securitysolution-lists-common/api/create_list_item/create_list_item.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/create_list_item/create_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListItemId, ListId, ListItemValue, ListItemMetadata } from '../model/list_common.gen'; import { ListItem } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/delete_list/delete_list.gen.ts b/packages/kbn-securitysolution-lists-common/api/delete_list/delete_list.gen.ts index fe058928eca0b..26eb9f522dbe2 100644 --- a/packages/kbn-securitysolution-lists-common/api/delete_list/delete_list.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/delete_list/delete_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { BooleanFromString } from '@kbn/zod-helpers'; import { ListId } from '../model/list_common.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/delete_list_index/delete_list_index.gen.ts b/packages/kbn-securitysolution-lists-common/api/delete_list_index/delete_list_index.gen.ts index 3be609d0b8a92..2b4cbe10ab608 100644 --- a/packages/kbn-securitysolution-lists-common/api/delete_list_index/delete_list_index.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/delete_list_index/delete_list_index.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; export type DeleteListIndexResponse = z.infer; export const DeleteListIndexResponse = z.object({ diff --git a/packages/kbn-securitysolution-lists-common/api/delete_list_item/delete_list_item.gen.ts b/packages/kbn-securitysolution-lists-common/api/delete_list_item/delete_list_item.gen.ts index d94b2f18d6158..20eb9b0d2c0d1 100644 --- a/packages/kbn-securitysolution-lists-common/api/delete_list_item/delete_list_item.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/delete_list_item/delete_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId } from '../model/list_common.gen'; import { ListItem } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/export_list_items/export_list_items.gen.ts b/packages/kbn-securitysolution-lists-common/api/export_list_items/export_list_items.gen.ts index 0e831e0887bd0..ddc71d79568ae 100644 --- a/packages/kbn-securitysolution-lists-common/api/export_list_items/export_list_items.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/export_list_items/export_list_items.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId } from '../model/list_common.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/find_list_items/find_list_items.gen.ts b/packages/kbn-securitysolution-lists-common/api/find_list_items/find_list_items.gen.ts index adc9574833813..f3ae2fbcde50e 100644 --- a/packages/kbn-securitysolution-lists-common/api/find_list_items/find_list_items.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/find_list_items/find_list_items.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; import { ListId } from '../model/list_common.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/find_lists/find_lists.gen.ts b/packages/kbn-securitysolution-lists-common/api/find_lists/find_lists.gen.ts index 96fcaa5eefca4..5ec1be6b381ad 100644 --- a/packages/kbn-securitysolution-lists-common/api/find_lists/find_lists.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/find_lists/find_lists.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; import { List } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/import_list_items/import_list_items.gen.ts b/packages/kbn-securitysolution-lists-common/api/import_list_items/import_list_items.gen.ts index 5748e6a78e2c0..8f15c39a3bcb8 100644 --- a/packages/kbn-securitysolution-lists-common/api/import_list_items/import_list_items.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/import_list_items/import_list_items.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId, ListType } from '../model/list_common.gen'; import { List } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/model/list_common.gen.ts b/packages/kbn-securitysolution-lists-common/api/model/list_common.gen.ts index f4a6a007fed9b..26c79eaaf7bbe 100644 --- a/packages/kbn-securitysolution-lists-common/api/model/list_common.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/model/list_common.gen.ts @@ -15,7 +15,7 @@ * version: not applicable */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { NonEmptyString } from '@kbn/openapi-common/schemas/primitives.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/model/list_schemas.gen.ts b/packages/kbn-securitysolution-lists-common/api/model/list_schemas.gen.ts index c70278df938ce..1d7ff3678565e 100644 --- a/packages/kbn-securitysolution-lists-common/api/model/list_schemas.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/model/list_schemas.gen.ts @@ -15,7 +15,7 @@ * version: not applicable */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId, diff --git a/packages/kbn-securitysolution-lists-common/api/patch_list/patch_list.gen.ts b/packages/kbn-securitysolution-lists-common/api/patch_list/patch_list.gen.ts index 47eeb87d0f5d4..e4619e5def99b 100644 --- a/packages/kbn-securitysolution-lists-common/api/patch_list/patch_list.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/patch_list/patch_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId, ListName, ListDescription, ListMetadata } from '../model/list_common.gen'; import { List } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/patch_list_item/patch_list_item.gen.ts b/packages/kbn-securitysolution-lists-common/api/patch_list_item/patch_list_item.gen.ts index ce29d68bed7a7..0cf7f7594fbe3 100644 --- a/packages/kbn-securitysolution-lists-common/api/patch_list_item/patch_list_item.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/patch_list_item/patch_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListItemId, ListItemValue, ListItemMetadata } from '../model/list_common.gen'; import { ListItem } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/read_list/read_list.gen.ts b/packages/kbn-securitysolution-lists-common/api/read_list/read_list.gen.ts index c0f00a8718de1..fb04e41f9ac72 100644 --- a/packages/kbn-securitysolution-lists-common/api/read_list/read_list.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/read_list/read_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId } from '../model/list_common.gen'; import { List } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/read_list_index/read_list_index.gen.ts b/packages/kbn-securitysolution-lists-common/api/read_list_index/read_list_index.gen.ts index 3658cb1001bed..813620934baa5 100644 --- a/packages/kbn-securitysolution-lists-common/api/read_list_index/read_list_index.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/read_list_index/read_list_index.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; export type ReadListIndexResponse = z.infer; export const ReadListIndexResponse = z.object({ diff --git a/packages/kbn-securitysolution-lists-common/api/read_list_item/read_list_item.gen.ts b/packages/kbn-securitysolution-lists-common/api/read_list_item/read_list_item.gen.ts index f981835219c80..e214e492c9cd7 100644 --- a/packages/kbn-securitysolution-lists-common/api/read_list_item/read_list_item.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/read_list_item/read_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId } from '../model/list_common.gen'; import { ListItem } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/read_list_privileges/read_list_privileges.gen.ts b/packages/kbn-securitysolution-lists-common/api/read_list_privileges/read_list_privileges.gen.ts index 26dd21fed8652..7c3a97665f374 100644 --- a/packages/kbn-securitysolution-lists-common/api/read_list_privileges/read_list_privileges.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/read_list_privileges/read_list_privileges.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; export type ListPrivileges = z.infer; export const ListPrivileges = z.object({ diff --git a/packages/kbn-securitysolution-lists-common/api/update_list/update_list.gen.ts b/packages/kbn-securitysolution-lists-common/api/update_list/update_list.gen.ts index 833239a7eb82b..362cfc4361fba 100644 --- a/packages/kbn-securitysolution-lists-common/api/update_list/update_list.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/update_list/update_list.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListId, ListName, ListDescription, ListMetadata } from '../model/list_common.gen'; import { List } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/api/update_list_item/update_list_item.gen.ts b/packages/kbn-securitysolution-lists-common/api/update_list_item/update_list_item.gen.ts index 069c101beaaf4..d8257e739b05f 100644 --- a/packages/kbn-securitysolution-lists-common/api/update_list_item/update_list_item.gen.ts +++ b/packages/kbn-securitysolution-lists-common/api/update_list_item/update_list_item.gen.ts @@ -15,7 +15,7 @@ * version: 2023-10-31 */ -import { z } from 'zod'; +import { z } from '@kbn/zod'; import { ListItemId, ListItemValue, ListItemMetadata } from '../model/list_common.gen'; import { ListItem } from '../model/list_schemas.gen'; diff --git a/packages/kbn-securitysolution-lists-common/tsconfig.json b/packages/kbn-securitysolution-lists-common/tsconfig.json index b6a14b40363c7..59070e0a49731 100644 --- a/packages/kbn-securitysolution-lists-common/tsconfig.json +++ b/packages/kbn-securitysolution-lists-common/tsconfig.json @@ -6,5 +6,9 @@ "exclude": ["target/**/*"], "extends": "../../tsconfig.base.json", "include": ["**/*.ts"], - "kbn_references": ["@kbn/zod-helpers", "@kbn/openapi-common"] + "kbn_references": [ + "@kbn/zod-helpers", + "@kbn/openapi-common", + "@kbn/zod", + ] } diff --git a/packages/kbn-server-http-tools/src/default_validation_error_handler.ts b/packages/kbn-server-http-tools/src/default_validation_error_handler.ts index d2f4e993f3e4b..9ee8bac238c44 100644 --- a/packages/kbn-server-http-tools/src/default_validation_error_handler.ts +++ b/packages/kbn-server-http-tools/src/default_validation_error_handler.ts @@ -43,7 +43,7 @@ export function defaultValidationErrorHandler( // // The Hapi code we're 'overwriting' can be found here: // https://github.com/hapijs/hapi/blob/master/lib/validation.js#L102 - if (err && err.name === 'ValidationError' && err.hasOwnProperty('output')) { + if (err && err.name === 'ValidationError' && Object.hasOwn(err, 'output')) { const validationError: HapiValidationError = err as HapiValidationError; const validationKeys: string[] = []; diff --git a/packages/kbn-server-route-repository-utils/index.ts b/packages/kbn-server-route-repository-utils/index.ts index bfcc03c0e64c5..ce2139badd8e6 100644 --- a/packages/kbn-server-route-repository-utils/index.ts +++ b/packages/kbn-server-route-repository-utils/index.ts @@ -24,4 +24,6 @@ export type { DefaultClientOptions, DefaultRouteCreateOptions, DefaultRouteHandlerResources, + IoTsParamsObject, + ZodParamsObject, } from './src/typings'; diff --git a/packages/kbn-server-route-repository-utils/src/typings.ts b/packages/kbn-server-route-repository-utils/src/typings.ts index 0539d9ea1d38e..ff93e760a580a 100644 --- a/packages/kbn-server-route-repository-utils/src/typings.ts +++ b/packages/kbn-server-route-repository-utils/src/typings.ts @@ -9,13 +9,14 @@ import type { HttpFetchOptions } from '@kbn/core-http-browser'; import type { IKibanaResponse } from '@kbn/core-http-server'; import type { - RequestHandlerContext, + KibanaRequest, + KibanaResponseFactory, Logger, + RequestHandlerContext, RouteConfigOptions, RouteMethod, - KibanaRequest, - KibanaResponseFactory, } from '@kbn/core/server'; +import { z } from '@kbn/zod'; import * as t from 'io-ts'; import { RequiredKeys } from 'utility-types'; @@ -30,7 +31,13 @@ type WithoutIncompatibleMethods = Omit t.Encoder; }; -export type RouteParamsRT = WithoutIncompatibleMethods< +export type ZodParamsObject = z.ZodObject<{ + path?: any; + query?: any; + body?: any; +}>; + +export type IoTsParamsObject = WithoutIncompatibleMethods< t.Type<{ path?: any; query?: any; @@ -38,6 +45,8 @@ export type RouteParamsRT = WithoutIncompatibleMethods< }> >; +export type RouteParamsRT = IoTsParamsObject | ZodParamsObject; + export interface RouteState { [endpoint: string]: ServerRoute; } @@ -82,6 +91,10 @@ type ClientRequestParamsOfType = ? MaybeOptional<{ params: t.OutputOf; }> + : TRouteParamsRT extends z.Schema + ? MaybeOptional<{ + params: z.TypeOf; + }> : {}; type DecodedRequestParamsOfType = @@ -89,6 +102,10 @@ type DecodedRequestParamsOfType = ? MaybeOptional<{ params: t.TypeOf; }> + : TRouteParamsRT extends z.Schema + ? MaybeOptional<{ + params: z.TypeOf; + }> : {}; export type EndpointOf = diff --git a/packages/kbn-server-route-repository-utils/tsconfig.json b/packages/kbn-server-route-repository-utils/tsconfig.json index 0f3dd221ec6b7..cb5d9846f6cc8 100644 --- a/packages/kbn-server-route-repository-utils/tsconfig.json +++ b/packages/kbn-server-route-repository-utils/tsconfig.json @@ -19,5 +19,6 @@ "@kbn/core-http-browser", "@kbn/core-http-server", "@kbn/core", + "@kbn/zod", ] } diff --git a/packages/kbn-server-route-repository/README.md b/packages/kbn-server-route-repository/README.md index f46a8f3ee3677..f42bfb4390a20 100644 --- a/packages/kbn-server-route-repository/README.md +++ b/packages/kbn-server-route-repository/README.md @@ -127,22 +127,22 @@ The client translates the endpoint and the options (including request parameters ## Request parameter validation -When creating your routes, you can also provide an `io-ts` codec to be used when validating incoming requests. +When creating your routes, you can provide either a `zod` schema or an `io-ts` codec to be used when validating incoming requests. ```javascript -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; const myRoute = createMyPluginServerRoute({ - endpoint: 'GET /internal/my_plugin/route/{my_path_param}', - params: t.type({ - path: t.type({ - my_path_param: t.string, + endpoint: 'POST /internal/my_plugin/route/{my_path_param}', + params: z.object({ + path: z.object({ + my_path_param: z.string(), }), - query: t.type({ - my_query_param: t.string, + query: z.object({ + my_query_param: z.string(), }), - body: t.type({ - my_body_param: t.string, + body: z.object({ + my_body_param: z.string(), }), }), handler: async (resources) => { @@ -162,7 +162,7 @@ The `params` object is added to the route resources. When calling this endpoint, it will look like this: ```javascript -client('GET /internal/my_plugin/route/{my_path_param}', { +client('POST /internal/my_plugin/route/{my_path_param}', { params: { path: { my_path_param: 'some_path_value', @@ -179,6 +179,9 @@ client('GET /internal/my_plugin/route/{my_path_param}', { Where the shape of `params` is typed to match the expected shape, meaning you don't need to manually use the codec when calling the route. +> When using `zod` you also opt into the Kibana platforms automatic OpenAPI specification generation tooling. +> By adding `server.oas.enabled: true` to your `kibana.yml` and visiting `/api/oas?pluginId=yourPluginId` you can see the generated specification. + ## Public routes To define a public route, you need to change the endpoint path and add a version. diff --git a/packages/kbn-server-route-repository/index.ts b/packages/kbn-server-route-repository/index.ts index e4e43523d25c3..5a2bcb89ec3a4 100644 --- a/packages/kbn-server-route-repository/index.ts +++ b/packages/kbn-server-route-repository/index.ts @@ -9,7 +9,8 @@ export { formatRequest, parseEndpoint } from '@kbn/server-route-repository-utils'; export { createServerRouteFactory } from './src/create_server_route_factory'; export { decodeRequestParams } from './src/decode_request_params'; -export { routeValidationObject } from './src/route_validation_object'; +export { stripNullishRequestParameters } from './src/strip_nullish_request_parameters'; +export { passThroughValidationObject } from './src/validation_objects'; export { registerRoutes } from './src/register_routes'; export type { @@ -24,4 +25,5 @@ export type { RouteState, DefaultRouteCreateOptions, DefaultRouteHandlerResources, + IoTsParamsObject, } from '@kbn/server-route-repository-utils'; diff --git a/packages/kbn-server-route-repository/src/decode_request_params.test.ts b/packages/kbn-server-route-repository/src/decode_request_params.test.ts index 0cb8d280f28e4..9041f68643317 100644 --- a/packages/kbn-server-route-repository/src/decode_request_params.test.ts +++ b/packages/kbn-server-route-repository/src/decode_request_params.test.ts @@ -5,7 +5,7 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -import { jsonRt } from '@kbn/io-ts-utils'; + import * as t from 'io-ts'; import { decodeRequestParams } from './decode_request_params'; @@ -14,10 +14,9 @@ describe('decodeRequestParams', () => { const decode = () => { return decodeRequestParams( { - params: { + path: { serviceName: 'opbeans-java', }, - body: null, query: { start: '', }, @@ -48,11 +47,10 @@ describe('decodeRequestParams', () => { const decode = () => { return decodeRequestParams( { - params: { + path: { serviceName: 'opbeans-java', extraKey: '', }, - body: null, query: { start: '', }, @@ -74,81 +72,4 @@ describe('decodeRequestParams', () => { path.extraKey" `); }); - - it('returns the decoded output', () => { - const decode = () => { - return decodeRequestParams( - { - params: {}, - query: { - _inspect: 'true', - }, - body: null, - }, - t.type({ - query: t.type({ - _inspect: jsonRt.pipe(t.boolean), - }), - }) - ); - }; - - expect(decode).not.toThrow(); - - expect(decode()).toEqual({ - query: { - _inspect: true, - }, - }); - }); - - it('strips empty params', () => { - const decode = () => { - return decodeRequestParams( - { - params: {}, - query: {}, - body: {}, - }, - t.type({ - body: t.any, - }) - ); - }; - - expect(decode).not.toThrow(); - - expect(decode()).toEqual({}); - }); - - it('allows excess keys in an any type', () => { - const decode = () => { - return decodeRequestParams( - { - params: {}, - query: {}, - body: { - body: { - query: 'foo', - }, - }, - }, - t.type({ - body: t.type({ - body: t.any, - }), - }) - ); - }; - - expect(decode).not.toThrow(); - - expect(decode()).toEqual({ - body: { - body: { - query: 'foo', - }, - }, - }); - }); }); diff --git a/packages/kbn-server-route-repository/src/decode_request_params.ts b/packages/kbn-server-route-repository/src/decode_request_params.ts index bae6e4d4a0e12..fe7c93b2e7397 100644 --- a/packages/kbn-server-route-repository/src/decode_request_params.ts +++ b/packages/kbn-server-route-repository/src/decode_request_params.ts @@ -7,32 +7,16 @@ */ import Boom from '@hapi/boom'; import { formatErrors, strictKeysRt } from '@kbn/io-ts-utils'; -import { RouteParamsRT } from '@kbn/server-route-repository-utils'; +import { IoTsParamsObject } from '@kbn/server-route-repository-utils'; import { isLeft } from 'fp-ts/lib/Either'; import * as t from 'io-ts'; -import { isEmpty, isPlainObject, omitBy } from 'lodash'; -interface KibanaRequestParams { - body: unknown; - query: unknown; - params: unknown; -} - -export function decodeRequestParams( - params: KibanaRequestParams, +export function decodeRequestParams( + params: Partial<{ path: any; query: any; body: any }>, paramsRt: T ): t.OutputOf { - const paramMap = omitBy( - { - path: params.params, - body: params.body, - query: params.query, - }, - (val) => val === null || val === undefined || (isPlainObject(val) && isEmpty(val)) - ); - // decode = validate - const result = strictKeysRt(paramsRt).decode(paramMap); + const result = strictKeysRt(paramsRt).decode(params); if (isLeft(result)) { throw Boom.badRequest(formatErrors(result.left)); diff --git a/packages/kbn-server-route-repository/src/make_zod_validation_object.test.ts b/packages/kbn-server-route-repository/src/make_zod_validation_object.test.ts new file mode 100644 index 0000000000000..b06bfebe613c5 --- /dev/null +++ b/packages/kbn-server-route-repository/src/make_zod_validation_object.test.ts @@ -0,0 +1,50 @@ +/* + * 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 { z } from '@kbn/zod'; +import { makeZodValidationObject } from './make_zod_validation_object'; +import { noParamsValidationObject } from './validation_objects'; + +describe('makeZodValidationObject', () => { + it('translate path to params', () => { + const schema = z.object({ + path: z.object({}), + }); + + expect(makeZodValidationObject(schema)).toMatchObject({ + params: expect.anything(), + }); + }); + + it('makes all object types strict', () => { + const schema = z.object({ + path: z.object({}), + query: z.object({}), + body: z.string(), + }); + + const pathStrictSpy = jest.spyOn(schema.shape.path, 'strict'); + const queryStrictSpy = jest.spyOn(schema.shape.query, 'strict'); + + expect(makeZodValidationObject(schema)).toEqual({ + params: pathStrictSpy.mock.results[0].value, + query: queryStrictSpy.mock.results[0].value, + body: schema.shape.body, + }); + }); + + it('sets key to strict empty if schema is missing key', () => { + const schema = z.object({}); + + expect(makeZodValidationObject(schema)).toStrictEqual({ + params: noParamsValidationObject.params, + query: noParamsValidationObject.query, + body: noParamsValidationObject.body, + }); + }); +}); diff --git a/packages/kbn-server-route-repository/src/make_zod_validation_object.ts b/packages/kbn-server-route-repository/src/make_zod_validation_object.ts new file mode 100644 index 0000000000000..5e3634f6f0333 --- /dev/null +++ b/packages/kbn-server-route-repository/src/make_zod_validation_object.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 { ZodObject, ZodAny } from '@kbn/zod'; +import { ZodParamsObject } from '@kbn/server-route-repository-utils'; +import { noParamsValidationObject } from './validation_objects'; + +export function makeZodValidationObject(params: ZodParamsObject) { + return { + params: params.shape.path ? asStrict(params.shape.path) : noParamsValidationObject.params, + query: params.shape.query ? asStrict(params.shape.query) : noParamsValidationObject.query, + body: params.shape.body ? asStrict(params.shape.body) : noParamsValidationObject.body, + }; +} + +function asStrict(schema: ZodAny) { + if (schema instanceof ZodObject) { + return schema.strict(); + } else { + return schema; + } +} diff --git a/packages/kbn-server-route-repository/src/register_routes.test.ts b/packages/kbn-server-route-repository/src/register_routes.test.ts index 39180a093835a..8be38bb5891cc 100644 --- a/packages/kbn-server-route-repository/src/register_routes.test.ts +++ b/packages/kbn-server-route-repository/src/register_routes.test.ts @@ -6,59 +6,39 @@ * Side Public License, v 1. */ -import * as t from 'io-ts'; import { CoreSetup, kibanaResponseFactory } from '@kbn/core/server'; import { loggerMock } from '@kbn/logging-mocks'; -import { registerRoutes } from './register_routes'; -import { routeValidationObject } from './route_validation_object'; +import { z } from '@kbn/zod'; +import * as t from 'io-ts'; import { NEVER } from 'rxjs'; +import * as makeZodValidationObject from './make_zod_validation_object'; +import { registerRoutes } from './register_routes'; +import { passThroughValidationObject, noParamsValidationObject } from './validation_objects'; describe('registerRoutes', () => { - const get = jest.fn(); - - const getAddVersion = jest.fn(); - const getWithVersion = jest.fn((_options) => { + const post = jest.fn(); + const postAddVersion = jest.fn(); + const postWithVersion = jest.fn((_options) => { return { - addVersion: getAddVersion, + addVersion: postAddVersion, }; }); - const createRouter = jest.fn().mockReturnValue({ - get, + post, versioned: { - get: getWithVersion, + post: postWithVersion, }, }); - - const internalOptions = { - internal: true, - }; - const publicOptions = { - public: true, - }; - - const internalHandler = jest.fn().mockResolvedValue('internal'); - const publicHandler = jest - .fn() - .mockResolvedValue( - kibanaResponseFactory.custom({ statusCode: 201, body: { message: 'public' } }) - ); - const errorHandler = jest.fn().mockRejectedValue(new Error('error')); - + const coreSetup = { + http: { + createRouter, + }, + } as unknown as CoreSetup; const mockLogger = loggerMock.create(); const mockService = jest.fn(); const mockContext = {}; const mockRequest = { - body: { - bodyParam: 'body', - }, - query: { - queryParam: 'query', - }, - params: { - pathParam: 'path', - }, events: { aborted$: NEVER, }, @@ -66,99 +46,129 @@ describe('registerRoutes', () => { beforeEach(() => { jest.clearAllMocks(); + }); - const coreSetup = { - http: { - createRouter, - }, - } as unknown as CoreSetup; - - const paramsRt = t.type({ - body: t.type({ - bodyParam: t.string, - }), - query: t.type({ - queryParam: t.string, - }), - path: t.type({ - pathParam: t.string, - }), - }); - - registerRoutes({ - core: coreSetup, - repository: { - 'GET /internal/app/feature': { - endpoint: 'GET /internal/app/feature', - handler: internalHandler, - params: paramsRt, - options: internalOptions, - }, - 'GET /api/app/feature version': { - endpoint: 'GET /api/app/feature version', - handler: publicHandler, - params: paramsRt, - options: publicOptions, - }, - 'GET /internal/app/feature/error': { - endpoint: 'GET /internal/app/feature/error', - handler: errorHandler, - params: paramsRt, - options: internalOptions, + it('creates a router and defines the routes', () => { + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + handler: jest.fn(), + options: { + internal: true, }, }, - dependencies: { - aService: mockService, + 'POST /api/public_route version': { + endpoint: 'POST /api/public_route version', + handler: jest.fn(), + options: { + public: true, + }, }, - logger: mockLogger, }); - }); - it('creates a router and defines the routes', () => { expect(createRouter).toHaveBeenCalledTimes(1); - expect(get).toHaveBeenCalledTimes(2); + expect(post).toHaveBeenCalledTimes(1); - const [internalRoute] = get.mock.calls[0]; - expect(internalRoute.path).toEqual('/internal/app/feature'); - expect(internalRoute.options).toEqual(internalOptions); - expect(internalRoute.validate).toEqual(routeValidationObject); + const [internalRoute] = post.mock.calls[0]; + expect(internalRoute.path).toEqual('/internal/route'); + expect(internalRoute.options).toEqual({ + internal: true, + }); + expect(internalRoute.validate).toEqual(noParamsValidationObject); - expect(getWithVersion).toHaveBeenCalledTimes(1); - const [publicRoute] = getWithVersion.mock.calls[0]; - expect(publicRoute.path).toEqual('/api/app/feature'); - expect(publicRoute.options).toEqual(publicOptions); + expect(postWithVersion).toHaveBeenCalledTimes(1); + const [publicRoute] = postWithVersion.mock.calls[0]; + expect(publicRoute.path).toEqual('/api/public_route'); + expect(publicRoute.options).toEqual({ + public: true, + }); expect(publicRoute.access).toEqual('public'); - expect(getAddVersion).toHaveBeenCalledTimes(1); - const [versionedRoute] = getAddVersion.mock.calls[0]; + expect(postAddVersion).toHaveBeenCalledTimes(1); + const [versionedRoute] = postAddVersion.mock.calls[0]; expect(versionedRoute.version).toEqual('version'); expect(versionedRoute.validate).toEqual({ - request: routeValidationObject, + request: noParamsValidationObject, }); }); + it('does not allow any params if no schema is provided', () => { + const pathDoesNotAllowExcessKeys = () => { + noParamsValidationObject.params.parse({ + unexpectedKey: 'not_allowed', + }); + }; + const queryDoesNotAllowExcessKeys = () => { + noParamsValidationObject.query.parse({ + unexpectedKey: 'not_allowed', + }); + }; + const bodyDoesNotAllowExcessKeys = () => { + noParamsValidationObject.body.parse({ + unexpectedKey: 'not_allowed', + }); + }; + + expect(pathDoesNotAllowExcessKeys).toThrowErrorMatchingInlineSnapshot(` + "[ + { + \\"code\\": \\"unrecognized_keys\\", + \\"keys\\": [ + \\"unexpectedKey\\" + ], + \\"path\\": [], + \\"message\\": \\"Unrecognized key(s) in object: 'unexpectedKey'\\" + } + ]" + `); + expect(queryDoesNotAllowExcessKeys).toThrowErrorMatchingInlineSnapshot(` + "[ + { + \\"code\\": \\"unrecognized_keys\\", + \\"keys\\": [ + \\"unexpectedKey\\" + ], + \\"path\\": [], + \\"message\\": \\"Unrecognized key(s) in object: 'unexpectedKey'\\" + } + ]" + `); + expect(bodyDoesNotAllowExcessKeys).toThrowErrorMatchingInlineSnapshot(` + "[ + { + \\"code\\": \\"unrecognized_keys\\", + \\"keys\\": [ + \\"unexpectedKey\\" + ], + \\"path\\": [], + \\"message\\": \\"Unrecognized key(s) in object: 'unexpectedKey'\\" + } + ]" + `); + }); + it('calls the route handler with all dependencies', async () => { - const [_, internalRouteHandler] = get.mock.calls[0]; - await internalRouteHandler(mockContext, mockRequest, kibanaResponseFactory); + const handler = jest.fn(); + + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + handler, + }, + }); - const [args] = internalHandler.mock.calls[0]; + const [_, wrappedHandler] = post.mock.calls[0]; + await wrappedHandler(mockContext, mockRequest, kibanaResponseFactory); + + expect(handler).toBeCalledTimes(1); + const [args] = handler.mock.calls[0]; expect(Object.keys(args).sort()).toEqual( ['aService', 'request', 'response', 'context', 'params', 'logger'].sort() ); const { params, logger, aService, request, response, context } = args; - expect(params).toEqual({ - body: { - bodyParam: 'body', - }, - query: { - queryParam: 'query', - }, - path: { - pathParam: 'path', - }, - }); + expect(params).toEqual(undefined); expect(request).toBe(mockRequest); expect(response).toBe(kibanaResponseFactory); expect(context).toBe(mockContext); @@ -167,38 +177,226 @@ describe('registerRoutes', () => { }); it('wraps a plain route handler result into a response', async () => { - const [_, internalRouteHandler] = get.mock.calls[0]; - const internalResult = await internalRouteHandler( - mockContext, - mockRequest, - kibanaResponseFactory - ); + const handler = jest.fn().mockResolvedValue('result'); - expect(internalHandler).toHaveBeenCalledTimes(1); - expect(internalResult).toEqual({ + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + handler, + }, + }); + + const [_, wrappedHandler] = post.mock.calls[0]; + const result = await wrappedHandler(mockContext, mockRequest, kibanaResponseFactory); + + expect(handler).toHaveBeenCalledTimes(1); + expect(result).toEqual({ status: 200, - payload: 'internal', - options: { body: 'internal' }, + payload: 'result', + options: { body: 'result' }, }); }); it('allows for route handlers to define a custom response', async () => { - const [_, publicRouteHandler] = getAddVersion.mock.calls[0]; - const publicResult = await publicRouteHandler(mockContext, mockRequest, kibanaResponseFactory); + const handler = jest + .fn() + .mockResolvedValue( + kibanaResponseFactory.custom({ statusCode: 201, body: { message: 'result' } }) + ); + + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + handler, + }, + }); - expect(publicHandler).toHaveBeenCalledTimes(1); - expect(publicResult).toEqual({ status: 201, payload: { message: 'public' }, options: {} }); + const [_, wrappedHandler] = post.mock.calls[0]; + const result = await wrappedHandler(mockContext, mockRequest, kibanaResponseFactory); + + expect(handler).toHaveBeenCalledTimes(1); + expect(result).toEqual({ status: 201, payload: { message: 'result' }, options: {} }); }); it('translates errors thrown in a route handler to an error response', async () => { - const [_, errorRouteHandler] = get.mock.calls[1]; - const errorResult = await errorRouteHandler(mockContext, mockRequest, kibanaResponseFactory); + const handler = jest.fn().mockRejectedValue(new Error('error')); + + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + handler, + }, + }); - expect(errorHandler).toHaveBeenCalledTimes(1); - expect(errorResult).toEqual({ + const [_, wrappedHandler] = post.mock.calls[0]; + const error = await wrappedHandler(mockContext, mockRequest, kibanaResponseFactory); + + expect(handler).toHaveBeenCalledTimes(1); + expect(error).toEqual({ status: 500, payload: { message: 'error', attributes: { data: {} } }, options: {}, }); }); + + describe('when using zod', () => { + const makeZodValidationObjectSpy = jest.spyOn( + makeZodValidationObject, + 'makeZodValidationObject' + ); + + const zodParamsRt = z.object({ + body: z.object({ + bodyParam: z.string(), + }), + query: z.object({ + queryParam: z.string(), + }), + path: z.object({ + pathParam: z.string(), + }), + }); + + it('uses Core validation', () => { + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + params: zodParamsRt, + handler: jest.fn, + }, + }); + + const [internalRoute] = post.mock.calls[0]; + expect(makeZodValidationObjectSpy).toHaveBeenCalledWith(zodParamsRt); + expect(internalRoute.validate).toEqual(makeZodValidationObjectSpy.mock.results[0].value); + }); + + it('passes on params', async () => { + const handler = jest.fn(); + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + params: zodParamsRt, + handler, + }, + }); + + const [_, wrappedHandler] = post.mock.calls[0]; + + await wrappedHandler( + mockContext, + { + ...mockRequest, + params: { + pathParam: 'path', + }, + query: { + queryParam: 'query', + }, + body: { + bodyParam: 'body', + }, + }, + kibanaResponseFactory + ); + + expect(handler).toBeCalledTimes(1); + const [args] = handler.mock.calls[0]; + const { params } = args; + expect(params).toEqual({ + path: { + pathParam: 'path', + }, + query: { + queryParam: 'query', + }, + body: { + bodyParam: 'body', + }, + }); + }); + }); + + describe('when using io-ts', () => { + const iotsParamsRt = t.type({ + body: t.type({ + bodyParam: t.string, + }), + query: t.type({ + queryParam: t.string, + }), + path: t.type({ + pathParam: t.string, + }), + }); + + it('bypasses Core validation', () => { + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + params: iotsParamsRt, + handler: jest.fn, + }, + }); + + const [internalRoute] = post.mock.calls[0]; + expect(internalRoute.validate).toEqual(passThroughValidationObject); + }); + + it('decodes params', async () => { + const handler = jest.fn(); + callRegisterRoutes({ + 'POST /internal/route': { + endpoint: 'POST /internal/route', + params: iotsParamsRt, + handler, + }, + }); + + const [_, wrappedHandler] = post.mock.calls[0]; + + await wrappedHandler( + mockContext, + { + ...mockRequest, + params: { + pathParam: 'path', + }, + query: { + queryParam: 'query', + }, + body: { + bodyParam: 'body', + }, + }, + kibanaResponseFactory + ); + + expect(handler).toBeCalledTimes(1); + const [args] = handler.mock.calls[0]; + const { params } = args; + expect(params).toEqual({ + path: { + pathParam: 'path', + }, + query: { + queryParam: 'query', + }, + body: { + bodyParam: 'body', + }, + }); + }); + }); + + function callRegisterRoutes(repository: any) { + registerRoutes({ + core: coreSetup, + logger: mockLogger, + dependencies: { + aService: mockService, + }, + repository, + }); + } }); diff --git a/packages/kbn-server-route-repository/src/register_routes.ts b/packages/kbn-server-route-repository/src/register_routes.ts index fcf3c5c3281ee..56f42fb499225 100644 --- a/packages/kbn-server-route-repository/src/register_routes.ts +++ b/packages/kbn-server-route-repository/src/register_routes.ts @@ -5,6 +5,7 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ + import { errors } from '@elastic/elasticsearch'; import { isBoom } from '@hapi/boom'; import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; @@ -12,15 +13,17 @@ import type { KibanaRequest, KibanaResponseFactory } from '@kbn/core-http-server import { isKibanaResponse } from '@kbn/core-http-server'; import type { CoreSetup } from '@kbn/core-lifecycle-server'; import type { Logger } from '@kbn/logging'; -import * as t from 'io-ts'; -import { merge, pick } from 'lodash'; import { ServerRoute, ServerRouteCreateOptions, + ZodParamsObject, parseEndpoint, } from '@kbn/server-route-repository-utils'; -import { decodeRequestParams } from './decode_request_params'; -import { routeValidationObject } from './route_validation_object'; +import { isZod } from '@kbn/zod'; +import { merge } from 'lodash'; +import { passThroughValidationObject, noParamsValidationObject } from './validation_objects'; +import { validateAndDecodeParams } from './validate_and_decode_params'; +import { makeZodValidationObject } from './make_zod_validation_object'; const CLIENT_CLOSED_REQUEST = { statusCode: 499, @@ -55,12 +58,7 @@ export function registerRoutes>({ response: KibanaResponseFactory ) => { try { - const runtimeType = params || t.strict({}); - - const validatedParams = decodeRequestParams( - pick(request, 'params', 'body', 'query'), - runtimeType - ); + const validatedParams = validateAndDecodeParams(request, params); const { aborted, result } = await Promise.race([ handler({ @@ -122,12 +120,21 @@ export function registerRoutes>({ logger.debug(`Registering endpoint ${endpoint}`); + let validationObject; + if (params === undefined) { + validationObject = noParamsValidationObject; + } else if (isZod(params)) { + validationObject = makeZodValidationObject(params as ZodParamsObject); + } else { + validationObject = passThroughValidationObject; + } + if (!version) { router[method]( { path: pathname, options, - validate: routeValidationObject, + validate: validationObject, }, wrappedHandler ); @@ -140,7 +147,7 @@ export function registerRoutes>({ { version, validate: { - request: routeValidationObject, + request: validationObject, }, }, wrappedHandler diff --git a/packages/kbn-server-route-repository/src/route_validation_object.ts b/packages/kbn-server-route-repository/src/route_validation_object.ts deleted file mode 100644 index 9d033e31fc324..0000000000000 --- a/packages/kbn-server-route-repository/src/route_validation_object.ts +++ /dev/null @@ -1,20 +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 { schema } from '@kbn/config-schema'; - -const anyObject = schema.object({}, { unknowns: 'allow' }); - -export const routeValidationObject = { - // `body` can be null, but `validate` expects non-nullable types - // if any validation is defined. Not having validation currently - // means we don't get the payload. See - // https://github.com/elastic/kibana/issues/50179 - body: schema.nullable(schema.oneOf([anyObject, schema.string()])), - params: anyObject, - query: anyObject, -}; diff --git a/packages/kbn-server-route-repository/src/strip_nullish_request_parameters.test.ts b/packages/kbn-server-route-repository/src/strip_nullish_request_parameters.test.ts new file mode 100644 index 0000000000000..b76c28048aeb3 --- /dev/null +++ b/packages/kbn-server-route-repository/src/strip_nullish_request_parameters.test.ts @@ -0,0 +1,35 @@ +/* + * 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 { stripNullishRequestParameters } from './strip_nullish_request_parameters'; + +describe('stripNullishRequestParameters', () => { + it('translate params to path', () => { + expect( + stripNullishRequestParameters({ + params: { + something: 'test', + }, + }) + ).toEqual({ + path: { + something: 'test', + }, + }); + }); + + it('removes invalid values', () => { + expect( + stripNullishRequestParameters({ + params: undefined, + query: null, + body: {}, + }) + ).toEqual({}); + }); +}); diff --git a/packages/kbn-server-route-repository/src/strip_nullish_request_parameters.ts b/packages/kbn-server-route-repository/src/strip_nullish_request_parameters.ts new file mode 100644 index 0000000000000..06668ac55a95a --- /dev/null +++ b/packages/kbn-server-route-repository/src/strip_nullish_request_parameters.ts @@ -0,0 +1,26 @@ +/* + * 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 { omitBy, isPlainObject, isEmpty } from 'lodash'; + +interface KibanaRequestParams { + body?: unknown; + query?: unknown; + params?: unknown; +} + +export function stripNullishRequestParameters(params: KibanaRequestParams) { + return omitBy<{ path: any; body: any; query: any }>( + { + path: params.params, + query: params.query, + body: params.body, + }, + (val) => val === null || val === undefined || (isPlainObject(val) && isEmpty(val)) + ); +} diff --git a/packages/kbn-server-route-repository/src/test_types.ts b/packages/kbn-server-route-repository/src/test_types.ts index 16447a6ef000f..ce4fbb6303c5c 100644 --- a/packages/kbn-server-route-repository/src/test_types.ts +++ b/packages/kbn-server-route-repository/src/test_types.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { kibanaResponseFactory } from '@kbn/core/server'; import { EndpointOf, ReturnOf, RouteRepositoryClient } from '@kbn/server-route-repository-utils'; import { createServerRouteFactory } from './create_server_route_factory'; @@ -39,6 +40,18 @@ createServerRouteFactory<{}, {}>()({ }, }); +createServerRouteFactory<{}, {}>()({ + endpoint: 'GET /internal/endpoint_with_params', + params: z.object({ + path: z.object({ + serviceName: z.string(), + }), + }), + handler: async (resources) => { + assertType<{ params: { path: { serviceName: string } } }>(resources); + }, +}); + // Resources should be passed to the request handler. createServerRouteFactory<{ context: { getSpaceId: () => string } }, {}>()({ endpoint: 'GET /internal/endpoint_with_params', @@ -53,6 +66,19 @@ createServerRouteFactory<{ context: { getSpaceId: () => string } }, {}>()({ }, }); +createServerRouteFactory<{ context: { getSpaceId: () => string } }, {}>()({ + endpoint: 'GET /internal/endpoint_with_params', + params: z.object({ + path: z.object({ + serviceName: z.string(), + }), + }), + handler: async ({ context }) => { + const spaceId = context.getSpaceId(); + assertType(spaceId); + }, +}); + // Create options are available when registering a route. createServerRouteFactory<{}, { options: { tags: string[] } }>()({ endpoint: 'GET /internal/endpoint_with_params', @@ -125,6 +151,36 @@ const repository = { }; }, }), + ...createServerRoute({ + endpoint: 'GET /internal/endpoint_with_params_zod', + params: z.object({ + path: z.object({ + serviceName: z.string(), + }), + }), + handler: async () => { + return { + yesParamsForMe: true, + }; + }, + }), + ...createServerRoute({ + endpoint: 'GET /internal/endpoint_with_optional_params_zod', + params: z + .object({ + path: z + .object({ + serviceName: z.string(), + }) + .partial(), + }) + .partial(), + handler: async () => { + return { + someParamsForMe: true, + }; + }, + }), ...createServerRoute({ endpoint: 'GET /internal/endpoint_returning_result', handler: async () => { @@ -153,6 +209,10 @@ assertType>>([ 'GET /internal/endpoint_with_params', 'GET /internal/endpoint_without_params', 'GET /internal/endpoint_with_optional_params', + 'GET /internal/endpoint_with_params_zod', + 'GET /internal/endpoint_with_optional_params_zod', + 'GET /internal/endpoint_returning_result', + 'GET /internal/endpoint_returning_kibana_response', ]); // @ts-expect-error Type '"this_endpoint_does_not_exist"' is not assignable to type '"endpoint_without_params" | "endpoint_with_params" | "endpoint_with_optional_params"' @@ -208,11 +268,23 @@ client('GET /internal/endpoint_with_params', { timeout: 1, }); +client('GET /internal/endpoint_with_params_zod', { + params: { + // @ts-expect-error property 'serviceName' is missing in type '{}' + path: {}, + }, + timeout: 1, +}); + // Params are optional if the codec has no required keys client('GET /internal/endpoint_with_optional_params', { timeout: 1, }); +client('GET /internal/endpoint_with_optional_params_zod', { + timeout: 1, +}); + // If optional, an error will still occur if the params do not match client('GET /internal/endpoint_with_optional_params', { timeout: 1, @@ -222,6 +294,14 @@ client('GET /internal/endpoint_with_optional_params', { }, }); +client('GET /internal/endpoint_with_optional_params_zod', { + timeout: 1, + params: { + // @ts-expect-error Object literal may only specify known properties, and 'path' does not exist in type + path: '', + }, +}); + // The return type is correctly inferred client('GET /internal/endpoint_with_params', { params: { @@ -241,6 +321,24 @@ client('GET /internal/endpoint_with_params', { }>(res); }); +client('GET /internal/endpoint_with_params_zod', { + params: { + path: { + serviceName: '', + }, + }, + timeout: 1, +}).then((res) => { + assertType<{ + noParamsForMe: boolean; + // @ts-expect-error Property 'noParamsForMe' is missing in type + }>(res); + + assertType<{ + yesParamsForMe: boolean; + }>(res); +}); + client('GET /internal/endpoint_returning_result', { timeout: 1, }).then((res) => { @@ -261,7 +359,7 @@ client('GET /internal/endpoint_returning_kibana_response', { assertType<{ path: { serviceName: string } }>( decodeRequestParams( { - params: { + path: { serviceName: 'serviceName', }, body: undefined, @@ -275,7 +373,7 @@ assertType<{ path: { serviceName: boolean } }>( // @ts-expect-error The types of 'path.serviceName' are incompatible between these types. decodeRequestParams( { - params: { + path: { serviceName: 'serviceName', }, body: undefined, diff --git a/packages/kbn-server-route-repository/src/validate_and_decode_params.test.ts b/packages/kbn-server-route-repository/src/validate_and_decode_params.test.ts new file mode 100644 index 0000000000000..a60c6322f1d7a --- /dev/null +++ b/packages/kbn-server-route-repository/src/validate_and_decode_params.test.ts @@ -0,0 +1,69 @@ +/* + * 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 { KibanaRequest } from '@kbn/core-http-server'; +import { z } from '@kbn/zod'; +import * as t from 'io-ts'; +import { validateAndDecodeParams } from './validate_and_decode_params'; + +describe('validateAndDecodeParams', () => { + it('does nothing if no schema is provided', () => { + const request = {} as KibanaRequest; + expect(validateAndDecodeParams(request, undefined)).toEqual(undefined); + }); + + it('only does formatting when using zod', () => { + const request = { + params: { + my_path_param: 'test', + }, + query: {}, + } as KibanaRequest; + + expect(validateAndDecodeParams(request, z.object({}))).toEqual({ + path: { + my_path_param: 'test', + }, + }); + }); + + it('additionally performs validation when using zod', () => { + const schema = t.type({ + path: t.type({ + my_path_param: t.string, + }), + }); + + const validRequest = { + params: { + my_path_param: 'test', + }, + query: {}, + } as KibanaRequest; + + expect(validateAndDecodeParams(validRequest, schema)).toEqual({ + path: { + my_path_param: 'test', + }, + }); + + const invalidRequest = { + params: { + my_unexpected_param: 'test', + }, + } as KibanaRequest; + const shouldThrow = () => { + return validateAndDecodeParams(invalidRequest, schema); + }; + + expect(shouldThrow).toThrowErrorMatchingInlineSnapshot(` + "Failed to validate: + in /path/my_path_param: undefined does not match expected type string" + `); + }); +}); diff --git a/packages/kbn-server-route-repository/src/validate_and_decode_params.ts b/packages/kbn-server-route-repository/src/validate_and_decode_params.ts new file mode 100644 index 0000000000000..36faf00e40afd --- /dev/null +++ b/packages/kbn-server-route-repository/src/validate_and_decode_params.ts @@ -0,0 +1,35 @@ +/* + * 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 { KibanaRequest } from '@kbn/core-http-server'; +import { ZodParamsObject, IoTsParamsObject } from '@kbn/server-route-repository-utils'; +import { isZod } from '@kbn/zod'; +import { decodeRequestParams } from './decode_request_params'; +import { stripNullishRequestParameters } from './strip_nullish_request_parameters'; + +export function validateAndDecodeParams( + request: KibanaRequest, + paramsSchema: ZodParamsObject | IoTsParamsObject | undefined +) { + if (paramsSchema === undefined) { + return undefined; + } + + const params = stripNullishRequestParameters({ + params: request.params, + body: request.body, + query: request.query, + }); + + if (isZod(paramsSchema)) { + // Already validated by platform + return params; + } + + return decodeRequestParams(params, paramsSchema); +} diff --git a/packages/kbn-server-route-repository/src/validation_objects.ts b/packages/kbn-server-route-repository/src/validation_objects.ts new file mode 100644 index 0000000000000..9b4bab477ae3c --- /dev/null +++ b/packages/kbn-server-route-repository/src/validation_objects.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 { z } from '@kbn/zod'; + +export const passThroughValidationObject = { + body: z.any(), + params: z.any(), + query: z.any(), +}; + +export const noParamsValidationObject = { + params: z.object({}).strict(), + query: z.object({}).strict(), + body: z.union([ + // If the route uses POST, the body should be empty object or null + z.object({}).strict(), + z.null(), + // If the route uses GET, body is undefined, + z.undefined(), + ]), +}; diff --git a/packages/kbn-server-route-repository/tsconfig.json b/packages/kbn-server-route-repository/tsconfig.json index 5202a5bf0c422..bb8a0847c39b6 100644 --- a/packages/kbn-server-route-repository/tsconfig.json +++ b/packages/kbn-server-route-repository/tsconfig.json @@ -12,7 +12,6 @@ "**/*.ts" ], "kbn_references": [ - "@kbn/config-schema", "@kbn/io-ts-utils", "@kbn/core-http-request-handler-context-server", "@kbn/core-http-server", @@ -21,6 +20,7 @@ "@kbn/core", "@kbn/logging-mocks", "@kbn/server-route-repository-utils", + "@kbn/zod", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-std/src/ensure_deep_object.ts b/packages/kbn-std/src/ensure_deep_object.ts index 42550bd09436f..b815c16ac5c6e 100644 --- a/packages/kbn-std/src/ensure_deep_object.ts +++ b/packages/kbn-std/src/ensure_deep_object.ts @@ -49,7 +49,7 @@ function walk(obj: any, keys: string[], value: any, path: string[]) { return; } - if (!obj.hasOwnProperty(key)) { + if (!Object.hasOwn(obj, key)) { obj[key] = {}; } diff --git a/packages/kbn-std/src/ensure_no_unsafe_properties.ts b/packages/kbn-std/src/ensure_no_unsafe_properties.ts index b053a40d62530..cff9946d761fa 100644 --- a/packages/kbn-std/src/ensure_no_unsafe_properties.ts +++ b/packages/kbn-std/src/ensure_no_unsafe_properties.ts @@ -11,12 +11,6 @@ interface StackItem { previousKey: string | null; } -// we have to do Object.prototype.hasOwnProperty because when you create an object using -// Object.create(null), and I assume other methods, you get an object without a prototype, -// so you can't use current.hasOwnProperty -const hasOwnProperty = (obj: any, property: string) => - Object.prototype.hasOwnProperty.call(obj, property); - const isObject = (obj: any) => typeof obj === 'object' && obj !== null; // we're using a stack instead of recursion so we aren't limited by the call stack @@ -40,11 +34,11 @@ export function ensureNoUnsafeProperties(obj: any) { continue; } - if (hasOwnProperty(value, '__proto__')) { + if (Object.hasOwn(value, '__proto__')) { throw new Error(`'__proto__' is an invalid key`); } - if (hasOwnProperty(value, 'prototype') && previousKey === 'constructor') { + if (Object.hasOwn(value, 'prototype') && previousKey === 'constructor') { throw new Error(`'constructor.prototype' is an invalid key`); } diff --git a/packages/kbn-test/src/auth/session_manager.test.ts b/packages/kbn-test/src/auth/session_manager.test.ts new file mode 100644 index 0000000000000..fe5e0e9fb9198 --- /dev/null +++ b/packages/kbn-test/src/auth/session_manager.test.ts @@ -0,0 +1,330 @@ +/* + * 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 { ToolingLog } from '@kbn/tooling-log'; +import { Cookie } from 'tough-cookie'; +import { Session } from './saml_auth'; +import { SamlSessionManager, SupportedRoles } from './session_manager'; +import * as samlAuth from './saml_auth'; +import * as helper from './helper'; +import { Role, User, UserProfile } from './types'; +import { SERVERLESS_ROLES_ROOT_PATH } from '@kbn/es'; +import { resolve } from 'path'; +import { REPO_ROOT } from '@kbn/repo-info'; + +const log = new ToolingLog(); + +const supportedRoles: SupportedRoles = { + roles: ['admin', 'editor', 'viewer'], + sourcePath: 'test/roles.yml', +}; +const roleViewer = 'viewer'; +const roleEditor = 'editor'; +const cloudUsersFilePath = resolve(REPO_ROOT, SERVERLESS_ROLES_ROOT_PATH, 'role_users.json'); + +const createLocalSAMLSessionMock = jest.spyOn(samlAuth, 'createLocalSAMLSession'); +const getSecurityProfileMock = jest.spyOn(samlAuth, 'getSecurityProfile'); +const readCloudUsersFromFileMock = jest.spyOn(helper, 'readCloudUsersFromFile'); +const isValidHostnameMock = jest.spyOn(helper, 'isValidHostname'); + +jest.mock('../kbn_client/kbn_client', () => { + return { + KbnClient: jest.fn(), + }; +}); +const get = jest.fn(); + +describe('SamlSessionManager', () => { + let createCloudSAMLSessionMock: jest.SpyInstance; + beforeEach(() => { + createCloudSAMLSessionMock = jest.spyOn(samlAuth, 'createCloudSAMLSession'); + }); + + describe('for local session', () => { + beforeEach(() => { + jest.resetAllMocks(); + jest + .requireMock('../kbn_client/kbn_client') + .KbnClient.mockImplementation(() => ({ version: { get } })); + get.mockImplementation(() => Promise.resolve('8.12.0')); + + createLocalSAMLSessionMock.mockResolvedValue(new Session(cookieInstance, testEmail)); + }); + + const hostOptions = { + protocol: 'http' as 'http' | 'https', + hostname: 'localhost', + port: 5620, + username: 'elastic', + password: 'changeme', + }; + const isCloud = false; + const samlSessionManagerOptions = { + hostOptions, + isCloud, + log, + cloudUsersFilePath, + }; + const testEmail = 'testuser@elastic.com'; + const testFullname = 'Test User'; + const cookieInstance = Cookie.parse( + 'sid=kbn_cookie_value; Path=/; Expires=Wed, 01 Oct 2023 07:00:00 GMT' + )!; + + test('should create an instance of SamlSessionManager', () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + expect(samlSessionManager).toBeInstanceOf(SamlSessionManager); + }); + + test(`'getSessionCookieForRole' should return the actual cookie value`, async () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const cookie = await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope( + roleViewer + ); + expect(cookie).toBe(cookieInstance.value); + }); + + test(`'getApiCredentialsForRole' should return {Cookie: }`, async () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const credentials = await samlSessionManager.getApiCredentialsForRole(roleViewer); + expect(credentials).toEqual({ Cookie: `${cookieInstance.cookieString()}` }); + }); + + test(`'getSessionCookieForRole' should call 'createLocalSAMLSession' only once for the same role`, async () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer); + await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleEditor); + await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer); + expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(2); + expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); + }); + + test(`'getEmail' return the correct email`, async () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const email = await samlSessionManager.getEmail(roleEditor); + expect(email).toBe(testEmail); + }); + + test(`'getUserData' should call security API and return user profile data`, async () => { + const testData: UserProfile = { + username: '6ta90xc', + roles: [roleEditor], + full_name: testFullname, + email: testEmail, + enabled: true, + elastic_cloud_user: false, + }; + getSecurityProfileMock.mockResolvedValueOnce(testData); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const userData = await samlSessionManager.getUserData(roleViewer); + + expect(userData).toEqual(testData); + }); + + test(`throws error when role is not in 'supportedRoles'`, async () => { + const nonExistingRole = 'tester'; + const expectedErrorMessage = `Role '${nonExistingRole}' is not in the supported list: ${supportedRoles.roles.join( + ', ' + )}. Add role descriptor in ${supportedRoles.sourcePath} to enable it for testing`; + const samlSessionManager = new SamlSessionManager({ + ...samlSessionManagerOptions, + supportedRoles, + }); + await expect( + samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(nonExistingRole) + ).rejects.toThrow(expectedErrorMessage); + await expect(samlSessionManager.getApiCredentialsForRole(nonExistingRole)).rejects.toThrow( + expectedErrorMessage + ); + await expect(samlSessionManager.getUserData(nonExistingRole)).rejects.toThrow( + expectedErrorMessage + ); + expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); + }); + + test(`doesn't throw error when supportedRoles is not defined`, async () => { + const nonExistingRole = 'tester'; + const testData: UserProfile = { + username: '6ta90xc', + roles: [nonExistingRole], + full_name: testFullname, + email: testEmail, + enabled: true, + elastic_cloud_user: false, + }; + getSecurityProfileMock.mockResolvedValueOnce(testData); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(nonExistingRole); + await samlSessionManager.getApiCredentialsForRole(nonExistingRole); + await samlSessionManager.getUserData(nonExistingRole); + expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(1); + expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); + expect(getSecurityProfileMock.mock.calls).toHaveLength(1); + }); + }); + + describe('for cloud session', () => { + const hostOptions = { + protocol: 'https' as 'http' | 'https', + hostname: 'cloud', + username: 'elastic', + password: 'changeme', + }; + const isCloud = true; + const samlSessionManagerOptions = { + hostOptions, + isCloud, + log, + cloudUsersFilePath, + }; + const cloudCookieInstance = Cookie.parse( + 'sid=cloud_cookie_value; Path=/; Expires=Wed, 01 Oct 2023 07:00:00 GMT' + )!; + const cloudEmail = 'viewer@elastic.co'; + const cloudFullname = 'Test Viewer'; + const cloudUsers = new Array<[Role, User]>(); + cloudUsers.push(['viewer', { email: 'viewer@elastic.co', password: 'p1234' }]); + cloudUsers.push(['editor', { email: 'editor@elastic.co', password: 'p1234' }]); + + describe('handles errors', () => { + beforeEach(() => { + jest.resetAllMocks(); + jest + .requireMock('../kbn_client/kbn_client') + .KbnClient.mockImplementation(() => ({ version: { get } })); + get.mockImplementationOnce(() => Promise.resolve('8.12.0')); + + readCloudUsersFromFileMock.mockReturnValue(cloudUsers); + }); + + test('should throw error if TEST_CLOUD_HOST_NAME is not set', async () => { + createCloudSAMLSessionMock.mockRestore(); + isValidHostnameMock.mockReturnValueOnce(false); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await expect( + samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer) + ).rejects.toThrow( + 'SAML Authentication requires TEST_CLOUD_HOST_NAME env variable to be set' + ); + }); + }); + + beforeEach(() => { + jest.resetAllMocks(); + jest + .requireMock('../kbn_client/kbn_client') + .KbnClient.mockImplementation(() => ({ version: { get } })); + get.mockImplementationOnce(() => Promise.resolve('8.12.0')); + + createCloudSAMLSessionMock.mockResolvedValue(new Session(cloudCookieInstance, cloudEmail)); + readCloudUsersFromFileMock.mockReturnValue(cloudUsers); + }); + + test('should create an instance of SamlSessionManager', () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + expect(samlSessionManager).toBeInstanceOf(SamlSessionManager); + }); + + test(`'getSessionCookieForRole' should return the actual cookie value`, async () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + createCloudSAMLSessionMock.mockResolvedValue(new Session(cloudCookieInstance, cloudEmail)); + const cookie = await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope( + roleViewer + ); + expect(cookie).toBe(cloudCookieInstance.value); + }); + + test(`'getApiCredentialsForRole' should return {Cookie: }`, async () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const credentials = await samlSessionManager.getApiCredentialsForRole(roleViewer); + expect(credentials).toEqual({ Cookie: `${cloudCookieInstance.cookieString()}` }); + }); + + test(`'getSessionCookieForRole' should call 'createCloudSAMLSession' only once for the same role`, async () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer); + await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleEditor); + await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer); + expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(0); + expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(2); + }); + + test(`'getEmail' return the correct email`, async () => { + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const email = await samlSessionManager.getEmail(roleViewer); + expect(email).toBe(cloudEmail); + }); + + test(`'getUserData' should call security API and return user profile data`, async () => { + const testData: UserProfile = { + username: '92qab123', + roles: [roleViewer], + full_name: cloudFullname, + email: cloudEmail, + enabled: true, + elastic_cloud_user: true, + }; + getSecurityProfileMock.mockResolvedValueOnce(testData); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const userData = await samlSessionManager.getUserData(roleViewer); + + expect(userData).toEqual(testData); + }); + + test(`throws error for non-existing role when 'supportedRoles' is defined`, async () => { + const nonExistingRole = 'tester'; + const expectedErrorMessage = `Role '${nonExistingRole}' is not in the supported list: ${supportedRoles.roles.join( + ', ' + )}. Add role descriptor in ${supportedRoles.sourcePath} to enable it for testing`; + const samlSessionManager = new SamlSessionManager({ + ...samlSessionManagerOptions, + supportedRoles, + }); + await expect( + samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(nonExistingRole) + ).rejects.toThrow(expectedErrorMessage); + await expect(samlSessionManager.getApiCredentialsForRole(nonExistingRole)).rejects.toThrow( + expectedErrorMessage + ); + await expect(samlSessionManager.getUserData(nonExistingRole)).rejects.toThrow( + expectedErrorMessage + ); + expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); + }); + + test(`throws error for non-existing role when 'supportedRoles' is not defined`, async () => { + const nonExistingRole = 'tester'; + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await expect( + samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(nonExistingRole) + ).rejects.toThrow(`User with '${nonExistingRole}' role is not defined`); + await expect(samlSessionManager.getApiCredentialsForRole(nonExistingRole)).rejects.toThrow( + `User with '${nonExistingRole}' role is not defined` + ); + await expect(samlSessionManager.getUserData(nonExistingRole)).rejects.toThrow( + `User with '${nonExistingRole}' role is not defined` + ); + expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); + }); + + test(`throws error when credentials are not specified for the role`, async () => { + const noCredentialsRole = 'admin'; + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await expect( + samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(noCredentialsRole) + ).rejects.toThrow(`User with '${noCredentialsRole}' role is not defined`); + await expect(samlSessionManager.getApiCredentialsForRole(noCredentialsRole)).rejects.toThrow( + `User with '${noCredentialsRole}' role is not defined` + ); + await expect(samlSessionManager.getUserData(noCredentialsRole)).rejects.toThrow( + `User with '${noCredentialsRole}' role is not defined` + ); + expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); + }); + }); +}); diff --git a/packages/kbn-test/src/auth/sesson_manager.test.ts b/packages/kbn-test/src/auth/sesson_manager.test.ts deleted file mode 100644 index 929517e7c5a10..0000000000000 --- a/packages/kbn-test/src/auth/sesson_manager.test.ts +++ /dev/null @@ -1,325 +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 { ToolingLog } from '@kbn/tooling-log'; -import { Cookie } from 'tough-cookie'; -import { Session } from './saml_auth'; -import { SamlSessionManager, SupportedRoles } from './session_manager'; -import * as samlAuth from './saml_auth'; -import * as helper from './helper'; -import { Role, User, UserProfile } from './types'; -import { SERVERLESS_ROLES_ROOT_PATH } from '@kbn/es'; -import { resolve } from 'path'; -import { REPO_ROOT } from '@kbn/repo-info'; - -const log = new ToolingLog(); - -const supportedRoles: SupportedRoles = { - roles: ['admin', 'editor', 'viewer'], - sourcePath: 'test/roles.yml', -}; -const roleViewer = 'viewer'; -const roleEditor = 'editor'; -const cloudUsersFilePath = resolve(REPO_ROOT, SERVERLESS_ROLES_ROOT_PATH, 'role_users.json'); - -const createLocalSAMLSessionMock = jest.spyOn(samlAuth, 'createLocalSAMLSession'); -const createCloudSAMLSessionMock = jest.spyOn(samlAuth, 'createCloudSAMLSession'); -const getSecurityProfileMock = jest.spyOn(samlAuth, 'getSecurityProfile'); -const readCloudUsersFromFileMock = jest.spyOn(helper, 'readCloudUsersFromFile'); -const isValidHostnameMock = jest.spyOn(helper, 'isValidHostname'); - -jest.mock('../kbn_client/kbn_client', () => { - return { - KbnClient: jest.fn(), - }; -}); -const get = jest.fn(); - -describe('SamlSessionManager', () => { - describe('for local session', () => { - beforeEach(() => { - jest.resetAllMocks(); - jest - .requireMock('../kbn_client/kbn_client') - .KbnClient.mockImplementation(() => ({ version: { get } })); - get.mockImplementation(() => Promise.resolve('8.12.0')); - - createLocalSAMLSessionMock.mockResolvedValue(new Session(cookieInstance, testEmail)); - }); - - const hostOptions = { - protocol: 'http' as 'http' | 'https', - hostname: 'localhost', - port: 5620, - username: 'elastic', - password: 'changeme', - }; - const isCloud = false; - const samlSessionManagerOptions = { - hostOptions, - isCloud, - log, - cloudUsersFilePath, - }; - const testEmail = 'testuser@elastic.com'; - const testFullname = 'Test User'; - const cookieInstance = Cookie.parse( - 'sid=kbn_cookie_value; Path=/; Expires=Wed, 01 Oct 2023 07:00:00 GMT' - )!; - - test('should create an instance of SamlSessionManager', () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - expect(samlSessionManager).toBeInstanceOf(SamlSessionManager); - }); - - test(`'getSessionCookieForRole' should return the actual cookie value`, async () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - const cookie = await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope( - roleViewer - ); - expect(cookie).toBe(cookieInstance.value); - }); - - test(`'getApiCredentialsForRole' should return {Cookie: }`, async () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - const credentials = await samlSessionManager.getApiCredentialsForRole(roleViewer); - expect(credentials).toEqual({ Cookie: `${cookieInstance.cookieString()}` }); - }); - - test(`'getSessionCookieForRole' should call 'createLocalSAMLSession' only once for the same role`, async () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer); - await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleEditor); - await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer); - expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(2); - expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); - }); - - test(`'getEmail' return the correct email`, async () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - const email = await samlSessionManager.getEmail(roleEditor); - expect(email).toBe(testEmail); - }); - - test(`'getUserData' should call security API and return user profile data`, async () => { - const testData: UserProfile = { - username: '6ta90xc', - roles: [roleEditor], - full_name: testFullname, - email: testEmail, - enabled: true, - elastic_cloud_user: false, - }; - getSecurityProfileMock.mockResolvedValueOnce(testData); - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - const userData = await samlSessionManager.getUserData(roleViewer); - - expect(userData).toEqual(testData); - }); - - test(`throws error when role is not in 'supportedRoles'`, async () => { - const nonExistingRole = 'tester'; - const expectedErrorMessage = `Role '${nonExistingRole}' is not in the supported list: ${supportedRoles.roles.join( - ', ' - )}. Add role descriptor in ${supportedRoles.sourcePath} to enable it for testing`; - const samlSessionManager = new SamlSessionManager({ - ...samlSessionManagerOptions, - supportedRoles, - }); - await expect( - samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(nonExistingRole) - ).rejects.toThrow(expectedErrorMessage); - await expect(samlSessionManager.getApiCredentialsForRole(nonExistingRole)).rejects.toThrow( - expectedErrorMessage - ); - await expect(samlSessionManager.getUserData(nonExistingRole)).rejects.toThrow( - expectedErrorMessage - ); - expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); - }); - - test(`doesn't throw error when supportedRoles is not defined`, async () => { - const nonExistingRole = 'tester'; - const testData: UserProfile = { - username: '6ta90xc', - roles: [nonExistingRole], - full_name: testFullname, - email: testEmail, - enabled: true, - elastic_cloud_user: false, - }; - getSecurityProfileMock.mockResolvedValueOnce(testData); - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(nonExistingRole); - await samlSessionManager.getApiCredentialsForRole(nonExistingRole); - await samlSessionManager.getUserData(nonExistingRole); - expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(1); - expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); - expect(getSecurityProfileMock.mock.calls).toHaveLength(1); - }); - }); - - describe('for cloud session', () => { - const hostOptions = { - protocol: 'https' as 'http' | 'https', - hostname: 'cloud', - username: 'elastic', - password: 'changeme', - }; - const isCloud = true; - const samlSessionManagerOptions = { - hostOptions, - isCloud, - log, - cloudUsersFilePath, - }; - const cloudCookieInstance = Cookie.parse( - 'sid=cloud_cookie_value; Path=/; Expires=Wed, 01 Oct 2023 07:00:00 GMT' - )!; - const cloudEmail = 'viewer@elastic.co'; - const cloudFullname = 'Test Viewer'; - const cloudUsers = new Array<[Role, User]>(); - cloudUsers.push(['viewer', { email: 'viewer@elastic.co', password: 'p1234' }]); - cloudUsers.push(['editor', { email: 'editor@elastic.co', password: 'p1234' }]); - - describe('handles errors', () => { - beforeEach(() => { - jest.resetAllMocks(); - jest - .requireMock('../kbn_client/kbn_client') - .KbnClient.mockImplementation(() => ({ version: { get } })); - get.mockImplementationOnce(() => Promise.resolve('8.12.0')); - - readCloudUsersFromFileMock.mockReturnValue(cloudUsers); - }); - - test('should throw error if TEST_CLOUD_HOST_NAME is not set', async () => { - isValidHostnameMock.mockReturnValueOnce(false); - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - await expect( - samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer) - ).rejects.toThrow( - 'SAML Authentication requires TEST_CLOUD_HOST_NAME env variable to be set' - ); - }); - }); - - beforeEach(() => { - jest.resetAllMocks(); - jest - .requireMock('../kbn_client/kbn_client') - .KbnClient.mockImplementation(() => ({ version: { get } })); - get.mockImplementationOnce(() => Promise.resolve('8.12.0')); - - createCloudSAMLSessionMock.mockResolvedValue(new Session(cloudCookieInstance, cloudEmail)); - readCloudUsersFromFileMock.mockReturnValue(cloudUsers); - }); - - test('should create an instance of SamlSessionManager', () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - expect(samlSessionManager).toBeInstanceOf(SamlSessionManager); - }); - - test(`'getSessionCookieForRole' should return the actual cookie value`, async () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - createCloudSAMLSessionMock.mockResolvedValue(new Session(cloudCookieInstance, cloudEmail)); - const cookie = await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope( - roleViewer - ); - expect(cookie).toBe(cloudCookieInstance.value); - }); - - test(`'getApiCredentialsForRole' should return {Cookie: }`, async () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - const credentials = await samlSessionManager.getApiCredentialsForRole(roleViewer); - expect(credentials).toEqual({ Cookie: `${cloudCookieInstance.cookieString()}` }); - }); - - test(`'getSessionCookieForRole' should call 'createCloudSAMLSession' only once for the same role`, async () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer); - await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleEditor); - await samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(roleViewer); - expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(0); - expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(2); - }); - - test(`'getEmail' return the correct email`, async () => { - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - const email = await samlSessionManager.getEmail(roleViewer); - expect(email).toBe(cloudEmail); - }); - - test(`'getUserData' should call security API and return user profile data`, async () => { - const testData: UserProfile = { - username: '92qab123', - roles: [roleViewer], - full_name: cloudFullname, - email: cloudEmail, - enabled: true, - elastic_cloud_user: true, - }; - getSecurityProfileMock.mockResolvedValueOnce(testData); - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - const userData = await samlSessionManager.getUserData(roleViewer); - - expect(userData).toEqual(testData); - }); - - test(`throws error for non-existing role when 'supportedRoles' is defined`, async () => { - const nonExistingRole = 'tester'; - const expectedErrorMessage = `Role '${nonExistingRole}' is not in the supported list: ${supportedRoles.roles.join( - ', ' - )}. Add role descriptor in ${supportedRoles.sourcePath} to enable it for testing`; - const samlSessionManager = new SamlSessionManager({ - ...samlSessionManagerOptions, - supportedRoles, - }); - await expect( - samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(nonExistingRole) - ).rejects.toThrow(expectedErrorMessage); - await expect(samlSessionManager.getApiCredentialsForRole(nonExistingRole)).rejects.toThrow( - expectedErrorMessage - ); - await expect(samlSessionManager.getUserData(nonExistingRole)).rejects.toThrow( - expectedErrorMessage - ); - expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); - }); - - test(`throws error for non-existing role when 'supportedRoles' is not defined`, async () => { - const nonExistingRole = 'tester'; - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - await expect( - samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(nonExistingRole) - ).rejects.toThrow(`User with '${nonExistingRole}' role is not defined`); - await expect(samlSessionManager.getApiCredentialsForRole(nonExistingRole)).rejects.toThrow( - `User with '${nonExistingRole}' role is not defined` - ); - await expect(samlSessionManager.getUserData(nonExistingRole)).rejects.toThrow( - `User with '${nonExistingRole}' role is not defined` - ); - expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); - }); - - test(`throws error when credentials are not specified for the role`, async () => { - const noCredentialsRole = 'admin'; - const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); - await expect( - samlSessionManager.getInteractiveUserSessionCookieWithRoleScope(noCredentialsRole) - ).rejects.toThrow(`User with '${noCredentialsRole}' role is not defined`); - await expect(samlSessionManager.getApiCredentialsForRole(noCredentialsRole)).rejects.toThrow( - `User with '${noCredentialsRole}' role is not defined` - ); - await expect(samlSessionManager.getUserData(noCredentialsRole)).rejects.toThrow( - `User with '${noCredentialsRole}' role is not defined` - ); - expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); - }); - }); -}); diff --git a/packages/kbn-test/src/es/test_es_cluster.ts b/packages/kbn-test/src/es/test_es_cluster.ts index a2078a1e56e16..df83fa89cf607 100644 --- a/packages/kbn-test/src/es/test_es_cluster.ts +++ b/packages/kbn-test/src/es/test_es_cluster.ts @@ -202,6 +202,7 @@ export function createTestEsCluster< license, basePath, esArgs, + resources: files, }; return new (class TestCluster { @@ -297,7 +298,7 @@ export function createTestEsCluster< // If we have multiple nodes, we shouldn't try setting up the native realm // right away or wait for ES to be green, the cluster isn't ready. So we only // set it up after the last node is started. - skipNativeRealmSetup: this.nodes.length > 1 && i < this.nodes.length - 1, + skipSecuritySetup: this.nodes.length > 1 && i < this.nodes.length - 1, skipReadyCheck: this.nodes.length > 1 && i < this.nodes.length - 1, onEarlyExit, writeLogsToPath, diff --git a/packages/kbn-test/src/functional_test_runner/lib/providers/async_instance.ts b/packages/kbn-test/src/functional_test_runner/lib/providers/async_instance.ts index 1f0fb31ccd41d..c870a1538ec29 100644 --- a/packages/kbn-test/src/functional_test_runner/lib/providers/async_instance.ts +++ b/packages/kbn-test/src/functional_test_runner/lib/providers/async_instance.ts @@ -73,7 +73,7 @@ export const createAsyncInstance = ( }, get(_, prop, receiver) { - if (loadingTarget.hasOwnProperty(prop)) { + if (Object.hasOwn(loadingTarget, prop)) { return Reflect.get(loadingTarget as any, prop, receiver); } @@ -84,7 +84,7 @@ export const createAsyncInstance = ( }, getOwnPropertyDescriptor(_, prop) { - if (loadingTarget.hasOwnProperty(prop)) { + if (Object.hasOwn(loadingTarget, prop)) { return Reflect.getOwnPropertyDescriptor(loadingTarget, prop); } @@ -100,7 +100,7 @@ export const createAsyncInstance = ( }, has(_, prop) { - if (!loadingTarget.hasOwnProperty(prop)) { + if (!Object.hasOwn(loadingTarget, prop)) { return Reflect.has(loadingTarget, prop); } diff --git a/packages/kbn-test/src/functional_test_runner/lib/providers/verbose_instance.ts b/packages/kbn-test/src/functional_test_runner/lib/providers/verbose_instance.ts index ca4109961b51c..d4ed0b7099468 100644 --- a/packages/kbn-test/src/functional_test_runner/lib/providers/verbose_instance.ts +++ b/packages/kbn-test/src/functional_test_runner/lib/providers/verbose_instance.ts @@ -59,7 +59,7 @@ export function createVerboseInstance( }; } - if (result.hasOwnProperty('thrown')) { + if (Object.hasOwn(result, 'thrown')) { log.indent(-2); throw result.thrown; } diff --git a/packages/kbn-test/src/jest/setup/polyfills.jsdom.js b/packages/kbn-test/src/jest/setup/polyfills.jsdom.js index 0867862b2d4ca..80fc5185dc115 100644 --- a/packages/kbn-test/src/jest/setup/polyfills.jsdom.js +++ b/packages/kbn-test/src/jest/setup/polyfills.jsdom.js @@ -11,12 +11,12 @@ Object.defineProperty(window, 'MutationObserver', { value: MutationObserver }); require('whatwg-fetch'); -if (!global.URL.hasOwnProperty('createObjectURL')) { +if (!Object.hasOwn(global.URL, 'createObjectURL')) { Object.defineProperty(global.URL, 'createObjectURL', { value: () => '' }); } // https://github.com/jsdom/jsdom/issues/2524 -if (!global.hasOwnProperty('TextEncoder')) { +if (!Object.hasOwn(global, 'TextEncoder')) { const customTextEncoding = require('@kayahr/text-encoding'); global.TextEncoder = customTextEncoding.TextEncoder; global.TextDecoder = customTextEncoding.TextDecoder; @@ -29,11 +29,11 @@ if (!global.hasOwnProperty('TextEncoder')) { // https://github.com/jsdom/jsdom/issues/2555 global.Blob = require('blob-polyfill').Blob; -if (!global.hasOwnProperty('ResizeObserver')) { +if (!Object.hasOwn(global, 'ResizeObserver')) { global.ResizeObserver = require('resize-observer-polyfill'); } -if (!global.hasOwnProperty('Worker')) { +if (!Object.hasOwn(global, 'Worker')) { class Worker { constructor(stringUrl) { this.url = stringUrl; @@ -49,7 +49,7 @@ if (!global.hasOwnProperty('Worker')) { // Mocking matchMedia to resolve TypeError: window.matchMedia is not a function // For more info, see https://jestjs.io/docs/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom - if (!global.hasOwnProperty('matchMedia')) { + if (!Object.hasOwn(global, 'matchMedia')) { Object.defineProperty(global, 'matchMedia', { writable: true, // eslint-disable-next-line no-undef diff --git a/packages/kbn-test/src/kbn_client/kbn_client_saved_objects.ts b/packages/kbn-test/src/kbn_client/kbn_client_saved_objects.ts index f15fb0035d670..3f498eb5f4606 100644 --- a/packages/kbn-test/src/kbn_client/kbn_client_saved_objects.ts +++ b/packages/kbn-test/src/kbn_client/kbn_client_saved_objects.ts @@ -118,10 +118,13 @@ const STANDARD_LIST_TYPES = [ 'infrastructure-monitoring-log-view', 'apm-indices', // Fleet saved object types + 'ingest_manager_settings', 'ingest-outputs', 'ingest-download-sources', 'ingest-agent-policies', + 'fleet-agent-policies', 'ingest-package-policies', + 'fleet-package-policies', 'epm-packages', 'epm-packages-assets', 'fleet-preconfiguration-deletion-record', diff --git a/packages/kbn-test/src/kbn_client/kbn_client_ui_settings.ts b/packages/kbn-test/src/kbn_client/kbn_client_ui_settings.ts index 599184b30a461..a5a1102a0d44e 100644 --- a/packages/kbn-test/src/kbn_client/kbn_client_ui_settings.ts +++ b/packages/kbn-test/src/kbn_client/kbn_client_ui_settings.ts @@ -69,7 +69,7 @@ export class KbnClientUiSettings { }; for (const [name, { isOverridden }] of Object.entries(await this.getAll())) { - if (!isOverridden && !changes.hasOwnProperty(name)) { + if (!isOverridden && !Object.hasOwn(changes, name)) { changes[name] = null; } } diff --git a/packages/kbn-text-based-editor/src/editor_footer/index.tsx b/packages/kbn-text-based-editor/src/editor_footer/index.tsx index dcab34c0845a3..a6b36c221d3c1 100644 --- a/packages/kbn-text-based-editor/src/editor_footer/index.tsx +++ b/packages/kbn-text-based-editor/src/editor_footer/index.tsx @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import React, { memo, useState, useCallback, useEffect } from 'react'; +import React, { memo, useState, useCallback, useEffect, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiText, EuiFlexGroup, EuiFlexItem, EuiCode } from '@elastic/eui'; @@ -16,6 +16,7 @@ import { LanguageDocumentationPopover, type LanguageDocumentationSections, } from '@kbn/language-documentation-popover'; +import { getLimitFromESQLQuery } from '@kbn/esql-utils'; import { type MonacoMessage, getDocumentationSections } from '../helpers'; import { ErrorsWarningsFooterPopover } from './errors_warnings_popover'; import { QueryHistoryAction, QueryHistory } from './query_history'; @@ -98,6 +99,8 @@ export const EditorFooter = memo(function EditorFooter({ [runQuery, updateQuery] ); + const limit = useMemo(() => getLimitFromESQLQuery(code), [code]); + useEffect(() => { async function getDocumentation() { const sections = await getDocumentationSections('esql'); @@ -126,9 +129,16 @@ export const EditorFooter = memo(function EditorFooter({ responsive={false} > - + - + {/* If there is no space and no @timestamp detected hide the information */} {(detectedTimestamp || !isSpaceReduced) && !hideTimeFilterInfo && ( - + )} + + + + +

+ {isSpaceReduced + ? i18n.translate( + 'textBasedEditor.query.textBasedLanguagesEditor.limitInfoReduced', + { + defaultMessage: 'LIMIT {limit}', + values: { limit }, + } + ) + : i18n.translate( + 'textBasedEditor.query.textBasedLanguagesEditor.limitInfo', + { + defaultMessage: 'LIMIT {limit} rows', + values: { limit }, + } + )} +

+
+
+
+
{errors && errors.length > 0 && ( + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate( + 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.mv_percentile', + { + defaultMessage: 'MV_PERCENTILE', + } + ), + description: ( + + + ### MV_PERCENTILE + Converts a multivalued field into a single valued field containing the value at which a certain percentage of observed values occur. + + \`\`\` + ROW values = [5, 5, 10, 12, 5000] + | EVAL p50 = MV_PERCENTILE(values, 50), median = MV_MEDIAN(values) + \`\`\` `, description: 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', @@ -3370,6 +3403,7 @@ export const functions = { ROW string = ["1953-09-02T00:00:00.000Z", "1964-06-02T00:00:00.000Z", "1964-06-02 00:00:00"] | EVAL datetime = TO_DATETIME(string) \`\`\` + Note: Note that when converting from nanosecond resolution to millisecond resolution with this function, the nanosecond date is truncated, not rounded. `, description: 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', diff --git a/packages/kbn-text-based-editor/src/helpers.test.ts b/packages/kbn-text-based-editor/src/helpers.test.ts index 797e68ce99056..c8b46a75ce444 100644 --- a/packages/kbn-text-based-editor/src/helpers.test.ts +++ b/packages/kbn-text-based-editor/src/helpers.test.ts @@ -249,8 +249,36 @@ describe('helpers', function () { }; const indices = await getIndicesList(updatedDataViewsMock); expect(indices).toStrictEqual([ - { name: '.system1', hidden: true }, - { name: 'logs', hidden: false }, + { name: '.system1', hidden: true, type: 'Index' }, + { name: 'logs', hidden: false, type: 'Index' }, + ]); + }); + + it('should type correctly the aliases', async function () { + const dataViewsMock = dataViewPluginMocks.createStartContract(); + const updatedDataViewsMock = { + ...dataViewsMock, + getIndices: jest.fn().mockResolvedValue([ + { + name: 'alias1', + title: 'system1', + tags: [ + { + name: 'Alias', + type: 'alias', + }, + ], + }, + { + name: 'logs', + title: 'logs', + }, + ]), + }; + const indices = await getIndicesList(updatedDataViewsMock); + expect(indices).toStrictEqual([ + { name: 'alias1', hidden: false, type: 'Alias' }, + { name: 'logs', hidden: false, type: 'Index' }, ]); }); }); @@ -283,7 +311,7 @@ describe('helpers', function () { ]), }; const indices = await getRemoteIndicesList(updatedDataViewsMock); - expect(indices).toStrictEqual([{ name: 'remote:logs', hidden: false }]); + expect(indices).toStrictEqual([{ name: 'remote:logs', hidden: false, type: 'Index' }]); }); }); }); diff --git a/packages/kbn-text-based-editor/src/helpers.ts b/packages/kbn-text-based-editor/src/helpers.ts index 95652a942d7dd..9e3bea6ee0abf 100644 --- a/packages/kbn-text-based-editor/src/helpers.ts +++ b/packages/kbn-text-based-editor/src/helpers.ts @@ -209,7 +209,11 @@ export const getIndicesList = async (dataViews: DataViewsPublicPluginStart) => { pattern: '*', isRollupIndex: () => false, }); - return indices.map((index) => ({ name: index.name, hidden: index.name.startsWith('.') })); + + return indices.map((index) => { + const [tag] = index?.tags ?? []; + return { name: index.name, hidden: index.name.startsWith('.'), type: tag?.name ?? 'Index' }; + }); }; export const getRemoteIndicesList = async (dataViews: DataViewsPublicPluginStart) => { @@ -223,7 +227,10 @@ export const getRemoteIndicesList = async (dataViews: DataViewsPublicPluginStart return !index.startsWith('.') && !Boolean(source.item.indices); }); - return finalIndicesList.map((source) => ({ name: source.name, hidden: false })); + return finalIndicesList.map((source) => { + const [tag] = source?.tags ?? []; + return { name: source.name, hidden: false, type: tag?.name ?? 'Index' }; + }); }; // refresh the esql cache entry after 10 minutes @@ -261,6 +268,7 @@ const getIntegrations = async (core: CoreStart) => { hidden: false, title: source.title, dataStreams: source.dataStreams, + type: 'Integration', })) ?? [] ); }; diff --git a/packages/kbn-text-based-editor/src/text_based_languages_editor.test.tsx b/packages/kbn-text-based-editor/src/text_based_languages_editor.test.tsx index 1337d204759b1..db558ae186b7f 100644 --- a/packages/kbn-text-based-editor/src/text_based_languages_editor.test.tsx +++ b/packages/kbn-text-based-editor/src/text_based_languages_editor.test.tsx @@ -71,22 +71,14 @@ describe('TextBasedLanguagesEditor', () => { }); it('should render the date info with no @timestamp found', async () => { - const newProps = { - ...props, - isCodeEditorExpanded: true, - }; - const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); + const component = mount(renderTextBasedLanguagesEditorComponent({ ...props })); expect( component.find('[data-test-subj="TextBasedLangEditor-date-info"]').at(0).text() ).toStrictEqual('@timestamp not found'); }); it('should render the feedback link', async () => { - const newProps = { - ...props, - isCodeEditorExpanded: true, - }; - const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); + const component = mount(renderTextBasedLanguagesEditorComponent({ ...props })); expect(component.find('[data-test-subj="TextBasedLangEditor-feedback-link"]').length).not.toBe( 0 ); @@ -95,7 +87,6 @@ describe('TextBasedLanguagesEditor', () => { it('should not render the date info if hideTimeFilterInfo is set to true', async () => { const newProps = { ...props, - isCodeEditorExpanded: true, hideTimeFilterInfo: true, }; const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); @@ -105,7 +96,6 @@ describe('TextBasedLanguagesEditor', () => { it('should render the date info with @timestamp found if detectedTimestamp is given', async () => { const newProps = { ...props, - isCodeEditorExpanded: true, detectedTimestamp: '@timestamp', }; const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); @@ -114,10 +104,16 @@ describe('TextBasedLanguagesEditor', () => { ).toStrictEqual('@timestamp found'); }); + it('should render the limit information', async () => { + const component = mount(renderTextBasedLanguagesEditorComponent({ ...props })); + expect( + component.find('[data-test-subj="TextBasedLangEditor-limit-info"]').at(0).text() + ).toStrictEqual('LIMIT 1000 rows'); + }); + it('should render the query history action if isLoading is defined', async () => { const newProps = { ...props, - isCodeEditorExpanded: true, isLoading: true, }; const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); @@ -128,11 +124,7 @@ describe('TextBasedLanguagesEditor', () => { }); it('should not render the query history action if isLoading is undefined', async () => { - const newProps = { - ...props, - isCodeEditorExpanded: true, - }; - const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); + const component = mount(renderTextBasedLanguagesEditorComponent({ ...props })); expect( component.find('[data-test-subj="TextBasedLangEditor-toggle-query-history-button-container"]') .length @@ -142,7 +134,6 @@ describe('TextBasedLanguagesEditor', () => { it('should not render the query history action if hideQueryHistory is set to true', async () => { const newProps = { ...props, - isCodeEditorExpanded: true, hideQueryHistory: true, }; const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); @@ -153,13 +144,9 @@ describe('TextBasedLanguagesEditor', () => { }); it('should render the correct buttons for the expanded code editor mode', async () => { - const newProps = { - ...props, - isCodeEditorExpanded: true, - }; let component: ReactWrapper; await act(async () => { - component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); + component = mount(renderTextBasedLanguagesEditorComponent({ ...props })); }); component!.update(); expect( @@ -171,20 +158,12 @@ describe('TextBasedLanguagesEditor', () => { }); it('should render the resize for the expanded code editor mode', async () => { - const newProps = { - ...props, - isCodeEditorExpanded: true, - }; - const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); + const component = mount(renderTextBasedLanguagesEditorComponent({ ...props })); expect(component.find('[data-test-subj="TextBasedLangEditor-resize"]').length).not.toBe(0); }); it('should render the footer for the expanded code editor mode', async () => { - const newProps = { - ...props, - isCodeEditorExpanded: true, - }; - const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); + const component = mount(renderTextBasedLanguagesEditorComponent({ ...props })); expect(component.find('[data-test-subj="TextBasedLangEditor-footer"]').length).not.toBe(0); expect(component.find('[data-test-subj="TextBasedLangEditor-footer-lines"]').at(0).text()).toBe( '1 line' @@ -192,18 +171,13 @@ describe('TextBasedLanguagesEditor', () => { }); it('should render the run query text', async () => { - const newProps = { - ...props, - isCodeEditorExpanded: true, - }; - const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); + const component = mount(renderTextBasedLanguagesEditorComponent({ ...props })); expect(component.find('[data-test-subj="TextBasedLangEditor-run-query"]').length).not.toBe(0); }); it('should not render the run query text if the hideRunQueryText prop is set to true', async () => { const newProps = { ...props, - isCodeEditorExpanded: true, hideRunQueryText: true, }; const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); @@ -214,7 +188,6 @@ describe('TextBasedLanguagesEditor', () => { const onTextLangQuerySubmit = jest.fn(); const newProps = { ...props, - isCodeEditorExpanded: true, hideRunQueryText: true, editorIsInline: true, onTextLangQuerySubmit, diff --git a/packages/kbn-tooling-log/src/__snapshots__/tooling_log.test.ts.snap b/packages/kbn-tooling-log/src/__snapshots__/tooling_log.test.ts.snap index 7742c2bb681d0..de1d9c02f024e 100644 --- a/packages/kbn-tooling-log/src/__snapshots__/tooling_log.test.ts.snap +++ b/packages/kbn-tooling-log/src/__snapshots__/tooling_log.test.ts.snap @@ -9,6 +9,7 @@ Array [ "bar", "baz", ], + "context": undefined, "indent": 0, "source": undefined, "type": "debug", @@ -24,6 +25,7 @@ Array [ "args": Array [ [Error: error message], ], + "context": undefined, "indent": 0, "source": undefined, "type": "error", @@ -34,6 +36,7 @@ Array [ "args": Array [ "string message", ], + "context": undefined, "indent": 0, "source": undefined, "type": "error", @@ -52,6 +55,7 @@ Array [ "args": Array [ "foo", ], + "context": undefined, "indent": 0, "source": undefined, "type": "debug", @@ -60,6 +64,7 @@ Array [ "args": Array [ "bar", ], + "context": undefined, "indent": 0, "source": undefined, "type": "info", @@ -68,6 +73,7 @@ Array [ "args": Array [ "baz", ], + "context": undefined, "indent": 0, "source": undefined, "type": "verbose", @@ -81,6 +87,7 @@ Array [ "args": Array [ "foo", ], + "context": undefined, "indent": 0, "source": undefined, "type": "debug", @@ -89,6 +96,7 @@ Array [ "args": Array [ "bar", ], + "context": undefined, "indent": 0, "source": undefined, "type": "info", @@ -97,6 +105,7 @@ Array [ "args": Array [ "baz", ], + "context": undefined, "indent": 0, "source": undefined, "type": "verbose", @@ -111,6 +120,7 @@ Array [ "args": Array [ "foo", ], + "context": undefined, "indent": 1, "source": undefined, "type": "debug", @@ -121,6 +131,7 @@ Array [ "args": Array [ "bar", ], + "context": undefined, "indent": 3, "source": undefined, "type": "debug", @@ -131,6 +142,7 @@ Array [ "args": Array [ "baz", ], + "context": undefined, "indent": 6, "source": undefined, "type": "debug", @@ -141,6 +153,7 @@ Array [ "args": Array [ "box", ], + "context": undefined, "indent": 4, "source": undefined, "type": "debug", @@ -151,6 +164,7 @@ Array [ "args": Array [ "foo", ], + "context": undefined, "indent": 0, "source": undefined, "type": "debug", @@ -168,6 +182,7 @@ Array [ "bar", "baz", ], + "context": undefined, "indent": 0, "source": undefined, "type": "info", @@ -185,6 +200,7 @@ Array [ "bar", "baz", ], + "context": undefined, "indent": 0, "source": undefined, "type": "success", @@ -202,6 +218,7 @@ Array [ "bar", "baz", ], + "context": undefined, "indent": 0, "source": undefined, "type": "verbose", @@ -219,6 +236,7 @@ Array [ "bar", "baz", ], + "context": undefined, "indent": 0, "source": undefined, "type": "warning", @@ -236,6 +254,7 @@ Array [ "bar", "baz", ], + "context": undefined, "indent": 0, "source": undefined, "type": "write", diff --git a/packages/kbn-tooling-log/src/message.ts b/packages/kbn-tooling-log/src/message.ts index 082c0e65d48b2..df8485d906337 100644 --- a/packages/kbn-tooling-log/src/message.ts +++ b/packages/kbn-tooling-log/src/message.ts @@ -20,4 +20,6 @@ export interface Message { source?: string; /** args passed to the logging method */ args: any[]; + /** an identifier of the logging entity */ + context?: string; } diff --git a/packages/kbn-tooling-log/src/tooling_log.ts b/packages/kbn-tooling-log/src/tooling_log.ts index bef4320be2356..a3e124892a033 100644 --- a/packages/kbn-tooling-log/src/tooling_log.ts +++ b/packages/kbn-tooling-log/src/tooling_log.ts @@ -25,6 +25,13 @@ export interface ToolingLogOptions { * writers on either log will update the other too. */ parent?: ToolingLog; + + /** + * A string, conveniently the name of the script, + * that will be prepended to log messages. + * Can be useful to identify which entity is emitting the log. + */ + context?: string; } export class ToolingLog implements SomeDevLog { @@ -32,6 +39,7 @@ export class ToolingLog implements SomeDevLog { private writers$: Rx.BehaviorSubject; private readonly written$: Rx.Subject; private readonly type: string | undefined; + private readonly context: string | undefined; constructor(writerConfig?: ToolingLogTextWriterConfig, options?: ToolingLogOptions) { this.indentWidth$ = options?.parent ? options.parent.indentWidth$ : new Rx.BehaviorSubject(0); @@ -45,6 +53,7 @@ export class ToolingLog implements SomeDevLog { this.written$ = options?.parent ? options.parent.written$ : new Rx.Subject(); this.type = options?.type; + this.context = options?.context; } /** @@ -93,31 +102,31 @@ export class ToolingLog implements SomeDevLog { } public verbose(...args: any[]) { - this.sendToWriters('verbose', args); + this.sendToWriters({ type: 'verbose', context: this.context }, args); } public debug(...args: any[]) { - this.sendToWriters('debug', args); + this.sendToWriters({ type: 'debug', context: this.context }, args); } public info(...args: any[]) { - this.sendToWriters('info', args); + this.sendToWriters({ type: 'info', context: this.context }, args); } public success(...args: any[]) { - this.sendToWriters('success', args); + this.sendToWriters({ type: 'success', context: this.context }, args); } public warning(...args: any[]) { - this.sendToWriters('warning', args); + this.sendToWriters({ type: 'warning', context: this.context }, args); } public error(error: Error | string) { - this.sendToWriters('error', [error]); + this.sendToWriters({ type: 'error', context: this.context }, [error]); } public write(...args: any[]) { - this.sendToWriters('write', args); + this.sendToWriters({ type: 'write' }, args); } public getWriters() { @@ -143,7 +152,7 @@ export class ToolingLog implements SomeDevLog { }); } - private sendToWriters(type: MessageTypes, args: any[]) { + private sendToWriters({ type, context }: { type: MessageTypes; context?: string }, args: any[]) { const indent = this.indentWidth$.getValue(); const writers = this.writers$.getValue(); const msg: Message = { @@ -151,6 +160,7 @@ export class ToolingLog implements SomeDevLog { indent, source: this.type, args, + context, }; let written = false; diff --git a/packages/kbn-tooling-log/src/tooling_log_collecting_writer.ts b/packages/kbn-tooling-log/src/tooling_log_collecting_writer.ts index 6f73563f4a2c5..5550d86181446 100644 --- a/packages/kbn-tooling-log/src/tooling_log_collecting_writer.ts +++ b/packages/kbn-tooling-log/src/tooling_log_collecting_writer.ts @@ -26,16 +26,16 @@ export class ToolingLogCollectingWriter extends ToolingLogTextWriter { } /** - * Called by ToolingLog, extends messages with the source if message includes one. + * Called by ToolingLog, extends messages with the source and context if message include it. */ write(msg: Message) { - if (msg.source) { - return super.write({ - ...msg, - args: [`source[${msg.source}]`, ...msg.args], - }); - } + const args = [ + msg.source ? `source[${msg.source}]` : null, + msg.context ? `context[${msg.context}]` : null, + ] + .filter(Boolean) + .concat(msg.args); - return super.write(msg); + return super.write({ ...msg, args }); } } diff --git a/packages/kbn-tooling-log/src/tooling_log_text_writer.ts b/packages/kbn-tooling-log/src/tooling_log_text_writer.ts index 4fe33241cf77e..5d097d23de818 100644 --- a/packages/kbn-tooling-log/src/tooling_log_text_writer.ts +++ b/packages/kbn-tooling-log/src/tooling_log_text_writer.ts @@ -25,7 +25,7 @@ const MSG_PREFIXES = { error: `${red('ERROR')} `, }; -const has = (obj: T, key: any): key is keyof T => obj.hasOwnProperty(key); +const has = (obj: T, key: any): key is keyof T => Object.hasOwn(obj, key); export interface ToolingLogTextWriterConfig { /** @@ -103,7 +103,8 @@ export class ToolingLogTextWriter implements Writer { } } - const prefix = has(MSG_PREFIXES, msg.type) ? MSG_PREFIXES[msg.type] : ''; + let prefix = has(MSG_PREFIXES, msg.type) ? MSG_PREFIXES[msg.type] : ''; + prefix = msg.context ? prefix + `[${msg.context}] ` : prefix; ToolingLogTextWriter.write(this.writeTo, prefix, msg); return true; } diff --git a/packages/kbn-try-in-console/components/try_in_console_button.test.tsx b/packages/kbn-try-in-console/components/try_in_console_button.test.tsx index fb4cce16d6134..ffb07c46989f6 100644 --- a/packages/kbn-try-in-console/components/try_in_console_button.test.tsx +++ b/packages/kbn-try-in-console/components/try_in_console_button.test.tsx @@ -73,7 +73,7 @@ describe('TryInConsoleButton', () => { const wrapper = render(); expect(wrapper.getByTestId('tryInConsoleButton')).toBeTruthy(); - expect(wrapper.getByRole('button')).toHaveTextContent('Try in Console'); + expect(wrapper.getByRole('button')).toHaveTextContent('Run in Console'); expect(mockLocatorUseUrl).toHaveBeenCalledWith( { loadFrom: 'data:text/plain,OIUQKgBA9A+gzgFwIYLkA', @@ -87,7 +87,7 @@ describe('TryInConsoleButton', () => { const wrapper = render(); expect(wrapper.getByTestId('tryInConsoleLink')).toBeTruthy(); - expect(wrapper.getByRole('button')).toHaveTextContent('Try in Console'); + expect(wrapper.getByRole('button')).toHaveTextContent('Run in Console'); }); it('renders null if dev tools are unavailable', async () => { const props: Partial = { @@ -153,7 +153,7 @@ describe('TryInConsoleButton', () => { const props: Partial = { request: 'GET /_stats' }; render(); - fireEvent.click(screen.getByText('Try in Console')); + fireEvent.click(screen.getByText('Run in Console')); expect(windowOpenSpy).toHaveBeenCalledTimes(1); expect(windowOpenSpy).toHaveBeenCalledWith('/app/test/dev_tools', '_blank', 'noreferrer'); @@ -161,7 +161,7 @@ describe('TryInConsoleButton', () => { it('can open in new tab without data', async () => { render(); - fireEvent.click(screen.getByText('Try in Console')); + fireEvent.click(screen.getByText('Run in Console')); expect(mockLocatorUseUrl).toHaveBeenCalledWith({}, undefined, [undefined]); expect(windowOpenSpy).toHaveBeenCalledTimes(1); @@ -175,7 +175,7 @@ describe('TryInConsoleButton', () => { /> ); - fireEvent.click(screen.getByText('Try in Console')); + fireEvent.click(screen.getByText('Run in Console')); expect(windowOpenSpy).toHaveBeenCalledTimes(0); expect(mockConsole.openEmbeddedConsole).toHaveBeenCalledTimes(1); @@ -185,7 +185,7 @@ describe('TryInConsoleButton', () => { mockConsole.isEmbeddedConsoleAvailable.mockReturnValue(false); render(); - fireEvent.click(screen.getByText('Try in Console')); + fireEvent.click(screen.getByText('Run in Console')); expect(windowOpenSpy).toHaveBeenCalledTimes(1); expect(mockConsole.openEmbeddedConsole).toHaveBeenCalledTimes(0); diff --git a/packages/kbn-try-in-console/components/try_in_console_button.tsx b/packages/kbn-try-in-console/components/try_in_console_button.tsx index 077c87ca66ed0..aae6ec338dfaa 100644 --- a/packages/kbn-try-in-console/components/try_in_console_button.tsx +++ b/packages/kbn-try-in-console/components/try_in_console_button.tsx @@ -16,7 +16,9 @@ import type { ConsolePluginStart } from '@kbn/console-plugin/public'; import { i18n } from '@kbn/i18n'; import { compressToEncodedURIComponent } from 'lz-string'; -const TRY_IN_CONSOLE = i18n.translate('tryInConsole.button', { defaultMessage: 'Try in Console' }); +const RUN_IN_CONSOLE = i18n.translate('tryInConsole.button.text', { + defaultMessage: 'Run in Console', +}); export interface TryInConsoleButtonProps { request?: string; @@ -32,7 +34,7 @@ export const TryInConsoleButton = ({ application, consolePlugin, sharePlugin, - content = TRY_IN_CONSOLE, + content = RUN_IN_CONSOLE, showIcon = true, type = 'emptyButton', }: TryInConsoleButtonProps) => { @@ -70,11 +72,11 @@ export const TryInConsoleButton = ({ consolePlugin?.isEmbeddedConsoleAvailable?.() ) { return i18n.translate('tryInConsole.embeddedConsoleButton.ariaLabel', { - defaultMessage: 'Try in Console - opens in embedded console', + defaultMessage: 'Run in Console - opens in embedded console', }); } return i18n.translate('tryInConsole.inNewTab.button.ariaLabel', { - defaultMessage: 'Try in Console - opens in a new tab', + defaultMessage: 'Run in Console - opens in a new tab', }); }; @@ -83,7 +85,7 @@ export const TryInConsoleButton = ({ 'aria-label': getAriaLabel(), onClick, }; - const iconType = showIcon ? 'popout' : undefined; + const iconType = showIcon ? 'play' : undefined; switch (type) { case 'link': diff --git a/packages/kbn-unified-data-table/README.md b/packages/kbn-unified-data-table/README.md index 7a2db17781ad1..0dd94c7c0977d 100644 --- a/packages/kbn-unified-data-table/README.md +++ b/packages/kbn-unified-data-table/README.md @@ -13,7 +13,7 @@ Props description: | **dataView** | DataView | The used data view. | | **loadingState** | DataLoadingState | Determines if data is currently loaded. | | **onFilter** | DocViewFilterFn | Function to add a filter in the grid cell or document flyout. | -| **onResize** | (optional)(colSettings: { columnId: string; width: number }) => void; | Function triggered when a column is resized by the user. | +| **onResize** | (optional)(colSettings: { columnId: string; width: number | undefind }) => void; | Function triggered when a column is resized by the user, passes `undefined` for auto-width. | | **onSetColumns** | (columns: string[], hideTimeColumn: boolean) => void; | Function to set all columns. | | **onSort** | (optional)(sort: string[][]) => void; | Function to change sorting of the documents, skipped when isSortEnabled is set to false. | | **rows** | (optional)DataTableRecord[] | Array of documents provided by Elasticsearch. | @@ -50,7 +50,8 @@ Props description: | **visibleCellActions** | (optional)number | An optional value for a custom number of the visible cell actions in the table. By default is up to 3. | | **externalCustomRenderers** | (optional)Record React.ReactNode>; | An optional settings for a specified fields rendering like links. Applied only for the listed fields rendering. | | **consumer** | (optional)string | Name of the UnifiedDataTable consumer component or application. | -| **componentsTourSteps** | (optional)Record | Optional key/value pairs to set guided onboarding steps ids for a data table components included to guided tour. | +| **componentsTourSteps** | (optional)Record | Optional key/value pairs to set guided onboarding steps ids for a data table components included to guided tour. |~~~~ +| **onUpdateDataGridDensity** | (optional)(DataGridDensity) => void; | Optional callback when the data grid density configuration is modified. | *Required **services** list: ``` @@ -80,7 +81,7 @@ Usage example: onFilter={() => { // Add logic to refetch the data when the filter by field was added/removed. Refetch data. }} - onResize={(colSettings: { columnId: string; width: number }) => { + onResize={(colSettings: { columnId: string; width: number | undefined }) => { // Update the table state with the new width for the column }} onSetColumns={(columns: string[], hideTimeColumn: boolean) => { diff --git a/packages/kbn-unified-data-table/__mocks__/table_context.ts b/packages/kbn-unified-data-table/__mocks__/table_context.ts index 9cf28f89eb810..b1364e4ce8933 100644 --- a/packages/kbn-unified-data-table/__mocks__/table_context.ts +++ b/packages/kbn-unified-data-table/__mocks__/table_context.ts @@ -14,7 +14,7 @@ import { servicesMock } from './services'; import { DataTableContext } from '../src/table_context'; import { convertValueToString } from '../src/utils/convert_value_to_string'; import { buildDataTableRecord } from '@kbn/discover-utils'; -import type { EsHitRecord } from '@kbn/discover-utils/types'; +import type { DataTableRecord, EsHitRecord } from '@kbn/discover-utils/types'; import type { UseSelectedDocsState } from '../src/hooks/use_selected_docs'; const buildTableContext = (dataView: DataView, rows: EsHitRecord[]): DataTableContext => { @@ -53,10 +53,13 @@ export function buildSelectedDocsState(selectedDocIds: string[]): UseSelectedDoc return { isDocSelected: (docId: string) => selectedDocsSet.has(docId), - getCountOfSelectedDocs: (docIds: string[]) => + getCountOfFilteredSelectedDocs: (docIds: string[]) => docIds.reduce((acc, docId) => (selectedDocsSet.has(docId) ? acc + 1 : acc), 0), + getSelectedDocsOrderedByRows: (rows: DataTableRecord[]) => + rows.filter((row) => selectedDocsSet.has(row.id)), hasSelectedDocs: selectedDocsSet.size > 0, - selectedDocIds, + selectedDocsCount: selectedDocsSet.size, + docIdsInSelectionOrder: selectedDocIds, toggleDocSelection: jest.fn(), selectAllDocs: jest.fn(), selectMoreDocs: jest.fn(), diff --git a/packages/kbn-unified-data-table/index.ts b/packages/kbn-unified-data-table/index.ts index 7dace83c3774e..a41845e30f5f9 100644 --- a/packages/kbn-unified-data-table/index.ts +++ b/packages/kbn-unified-data-table/index.ts @@ -14,7 +14,7 @@ export { } from './src/components/row_height_settings'; export { getDisplayedColumns } from './src/utils/columns'; export { getTextBasedColumnsMeta } from './src/utils/get_columns_meta'; -export { ROWS_HEIGHT_OPTIONS } from './src/constants'; +export { ROWS_HEIGHT_OPTIONS, DataGridDensity } from './src/constants'; export { JSONCodeEditorCommonMemoized } from './src/components/json_code_editor/json_code_editor_common'; @@ -24,7 +24,7 @@ export * as columnActions from './src/components/actions/columns'; export { getRowsPerPageOptions } from './src/utils/rows_per_page'; export { popularizeField } from './src/utils/popularize_field'; -export { useColumns } from './src/hooks/use_data_grid_columns'; +export { useColumns, type UseColumnsProps } from './src/hooks/use_data_grid_columns'; export { OPEN_DETAILS, SELECT_ROW } from './src/components/data_table_columns'; // TODO: deprecate? export { DataTableRowControl } from './src/components/data_table_row_control'; diff --git a/packages/kbn-unified-data-table/kibana.jsonc b/packages/kbn-unified-data-table/kibana.jsonc index 3fe1b76b931c3..b80f8b6a55596 100644 --- a/packages/kbn-unified-data-table/kibana.jsonc +++ b/packages/kbn-unified-data-table/kibana.jsonc @@ -2,5 +2,8 @@ "type": "shared-browser", "id": "@kbn/unified-data-table", "description": "Contains functionality for the unified data table which can be integrated into apps", - "owner": "@elastic/kibana-data-discovery" + "owner": [ + "@elastic/kibana-data-discovery", + "@elastic/security-threat-hunting-investigations" + ] } diff --git a/packages/kbn-unified-data-table/src/components/actions/columns.test.ts b/packages/kbn-unified-data-table/src/components/actions/columns.test.ts index d8480cf2067b4..21b2e0b0bb355 100644 --- a/packages/kbn-unified-data-table/src/components/actions/columns.test.ts +++ b/packages/kbn-unified-data-table/src/components/actions/columns.test.ts @@ -10,9 +10,10 @@ import { getStateColumnActions } from './columns'; import { dataViewMock } from '@kbn/discover-utils/src/__mocks__'; import { Capabilities } from '@kbn/core/types'; import { dataViewsMock } from '../../../__mocks__/data_views'; +import { UnifiedDataTableSettings } from '../../types'; function getStateColumnAction( - state: { columns?: string[]; sort?: string[][] }, + state: { columns?: string[]; sort?: string[][]; settings?: UnifiedDataTableSettings }, setAppState: (state: { columns: string[]; sort?: string[][] }) => void ) { return getStateColumnActions({ @@ -28,6 +29,7 @@ function getStateColumnAction( columns: state.columns, sort: state.sort, defaultOrder: 'desc', + settings: state.settings, }); } @@ -41,6 +43,7 @@ describe('Test column actions', () => { actions.onAddColumn('test'); expect(setAppState).toHaveBeenCalledWith({ columns: ['test'] }); }); + test('getStateColumnActions with columns and sort in state', () => { const setAppState = jest.fn(); const actions = getStateColumnAction( @@ -77,4 +80,95 @@ describe('Test column actions', () => { columns: ['second', 'first'], }); }); + + it('should pass settings to setAppState', () => { + const setAppState = jest.fn(); + const settings: UnifiedDataTableSettings = { columns: { first: { width: 100 } } }; + const actions = getStateColumnAction({ columns: ['first'], settings }, setAppState); + actions.onAddColumn('second'); + expect(setAppState).toHaveBeenCalledWith({ columns: ['first', 'second'], settings }); + setAppState.mockClear(); + actions.onRemoveColumn('second'); + expect(setAppState).toHaveBeenCalledWith({ columns: ['first'], settings, sort: [] }); + setAppState.mockClear(); + actions.onMoveColumn('first', 0); + expect(setAppState).toHaveBeenCalledWith({ columns: ['first'], settings }); + setAppState.mockClear(); + actions.onSetColumns(['first', 'second'], true); + expect(setAppState).toHaveBeenCalledWith({ columns: ['first', 'second'], settings }); + setAppState.mockClear(); + }); + + it('should clean up settings to remove non-existing columns', () => { + const setAppState = jest.fn(); + const actions = getStateColumnAction( + { + columns: ['first', 'second', 'third'], + settings: { columns: { first: { width: 100 }, second: { width: 200 } } }, + }, + setAppState + ); + actions.onRemoveColumn('second'); + expect(setAppState).toHaveBeenCalledWith({ + columns: ['first', 'third'], + settings: { columns: { first: { width: 100 } } }, + sort: [], + }); + setAppState.mockClear(); + actions.onSetColumns(['first', 'third'], true); + expect(setAppState).toHaveBeenCalledWith({ + columns: ['first', 'third'], + settings: { columns: { first: { width: 100 } } }, + }); + }); + + it('should reset the last column to auto width if only absolute width columns remain', () => { + const setAppState = jest.fn(); + let actions = getStateColumnAction( + { + columns: ['first', 'second', 'third'], + settings: { columns: { second: { width: 100 }, third: { width: 100, display: 'test' } } }, + }, + setAppState + ); + actions.onRemoveColumn('first'); + expect(setAppState).toHaveBeenCalledWith({ + columns: ['second', 'third'], + settings: { columns: { second: { width: 100 }, third: { display: 'test' } } }, + sort: [], + }); + setAppState.mockClear(); + actions = getStateColumnAction( + { + columns: ['first', 'second', 'third'], + settings: { columns: { second: { width: 100 }, third: { width: 100 } } }, + }, + setAppState + ); + actions.onSetColumns(['second', 'third'], true); + expect(setAppState).toHaveBeenCalledWith({ + columns: ['second', 'third'], + settings: { columns: { second: { width: 100 } } }, + }); + }); + + it('should not reset the last column to auto width if there are remaining auto width columns', () => { + const setAppState = jest.fn(); + const actions = getStateColumnAction( + { columns: ['first', 'second', 'third'], settings: { columns: { third: { width: 100 } } } }, + setAppState + ); + actions.onRemoveColumn('first'); + expect(setAppState).toHaveBeenCalledWith({ + columns: ['second', 'third'], + settings: { columns: { third: { width: 100 } } }, + sort: [], + }); + setAppState.mockClear(); + actions.onSetColumns(['second', 'third'], true); + expect(setAppState).toHaveBeenCalledWith({ + columns: ['second', 'third'], + settings: { columns: { third: { width: 100 } } }, + }); + }); }); diff --git a/packages/kbn-unified-data-table/src/components/actions/columns.ts b/packages/kbn-unified-data-table/src/components/actions/columns.ts index 3355902ece86e..d69d1fe90a361 100644 --- a/packages/kbn-unified-data-table/src/components/actions/columns.ts +++ b/packages/kbn-unified-data-table/src/components/actions/columns.ts @@ -5,52 +5,13 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -import { Capabilities } from '@kbn/core/public'; + +import type { Capabilities } from '@kbn/core/public'; import type { DataViewsContract } from '@kbn/data-plugin/public'; import type { DataView } from '@kbn/data-views-plugin/public'; +import { omit } from 'lodash'; import { popularizeField } from '../../utils/popularize_field'; - -/** - * Helper function to provide a fallback to a single _source column if the given array of columns - * is empty, and removes _source if there are more than 1 columns given - * @param columns - * @param useNewFieldsApi should a new fields API be used - */ -function buildColumns(columns: string[], useNewFieldsApi = false) { - if (columns.length > 1 && columns.indexOf('_source') !== -1) { - return columns.filter((col) => col !== '_source'); - } else if (columns.length !== 0) { - return columns; - } - return useNewFieldsApi ? [] : ['_source']; -} - -export function addColumn(columns: string[], columnName: string, useNewFieldsApi?: boolean) { - if (columns.includes(columnName)) { - return columns; - } - return buildColumns([...columns, columnName], useNewFieldsApi); -} - -export function removeColumn(columns: string[], columnName: string, useNewFieldsApi?: boolean) { - if (!columns.includes(columnName)) { - return columns; - } - return buildColumns( - columns.filter((col) => col !== columnName), - useNewFieldsApi - ); -} - -export function moveColumn(columns: string[], columnName: string, newIndex: number) { - if (newIndex < 0 || newIndex >= columns.length || !columns.includes(columnName)) { - return columns; - } - const modifiedColumns = [...columns]; - modifiedColumns.splice(modifiedColumns.indexOf(columnName), 1); // remove at old index - modifiedColumns.splice(newIndex, 0, columnName); // insert before new index - return modifiedColumns; -} +import type { UnifiedDataTableSettings } from '../../types'; export function getStateColumnActions({ capabilities, @@ -61,34 +22,50 @@ export function getStateColumnActions({ columns, sort, defaultOrder, + settings, }: { capabilities: Capabilities; dataView: DataView; dataViews: DataViewsContract; useNewFieldsApi: boolean; - setAppState: (state: { columns: string[]; sort?: string[][] }) => void; + setAppState: (state: { + columns: string[]; + sort?: string[][]; + settings?: UnifiedDataTableSettings; + }) => void; columns?: string[]; sort: string[][] | undefined; defaultOrder: string; + settings?: UnifiedDataTableSettings; }) { function onAddColumn(columnName: string) { popularizeField(dataView, columnName, dataViews, capabilities); const nextColumns = addColumn(columns || [], columnName, useNewFieldsApi); const nextSort = columnName === '_score' && !sort?.length ? [['_score', defaultOrder]] : sort; - setAppState({ columns: nextColumns, sort: nextSort }); + setAppState({ columns: nextColumns, sort: nextSort, settings }); } function onRemoveColumn(columnName: string) { popularizeField(dataView, columnName, dataViews, capabilities); + const nextColumns = removeColumn(columns || [], columnName, useNewFieldsApi); // The state's sort property is an array of [sortByColumn,sortDirection] const nextSort = sort && sort.length ? sort.filter((subArr) => subArr[0] !== columnName) : []; - setAppState({ columns: nextColumns, sort: nextSort }); + + let nextSettings = cleanColumnSettings(nextColumns, settings); + + // When columns are removed, reset the last column to auto width if only absolute + // width columns remain, to ensure the columns fill the available grid space + if (nextColumns.length < (columns?.length ?? 0)) { + nextSettings = adjustLastColumnWidth(nextColumns, nextSettings); + } + + setAppState({ columns: nextColumns, sort: nextSort, settings: nextSettings }); } function onMoveColumn(columnName: string, newIndex: number) { const nextColumns = moveColumn(columns || [], columnName, newIndex); - setAppState({ columns: nextColumns }); + setAppState({ columns: nextColumns, settings }); } function onSetColumns(nextColumns: string[], hideTimeColumn: boolean) { @@ -98,7 +75,15 @@ export function getStateColumnActions({ ? (nextColumns || []).slice(1) : nextColumns; - setAppState({ columns: actualColumns }); + let nextSettings = cleanColumnSettings(nextColumns, settings); + + // When columns are removed, reset the last column to auto width if only absolute + // width columns remain, to ensure the columns fill the available grid space + if (actualColumns.length < (columns?.length ?? 0)) { + nextSettings = adjustLastColumnWidth(actualColumns, nextSettings); + } + + setAppState({ columns: actualColumns, settings: nextSettings }); } return { onAddColumn, @@ -107,3 +92,94 @@ export function getStateColumnActions({ onSetColumns, }; } + +/** + * Helper function to provide a fallback to a single _source column if the given array of columns + * is empty, and removes _source if there are more than 1 columns given + * @param columns + * @param useNewFieldsApi should a new fields API be used + */ +function buildColumns(columns: string[], useNewFieldsApi = false) { + if (columns.length > 1 && columns.indexOf('_source') !== -1) { + return columns.filter((col) => col !== '_source'); + } else if (columns.length !== 0) { + return columns; + } + return useNewFieldsApi ? [] : ['_source']; +} + +function addColumn(columns: string[], columnName: string, useNewFieldsApi?: boolean) { + if (columns.includes(columnName)) { + return columns; + } + return buildColumns([...columns, columnName], useNewFieldsApi); +} + +function removeColumn(columns: string[], columnName: string, useNewFieldsApi?: boolean) { + if (!columns.includes(columnName)) { + return columns; + } + return buildColumns( + columns.filter((col) => col !== columnName), + useNewFieldsApi + ); +} + +function moveColumn(columns: string[], columnName: string, newIndex: number) { + if (newIndex < 0 || newIndex >= columns.length || !columns.includes(columnName)) { + return columns; + } + const modifiedColumns = [...columns]; + modifiedColumns.splice(modifiedColumns.indexOf(columnName), 1); // remove at old index + modifiedColumns.splice(newIndex, 0, columnName); // insert before new index + return modifiedColumns; +} + +function cleanColumnSettings( + columns: string[], + settings?: UnifiedDataTableSettings +): UnifiedDataTableSettings | undefined { + const columnSettings = settings?.columns; + + if (!columnSettings) { + return settings; + } + + const nextColumnSettings = columns.reduce>( + (acc, column) => (columnSettings[column] ? { ...acc, [column]: columnSettings[column] } : acc), + {} + ); + + return { ...settings, columns: nextColumnSettings }; +} + +function adjustLastColumnWidth( + columns: string[], + settings?: UnifiedDataTableSettings +): UnifiedDataTableSettings | undefined { + const columnSettings = settings?.columns; + + if (!columns.length || !columnSettings) { + return settings; + } + + const hasAutoWidthColumn = columns.some((colId) => columnSettings[colId]?.width == null); + + if (hasAutoWidthColumn) { + return settings; + } + + const lastColumn = columns[columns.length - 1]; + const lastColumnSettings = omit(columnSettings[lastColumn] ?? {}, 'width'); + const lastColumnSettingsOptional = Object.keys(lastColumnSettings).length + ? { [lastColumn]: lastColumnSettings } + : undefined; + + return { + ...settings, + columns: { + ...omit(columnSettings, lastColumn), + ...lastColumnSettingsOptional, + }, + }; +} diff --git a/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.test.tsx b/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.test.tsx index 63856a2c82ac2..92f072c2da472 100644 --- a/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.test.tsx +++ b/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.test.tsx @@ -108,7 +108,7 @@ describe('CompareDocuments', () => { "data-test-subj": "unifiedDataTableCompareDocuments", "gridStyle": Object { "border": "horizontal", - "cellPadding": "l", + "cellPadding": "s", "fontSize": "s", "header": "underline", "rowHover": "highlight", diff --git a/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.tsx b/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.tsx index 5679ac0f236b9..e636a88d1f841 100644 --- a/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.tsx +++ b/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.tsx @@ -24,7 +24,7 @@ import { AdditionalFieldGroups } from '@kbn/unified-field-list'; import { memoize } from 'lodash'; import React, { useMemo, useState } from 'react'; import useLocalStorage from 'react-use/lib/useLocalStorage'; -import { GRID_STYLE } from '../../constants'; +import { DATA_GRID_STYLE_DEFAULT } from '../../constants'; import { ComparisonControls } from './comparison_controls'; import { renderComparisonToolbar } from './comparison_toolbar'; import { useComparisonCellValue } from './hooks/use_comparison_cell_value'; @@ -55,7 +55,7 @@ export interface CompareDocumentsProps { const COMPARISON_ROW_HEIGHT: EuiDataGridRowHeightsOptions = { defaultHeight: 'auto' }; const COMPARISON_IN_MEMORY: EuiDataGridInMemory = { level: 'sorting' }; -const COMPARISON_GRID_STYLE: EuiDataGridStyle = { ...GRID_STYLE, stripes: undefined }; +const COMPARISON_GRID_STYLE: EuiDataGridStyle = { ...DATA_GRID_STYLE_DEFAULT, stripes: undefined }; const getStorageKey = (consumer: string, key: string) => `${consumer}:dataGridComparison${key}`; diff --git a/packages/kbn-unified-data-table/src/components/data_table.test.tsx b/packages/kbn-unified-data-table/src/components/data_table.test.tsx index 6366aa4445630..f78405f12be82 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.test.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table.test.tsx @@ -5,11 +5,10 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -import React from 'react'; +import React, { useCallback, useState } from 'react'; import { ReactWrapper } from 'enzyme'; import { EuiButton, - EuiCopy, EuiDataGrid, EuiDataGridCellValueElementProps, EuiDataGridCustomBodyProps, @@ -34,6 +33,10 @@ import { DatatableColumnType } from '@kbn/expressions-plugin/common'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { CELL_CLASS } from '../utils/get_render_cell_value'; +import { defaultTimeColumnWidth } from '../constants'; +import { useColumns } from '../hooks/use_data_grid_columns'; +import { capabilitiesServiceMock } from '@kbn/core-capabilities-browser-mocks'; +import { dataViewsMock } from '../../__mocks__/data_views'; const mockUseDataGridColumnsCellActions = jest.fn((prop: unknown) => []); jest.mock('@kbn/cell-actions', () => ({ @@ -91,6 +94,56 @@ const DataTable = (props: Partial) => ( ); +const capabilities = capabilitiesServiceMock.createStartContract().capabilities; + +const renderDataTable = (props: Partial) => { + const DataTableWrapped = () => { + const [columns, setColumns] = useState(props.columns ?? []); + const [settings, setSettings] = useState(props.settings); + + const { onSetColumns } = useColumns({ + capabilities, + dataView: dataViewMock, + dataViews: dataViewsMock, + setAppState: useCallback((state) => { + if (state.columns) { + setColumns(state.columns); + } + if (state.settings) { + setSettings(state.settings); + } + }, []), + useNewFieldsApi: true, + columns, + settings, + }); + + return ( + + { + setSettings({ + ...settings, + columns: { + ...settings?.columns, + [columnId]: { + width, + }, + }, + }); + }} + /> + + ); + }; + + render(); +}; + async function getComponent(props: UnifiedDataTableProps = getProps()) { const component = mountWithIntl(); await act(async () => { @@ -130,6 +183,23 @@ async function toggleDocSelection( } describe('UnifiedDataTable', () => { + const originalClipboard = global.window.navigator.clipboard; + + beforeAll(() => { + Object.defineProperty(navigator, 'clipboard', { + value: { + writeText: jest.fn(), + }, + writable: true, + }); + }); + + afterAll(() => { + Object.defineProperty(navigator, 'clipboard', { + value: originalClipboard, + }); + }); + afterEach(async () => { jest.clearAllMocks(); }); @@ -213,45 +283,55 @@ describe('UnifiedDataTable', () => { expect(getDisplayedDocNr(component)).toBe(5); }); - test('copying selected documents to clipboard', async () => { + test('copying selected documents to clipboard as JSON', async () => { await toggleDocSelection(component, esHitsMock[0]); findTestSubject(component, 'unifiedDataTableSelectionBtn').simulate('click'); - expect(component.find(EuiCopy).prop('textToCopy')).toMatchInlineSnapshot( - `"[{\\"_index\\":\\"i\\",\\"_id\\":\\"1\\",\\"_score\\":1,\\"_type\\":\\"_doc\\",\\"_source\\":{\\"date\\":\\"2020-20-01T12:12:12.123\\",\\"message\\":\\"test1\\",\\"bytes\\":20}}]"` + findTestSubject(component, 'dscGridCopySelectedDocumentsJSON').simulate('click'); + expect(navigator.clipboard.writeText).toHaveBeenCalledWith( + '[{"_index":"i","_id":"1","_score":1,"_type":"_doc","_source":{"date":"2020-20-01T12:12:12.123","message":"test1","bytes":20}}]' ); }); - }); - describe('edit field button', () => { - it('should render the edit field button if onFieldEdited is provided', async () => { - const component = await getComponent({ - ...getProps(), - columns: ['message'], - onFieldEdited: jest.fn(), - }); - expect(findTestSubject(component, 'dataGridHeaderCellActionGroup-message').exists()).toBe( - false - ); - findTestSubject(component, 'dataGridHeaderCell-message').find('button').simulate('click'); - expect(findTestSubject(component, 'dataGridHeaderCellActionGroup-message').exists()).toBe( - true + test('copying selected documents to clipboard as text', async () => { + await toggleDocSelection(component, esHitsMock[2]); + await toggleDocSelection(component, esHitsMock[1]); + findTestSubject(component, 'unifiedDataTableSelectionBtn').simulate('click'); + findTestSubject(component, 'unifiedDataTableCopyRowsAsText').simulate('click'); + expect(navigator.clipboard.writeText).toHaveBeenCalledWith( + '"\'@timestamp"\t"_index"\t"_score"\tbytes\tdate\textension\tmessage\tname\n-\ti\t1\t-\t"2020-20-01T12:12:12.124"\tjpg\t-\ttest2\n-\ti\t1\t50\t"2020-20-01T12:12:12.124"\tgif\t-\ttest3' ); - expect(findTestSubject(component, 'gridEditFieldButton').exists()).toBe(true); }); - it('should not render the edit field button if onFieldEdited is not provided', async () => { - const component = await getComponent({ + test('copying selected columns to clipboard as text', async () => { + component = await getComponent({ ...getProps(), - columns: ['message'], + columns: ['date', 'extension', 'name'], }); - expect(findTestSubject(component, 'dataGridHeaderCellActionGroup-message').exists()).toBe( - false - ); - findTestSubject(component, 'dataGridHeaderCell-message').find('button').simulate('click'); - expect(findTestSubject(component, 'dataGridHeaderCellActionGroup-message').exists()).toBe( - true + await toggleDocSelection(component, esHitsMock[2]); + await toggleDocSelection(component, esHitsMock[1]); + findTestSubject(component, 'unifiedDataTableSelectionBtn').simulate('click'); + findTestSubject(component, 'unifiedDataTableCopyRowsAsText').simulate('click'); + expect(navigator.clipboard.writeText).toHaveBeenCalledWith( + '"\'@timestamp"\tdate\textension\tname\n-\t"2020-20-01T12:12:12.124"\tjpg\ttest2\n-\t"2020-20-01T12:12:12.124"\tgif\ttest3' ); - expect(findTestSubject(component, 'gridEditFieldButton').exists()).toBe(false); + }); + }); + + describe('edit field button', () => { + it('should render the edit field button if onFieldEdited is provided', async () => { + renderDataTable({ columns: ['message'], onFieldEdited: jest.fn() }); + expect(screen.queryByTestId('dataGridHeaderCellActionGroup-message')).not.toBeInTheDocument(); + userEvent.click(screen.getByRole('button', { name: 'message' })); + expect(screen.getByTestId('dataGridHeaderCellActionGroup-message')).toBeInTheDocument(); + expect(screen.getByTestId('gridEditFieldButton')).toBeInTheDocument(); + }); + + it('should not render the edit field button if onFieldEdited is not provided', async () => { + renderDataTable({ columns: ['message'] }); + expect(screen.queryByTestId('dataGridHeaderCellActionGroup-message')).not.toBeInTheDocument(); + userEvent.click(screen.getByRole('button', { name: 'message' })); + expect(screen.getByTestId('dataGridHeaderCellActionGroup-message')).toBeInTheDocument(); + expect(screen.queryByTestId('gridEditFieldButton')).not.toBeInTheDocument(); }); }); @@ -382,16 +462,18 @@ describe('UnifiedDataTable', () => { "additionalControls": null, "showColumnSelector": false, "showDisplaySelector": Object { - "additionalDisplaySettings": , + "additionalDisplaySettings": + + , "allowDensity": false, "allowResetButton": false, "allowRowHeight": false, @@ -414,15 +496,17 @@ describe('UnifiedDataTable', () => { "additionalControls": null, "showColumnSelector": false, "showDisplaySelector": Object { - "additionalDisplaySettings": , + "additionalDisplaySettings": + + , "allowDensity": false, "allowResetButton": false, "allowRowHeight": false, @@ -700,7 +784,7 @@ describe('UnifiedDataTable', () => { expect(grid.hasClass('euiDataGrid--bordersHorizontal')).toBeTruthy(); expect(grid.hasClass('euiDataGrid--fontSizeSmall')).toBeTruthy(); - expect(grid.hasClass('euiDataGrid--paddingLarge')).toBeTruthy(); + expect(grid.hasClass('euiDataGrid--paddingSmall')).toBeTruthy(); expect(grid.hasClass('euiDataGrid--rowHoverHighlight')).toBeTruthy(); expect(grid.hasClass('euiDataGrid--headerUnderline')).toBeTruthy(); expect(grid.hasClass('euiDataGrid--stripes')).toBeTruthy(); @@ -748,14 +832,6 @@ describe('UnifiedDataTable', () => { }); describe('document comparison', () => { - const renderDataTable = (props: Partial) => { - render( - - - - ); - }; - const getSelectedDocumentsButton = () => screen.queryByTestId('unifiedDataTableSelectionBtn'); const selectDocument = (document: EsHitRecord) => @@ -875,4 +951,75 @@ describe('UnifiedDataTable', () => { expect(findTestSubject(component, 'dataGridHeaderCell-colorIndicator').exists()).toBeFalsy(); }); }); + + describe('columns', () => { + // Default column width in EUI is hardcoded to 100px for Jest envs + const EUI_DEFAULT_COLUMN_WIDTH = '100px'; + const getColumnHeader = (name: string) => screen.getByRole('columnheader', { name }); + const queryColumnHeader = (name: string) => screen.queryByRole('columnheader', { name }); + const getButton = (name: string) => screen.getByRole('button', { name }); + const queryButton = (name: string) => screen.queryByRole('button', { name }); + + it('should reset the last column to auto width if only absolute width columns remain', async () => { + renderDataTable({ + columns: ['message', 'extension', 'bytes'], + settings: { + columns: { + extension: { width: 50 }, + bytes: { width: 50 }, + }, + }, + }); + expect(getColumnHeader('message')).toHaveStyle({ width: EUI_DEFAULT_COLUMN_WIDTH }); + expect(getColumnHeader('extension')).toHaveStyle({ width: '50px' }); + expect(getColumnHeader('bytes')).toHaveStyle({ width: '50px' }); + userEvent.click(getButton('message')); + userEvent.click(getButton('Remove column'), undefined, { skipPointerEventsCheck: true }); + expect(queryColumnHeader('message')).not.toBeInTheDocument(); + expect(getColumnHeader('extension')).toHaveStyle({ width: '50px' }); + expect(getColumnHeader('bytes')).toHaveStyle({ width: EUI_DEFAULT_COLUMN_WIDTH }); + }); + + it('should not reset the last column to auto width when there are remaining auto width columns', async () => { + renderDataTable({ + columns: ['message', 'extension', 'bytes'], + settings: { + columns: { + bytes: { width: 50 }, + }, + }, + }); + expect(getColumnHeader('message')).toHaveStyle({ width: EUI_DEFAULT_COLUMN_WIDTH }); + expect(getColumnHeader('extension')).toHaveStyle({ width: EUI_DEFAULT_COLUMN_WIDTH }); + expect(getColumnHeader('bytes')).toHaveStyle({ width: '50px' }); + userEvent.click(getButton('message')); + userEvent.click(getButton('Remove column'), undefined, { skipPointerEventsCheck: true }); + expect(queryColumnHeader('message')).not.toBeInTheDocument(); + expect(getColumnHeader('extension')).toHaveStyle({ width: EUI_DEFAULT_COLUMN_WIDTH }); + expect(getColumnHeader('bytes')).toHaveStyle({ width: '50px' }); + }); + + it('should show the reset width button only for absolute width columns, and allow resetting to default width', async () => { + renderDataTable({ + columns: ['message', 'extension'], + settings: { + columns: { + '@timestamp': { width: 50 }, + extension: { width: 50 }, + }, + }, + }); + expect(getColumnHeader('@timestamp')).toHaveStyle({ width: '50px' }); + userEvent.click(getButton('@timestamp')); + userEvent.click(getButton('Reset width'), undefined, { skipPointerEventsCheck: true }); + expect(getColumnHeader('@timestamp')).toHaveStyle({ width: `${defaultTimeColumnWidth}px` }); + expect(getColumnHeader('message')).toHaveStyle({ width: EUI_DEFAULT_COLUMN_WIDTH }); + userEvent.click(getButton('message')); + expect(queryButton('Reset width')).not.toBeInTheDocument(); + expect(getColumnHeader('extension')).toHaveStyle({ width: '50px' }); + userEvent.click(getButton('extension')); + userEvent.click(getButton('Reset width'), undefined, { skipPointerEventsCheck: true }); + expect(getColumnHeader('extension')).toHaveStyle({ width: EUI_DEFAULT_COLUMN_WIDTH }); + }); + }); }); diff --git a/packages/kbn-unified-data-table/src/components/data_table.tsx b/packages/kbn-unified-data-table/src/components/data_table.tsx index 243b86b540865..96c5004c61a95 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table.tsx @@ -26,9 +26,10 @@ import { EuiDataGridInMemory, EuiDataGridControlColumn, EuiDataGridCustomBodyProps, - EuiDataGridToolBarVisibilityDisplaySelectorOptions, EuiDataGridStyle, EuiDataGridProps, + EuiHorizontalRule, + EuiDataGridToolBarVisibilityDisplaySelectorOptions, } from '@elastic/eui'; import type { DataView } from '@kbn/data-views-plugin/public'; import { @@ -45,6 +46,7 @@ import type { ThemeServiceStart } from '@kbn/react-kibana-context-common'; import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; import type { DocViewFilterFn } from '@kbn/unified-doc-viewer/types'; import { AdditionalFieldGroups } from '@kbn/unified-field-list'; +import { DATA_GRID_DENSITY_STYLE_MAP, useDataGridDensity } from '../hooks/use_data_grid_density'; import { UnifiedDataTableSettings, ValueToStringConverter, @@ -70,10 +72,11 @@ import { getSchemaDetectors } from './data_table_schema'; import { DataTableDocumentToolbarBtn } from './data_table_document_selection'; import { useRowHeightsOptions } from '../hooks/use_row_heights_options'; import { + DATA_GRID_STYLE_DEFAULT, DEFAULT_ROWS_PER_PAGE, - GRID_STYLE, ROWS_HEIGHT_OPTIONS, toolbarVisibility as toolbarVisibilityDefaults, + DataGridDensity, } from '../constants'; import { UnifiedDataTableFooter } from './data_table_footer'; import { UnifiedDataTableAdditionalDisplaySettings } from './data_table_additional_display_settings'; @@ -161,9 +164,9 @@ export interface UnifiedDataTableProps { */ onFilter?: DocViewFilterFn; /** - * Function triggered when a column is resized by the user + * Function triggered when a column is resized by the user, passes `undefined` for auto-width */ - onResize?: (colSettings: { columnId: string; width: number }) => void; + onResize?: (colSettings: { columnId: string; width: number | undefined }) => void; /** * Function to set all columns */ @@ -232,6 +235,14 @@ export interface UnifiedDataTableProps { * Update row height state */ onUpdateRowHeight?: (rowHeight: number) => void; + /** + * Density from state + */ + dataGridDensityState?: DataGridDensity; + /** + * Callback when the data grid density configuration is modified + */ + onUpdateDataGridDensity?: (dataGridDensity: DataGridDensity) => void; /** * Is text base lang mode enabled */ @@ -468,6 +479,8 @@ export const UnifiedDataTable = ({ cellContext, renderCellPopover, getRowIndicator, + dataGridDensityState, + onUpdateDataGridDensity, }: UnifiedDataTableProps) => { const { fieldFormats, toastNotifications, dataViewFieldEditor, uiSettings, storage, data } = services; @@ -480,7 +493,13 @@ export const UnifiedDataTable = ({ const docMap = useMemo(() => new Map(rows?.map((row) => [row.id, row]) ?? []), [rows]); const getDocById = useCallback((id: string) => docMap.get(id), [docMap]); const selectedDocsState = useSelectedDocs(docMap); - const { isDocSelected, hasSelectedDocs, selectedDocIds, replaceSelectedDocs } = selectedDocsState; + const { + isDocSelected, + hasSelectedDocs, + selectedDocsCount, + replaceSelectedDocs, + docIdsInSelectionOrder, + } = selectedDocsState; useEffect(() => { if (!hasSelectedDocs && isFilterActive) { @@ -604,6 +623,23 @@ export const UnifiedDataTable = ({ return getShouldShowFieldHandler(dataViewFields, dataView, showMultiFields); }, [dataView, showMultiFields]); + const { dataGridDensity, onChangeDataGridDensity } = useDataGridDensity({ + storage, + consumer, + dataGridDensityState, + onUpdateDataGridDensity, + }); + + const gridStyle = useMemo( + () => ({ + ...DATA_GRID_STYLE_DEFAULT, + ...DATA_GRID_DENSITY_STYLE_MAP[dataGridDensity], + onChange: onChangeDataGridDensity, + ...gridStyleOverride, + }), + [dataGridDensity, onChangeDataGridDensity, gridStyleOverride] + ); + /** * Cell rendering */ @@ -619,6 +655,7 @@ export const UnifiedDataTable = ({ maxEntries: maxDocFieldsDisplayed, externalCustomRenderers, isPlainRecord, + isCompressed: dataGridDensity === DataGridDensity.COMPACT, }), [ dataView, @@ -629,6 +666,7 @@ export const UnifiedDataTable = ({ fieldFormats, externalCustomRenderers, isPlainRecord, + dataGridDensity, ] ); @@ -772,6 +810,7 @@ export const UnifiedDataTable = ({ showColumnTokens, headerRowHeightLines, customGridColumnsConfiguration, + onResize, }), [ columnsMeta, @@ -786,6 +825,7 @@ export const UnifiedDataTable = ({ isPlainRecord, isSortEnabled, onFilter, + onResize, settings, showColumnTokens, toastNotifications, @@ -889,13 +929,13 @@ export const UnifiedDataTable = ({ ]); const additionalControls = useMemo(() => { - if (!externalAdditionalControls && !selectedDocIds.length) { + if (!externalAdditionalControls && !selectedDocsCount) { return null; } return ( <> - {Boolean(selectedDocIds.length) && ( + {Boolean(selectedDocsCount) && ( )} {externalAdditionalControls} ); }, [ - selectedDocIds, + selectedDocsCount, selectedDocsState, externalAdditionalControls, isPlainRecord, @@ -924,6 +966,8 @@ export const UnifiedDataTable = ({ fieldFormats, unifiedDataTableContextValue.pageIndex, unifiedDataTableContextValue.pageSize, + toastNotifications, + visibleColumns, ]); const renderCustomToolbarFn: EuiDataGridProps['renderCustomToolbar'] | undefined = useMemo( @@ -940,34 +984,41 @@ export const UnifiedDataTable = ({ [renderCustomToolbar, additionalControls] ); - const showDisplaySelector = useMemo(() => { - const options: EuiDataGridToolBarVisibilityDisplaySelectorOptions = {}; - - if (onUpdateRowHeight) { - options.allowDensity = false; + const showDisplaySelector = useMemo((): + | EuiDataGridToolBarVisibilityDisplaySelectorOptions + | undefined => { + if ( + !onUpdateDataGridDensity && + !onUpdateRowHeight && + !onUpdateHeaderRowHeight && + !onUpdateSampleSize + ) { + return; } - if (onUpdateRowHeight || onUpdateHeaderRowHeight || onUpdateSampleSize) { - options.allowRowHeight = false; - options.allowResetButton = false; - options.additionalDisplaySettings = ( - - ); - } - - return Object.keys(options).length ? options : undefined; + return { + allowDensity: Boolean(onUpdateDataGridDensity), + allowRowHeight: false, + allowResetButton: false, + additionalDisplaySettings: ( + <> + {onUpdateDataGridDensity ? : null} + + + ), + }; }, [ headerRowHeight, headerRowHeightLines, @@ -982,6 +1033,7 @@ export const UnifiedDataTable = ({ rowHeight, rowHeightLines, sampleSizeState, + onUpdateDataGridDensity, ]); const inMemory = useMemo(() => { @@ -1080,7 +1132,7 @@ export const UnifiedDataTable = ({ isPlainRecord={isPlainRecord} selectedFieldNames={visibleColumns} additionalFieldGroups={additionalFieldGroups} - selectedDocIds={selectedDocIds} + selectedDocIds={docIdsInSelectionOrder} schemaDetectors={schemaDetectors} forceShowAllFields={defaultColumns} showFullScreenButton={showFullScreenButton} @@ -1091,6 +1143,8 @@ export const UnifiedDataTable = ({ /> ) : ( servicesMock.dataViewFieldEditor.userPermissions.editIndexPattern(), onFilter: () => {}, + onResize: () => {}, }); expect(actual).toMatchSnapshot(); }); @@ -72,6 +73,7 @@ describe('Data table columns', function () { hasEditDataViewPermission: () => servicesMock.dataViewFieldEditor.userPermissions.editIndexPattern(), onFilter: () => {}, + onResize: () => {}, }); expect(actual).toMatchSnapshot(); }); @@ -99,6 +101,7 @@ describe('Data table columns', function () { message: { type: 'string', esType: 'keyword' }, timestamp: { type: 'date', esType: 'dateTime' }, }, + onResize: () => {}, }); expect(actual).toMatchSnapshot(); }); @@ -297,6 +300,7 @@ describe('Data table columns', function () { hasEditDataViewPermission: () => servicesMock.dataViewFieldEditor.userPermissions.editIndexPattern(), onFilter: () => {}, + onResize: () => {}, }); expect(actual).toMatchSnapshot(); }); @@ -324,6 +328,7 @@ describe('Data table columns', function () { hasEditDataViewPermission: () => servicesMock.dataViewFieldEditor.userPermissions.editIndexPattern(), onFilter: () => {}, + onResize: () => {}, }); expect(actual).toMatchSnapshot(); }); @@ -356,6 +361,7 @@ describe('Data table columns', function () { columnsMeta: { extension: { type: 'string' }, }, + onResize: () => {}, }); expect(gridColumns[1].schema).toBe('string'); }); @@ -386,6 +392,7 @@ describe('Data table columns', function () { columnsMeta: { var_test: { type: 'number' }, }, + onResize: () => {}, }); expect(gridColumns[1].schema).toBe('numeric'); }); @@ -412,6 +419,7 @@ describe('Data table columns', function () { extension: { type: 'string' }, message: { type: 'string', esType: 'keyword' }, }, + onResize: () => {}, }); const extensionGridColumn = gridColumns[0]; @@ -442,6 +450,7 @@ describe('Data table columns', function () { extension: { type: 'string' }, message: { type: 'string', esType: 'keyword' }, }, + onResize: () => {}, }); expect(customizedGridColumns).toMatchSnapshot(); @@ -484,6 +493,7 @@ describe('Data table columns', function () { }, hasEditDataViewPermission: () => servicesMock.dataViewFieldEditor.userPermissions.editIndexPattern(), + onResize: () => {}, }); const columnDisplayNames = customizedGridColumns.map((column) => column.displayAsText); expect(columnDisplayNames.includes('test_column_one')).toBeTruthy(); diff --git a/packages/kbn-unified-data-table/src/components/data_table_columns.tsx b/packages/kbn-unified-data-table/src/components/data_table_columns.tsx index 4528e323c2047..cb90e18054891 100644 --- a/packages/kbn-unified-data-table/src/components/data_table_columns.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table_columns.tsx @@ -12,6 +12,7 @@ import { type EuiDataGridColumn, type EuiDataGridColumnCellAction, EuiScreenReaderOnly, + EuiListGroupItemProps, } from '@elastic/eui'; import { type DataView, DataViewField } from '@kbn/data-views-plugin/public'; import { ToastsStart, IUiSettingsClient } from '@kbn/core/public'; @@ -30,8 +31,9 @@ import { import { buildCopyColumnNameButton, buildCopyColumnValuesButton } from './build_copy_column_button'; import { buildEditFieldButton } from './build_edit_field_button'; import { DataTableColumnHeader, DataTableTimeColumnHeader } from './data_table_column_header'; +import { UnifiedDataTableProps } from './data_table'; -const getColumnDisplayName = ( +export const getColumnDisplayName = ( columnName: string, dataViewFieldDisplayName: string | undefined, columnDisplay: string | undefined @@ -105,6 +107,7 @@ function buildEuiGridColumn({ headerRowHeight, customGridColumnsConfiguration, columnDisplay, + onResize, }: { numberOfColumns: number; columnName: string; @@ -126,6 +129,7 @@ function buildEuiGridColumn({ headerRowHeight?: number; customGridColumnsConfiguration?: CustomGridColumnsConfiguration; columnDisplay?: string; + onResize: UnifiedDataTableProps['onResize']; }) { const dataViewField = !isPlainRecord ? dataView.getFieldByName(columnName) @@ -142,6 +146,26 @@ function buildEuiGridColumn({ editField && dataViewField && buildEditFieldButton({ hasEditDataViewPermission, dataView, field: dataViewField, editField }); + const resetWidthButton: EuiListGroupItemProps | undefined = + onResize && columnWidth > 0 + ? { + // @ts-expect-error + // We need to force a key here because EuiListGroup uses the array index as a key by default, + // which causes re-render issues with conditional items like this one, and can result in + // incorrect attributes (e.g. title) on the HTML element as well as test failures + key: 'reset-width', + label: i18n.translate('unifiedDataTable.grid.resetColumnWidthButton', { + defaultMessage: 'Reset width', + }), + iconType: 'refresh', + size: 'xs', + iconProps: { size: 'm' }, + onClick: () => { + onResize({ columnId: columnName, width: undefined }); + }, + 'data-test-subj': 'unifiedDataTableResetColumnWidth', + } + : undefined; const columnDisplayName = getColumnDisplayName( columnName, @@ -193,6 +217,7 @@ function buildEuiGridColumn({ showMoveLeft: !defaultColumns, showMoveRight: !defaultColumns, additional: [ + ...(resetWidthButton ? [resetWidthButton] : []), ...(columnName === '__source' ? [] : [ @@ -268,6 +293,7 @@ export function getEuiGridColumns({ showColumnTokens, headerRowHeightLines, customGridColumnsConfiguration, + onResize, }: { columns: string[]; columnsCellActions?: EuiDataGridColumnCellAction[][]; @@ -290,6 +316,7 @@ export function getEuiGridColumns({ showColumnTokens?: boolean; headerRowHeightLines: number; customGridColumnsConfiguration?: CustomGridColumnsConfiguration; + onResize: UnifiedDataTableProps['onResize']; }) { const getColWidth = (column: string) => settings?.columns?.[column]?.width ?? 0; const headerRowHeight = deserializeHeaderRowHeight(headerRowHeightLines); @@ -317,6 +344,7 @@ export function getEuiGridColumns({ headerRowHeight, customGridColumnsConfiguration, columnDisplay: settings?.columns?.[column]?.display, + onResize, }) ); } diff --git a/packages/kbn-unified-data-table/src/components/data_table_copy_rows_as_json.tsx b/packages/kbn-unified-data-table/src/components/data_table_copy_rows_as_json.tsx new file mode 100644 index 0000000000000..5e81a8e0a42ed --- /dev/null +++ b/packages/kbn-unified-data-table/src/components/data_table_copy_rows_as_json.tsx @@ -0,0 +1,58 @@ +/* + * 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, { useContext, useState } from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { EuiContextMenuItem } from '@elastic/eui'; +import type { ToastsStart } from '@kbn/core/public'; +import { copyRowsAsJsonToClipboard } from '../utils/copy_value_to_clipboard'; +import { UnifiedDataTableContext } from '../table_context'; + +interface DataTableCopyRowsAsJsonProps { + toastNotifications: ToastsStart; + onCompleted: () => void; +} + +export const DataTableCopyRowsAsJson: React.FC = ({ + toastNotifications, + onCompleted, +}) => { + const [isProcessing, setIsProcessing] = useState(false); + const { rows, selectedDocsState, isPlainRecord } = useContext(UnifiedDataTableContext); + const { getSelectedDocsOrderedByRows } = selectedDocsState; + + return ( + { + setIsProcessing(true); + await copyRowsAsJsonToClipboard({ + // preserving the original order of rows rather than the order of selecting rows + selectedRows: getSelectedDocsOrderedByRows(rows), + toastNotifications, + }); + setIsProcessing(false); + onCompleted(); + }} + > + {isPlainRecord ? ( + + ) : ( + + )} + + ); +}; diff --git a/packages/kbn-unified-data-table/src/components/data_table_copy_rows_as_text.tsx b/packages/kbn-unified-data-table/src/components/data_table_copy_rows_as_text.tsx new file mode 100644 index 0000000000000..b0089193de82f --- /dev/null +++ b/packages/kbn-unified-data-table/src/components/data_table_copy_rows_as_text.tsx @@ -0,0 +1,76 @@ +/* + * 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, { useContext, useState } from 'react'; +import { uniq } from 'lodash'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { EuiContextMenuItem } from '@elastic/eui'; +import type { ToastsStart } from '@kbn/core/public'; +import { calcFieldCounts } from '@kbn/discover-utils'; +import { copyRowsAsTextToClipboard } from '../utils/copy_value_to_clipboard'; +import { UnifiedDataTableContext } from '../table_context'; + +interface DataTableCopyRowsAsTextProps { + toastNotifications: ToastsStart; + columns: string[]; + onCompleted: () => void; +} + +export const DataTableCopyRowsAsText: React.FC = ({ + toastNotifications, + columns, + onCompleted, +}) => { + const [isProcessing, setIsProcessing] = useState(false); + const { valueToStringConverter, dataView, rows, selectedDocsState } = + useContext(UnifiedDataTableContext); + const { isDocSelected } = selectedDocsState; + + return ( + { + setIsProcessing(true); + + const outputColumns = columns.reduce((acc, column) => { + if (column === '_source') { + // split Document column into individual columns + const fieldCounts = calcFieldCounts(rows); + acc.push(...Object.keys(fieldCounts).sort()); + return acc; + } + acc.push(column); + return acc; + }, [] as string[]); + + await copyRowsAsTextToClipboard({ + columns: uniq(outputColumns), + // preserving the original order of rows rather than the order of selecting rows + selectedRowIndices: rows.reduce((acc, row, index) => { + if (isDocSelected(row.id)) { + acc.push(index); + } + return acc; + }, [] as number[]), + valueToStringConverter, + toastNotifications, + dataView, + }); + setIsProcessing(false); + onCompleted(); + }} + > + + + ); +}; diff --git a/packages/kbn-unified-data-table/src/components/data_table_document_selection.test.tsx b/packages/kbn-unified-data-table/src/components/data_table_document_selection.test.tsx index a1c39158f2b8d..fa2ec2f6fcbe2 100644 --- a/packages/kbn-unified-data-table/src/components/data_table_document_selection.test.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table_document_selection.test.tsx @@ -203,8 +203,18 @@ describe('document selection', () => { fieldFormats: servicesMock.fieldFormats, pageIndex: 0, pageSize: 2, + toastNotifications: servicesMock.toastNotifications, + columns: ['test'], }; - const component = mountWithIntl(); + const contextMock = { + ...dataTableContextMock, + selectedDocsState: props.selectedDocsState, + }; + const component = mountWithIntl( + + + + ); const button = findTestSubject(component, 'unifiedDataTableSelectionBtn'); expect(button.length).toBe(1); expect(button.text()).toBe('Selected2'); @@ -238,8 +248,18 @@ describe('document selection', () => { fieldFormats: servicesMock.fieldFormats, pageIndex: 0, pageSize: 2, + toastNotifications: servicesMock.toastNotifications, + columns: ['test'], + }; + const contextMock = { + ...dataTableContextMock, + selectedDocsState: props.selectedDocsState, }; - const component = mountWithIntl(); + const component = mountWithIntl( + + + + ); expect(findTestSubject(component, 'unifiedDataTableSelectionBtn').text()).toBe('Selected1'); expect(findTestSubject(component, 'dscGridSelectAllDocs').exists()).toBe(false); @@ -257,8 +277,18 @@ describe('document selection', () => { fieldFormats: servicesMock.fieldFormats, pageIndex: 0, pageSize: 2, + toastNotifications: servicesMock.toastNotifications, + columns: ['test'], }; - const component = mountWithIntl(); + const contextMock = { + ...dataTableContextMock, + selectedDocsState: props.selectedDocsState, + }; + const component = mountWithIntl( + + + + ); expect(findTestSubject(component, 'unifiedDataTableSelectionBtn').text()).toBe('Selected2'); const button = findTestSubject(component, 'dscGridSelectAllDocs'); @@ -283,8 +313,18 @@ describe('document selection', () => { fieldFormats: servicesMock.fieldFormats, pageIndex: 1, pageSize: 2, + toastNotifications: servicesMock.toastNotifications, + columns: ['test'], }; - const component = mountWithIntl(); + const contextMock = { + ...dataTableContextMock, + selectedDocsState: props.selectedDocsState, + }; + const component = mountWithIntl( + + + + ); expect(findTestSubject(component, 'unifiedDataTableSelectionBtn').text()).toBe('Selected2'); expect(findTestSubject(component, 'dscGridSelectAllDocs').exists()).toBe(true); @@ -302,8 +342,18 @@ describe('document selection', () => { fieldFormats: servicesMock.fieldFormats, pageIndex: 1, pageSize: 2, + toastNotifications: servicesMock.toastNotifications, + columns: ['test'], }; - const component = mountWithIntl(); + const contextMock = { + ...dataTableContextMock, + selectedDocsState: props.selectedDocsState, + }; + const component = mountWithIntl( + + + + ); expect(findTestSubject(component, 'unifiedDataTableSelectionBtn').text()).toBe( `Selected${dataTableContextMock.rows.length}` ); @@ -324,6 +374,8 @@ describe('document selection', () => { fieldFormats: servicesMock.fieldFormats, pageIndex: 0, pageSize: 2, + toastNotifications: servicesMock.toastNotifications, + columns: ['test'], }; const renderCompareBtn = ({ @@ -332,11 +384,18 @@ describe('document selection', () => { }: Partial[0]> = {}) => { render( - + + + ); return { diff --git a/packages/kbn-unified-data-table/src/components/data_table_document_selection.tsx b/packages/kbn-unified-data-table/src/components/data_table_document_selection.tsx index 2a34c4866cb86..7ca3c0f1f681c 100644 --- a/packages/kbn-unified-data-table/src/components/data_table_document_selection.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table_document_selection.tsx @@ -12,7 +12,6 @@ import { EuiCheckbox, EuiContextMenuItem, EuiContextMenuPanel, - EuiCopy, EuiDataGridCellValueElementProps, EuiDataGridToolbarControl, EuiPopover, @@ -25,9 +24,12 @@ import { import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; import { css } from '@emotion/react'; +import type { ToastsStart } from '@kbn/core-notifications-browser'; import type { DataTableRecord } from '@kbn/discover-utils/types'; import type { UseSelectedDocsState } from '../hooks/use_selected_docs'; import { UnifiedDataTableContext } from '../table_context'; +import { DataTableCopyRowsAsText } from './data_table_copy_rows_as_text'; +import { DataTableCopyRowsAsJson } from './data_table_copy_rows_as_json'; import { useControlColumn } from '../hooks/use_control_column'; export const SelectButton = (props: EuiDataGridCellValueElementProps) => { @@ -69,15 +71,17 @@ export const SelectButton = (props: EuiDataGridCellValueElementProps) => { export const SelectAllButton = () => { const { selectedDocsState, pageIndex, pageSize, rows } = useContext(UnifiedDataTableContext); - const { getCountOfSelectedDocs, deselectSomeDocs, selectMoreDocs } = selectedDocsState; + const { getCountOfFilteredSelectedDocs, deselectSomeDocs, selectMoreDocs } = selectedDocsState; const docIdsFromCurrentPage = useMemo(() => { return getDocIdsForCurrentPage(rows, pageIndex, pageSize); }, [rows, pageIndex, pageSize]); const countOfSelectedDocs = useMemo(() => { - return docIdsFromCurrentPage?.length ? getCountOfSelectedDocs(docIdsFromCurrentPage) : 0; - }, [docIdsFromCurrentPage, getCountOfSelectedDocs]); + return docIdsFromCurrentPage?.length + ? getCountOfFilteredSelectedDocs(docIdsFromCurrentPage) + : 0; + }, [docIdsFromCurrentPage, getCountOfFilteredSelectedDocs]); const isIndeterminateForCurrentPage = useMemo(() => { if (docIdsFromCurrentPage?.length) { @@ -147,6 +151,8 @@ export function DataTableDocumentToolbarBtn({ fieldFormats, pageIndex, pageSize, + toastNotifications, + columns, }: { isPlainRecord: boolean; isFilterActive: boolean; @@ -158,56 +164,50 @@ export function DataTableDocumentToolbarBtn({ fieldFormats: FieldFormatsStart; pageIndex: number | undefined; pageSize: number | undefined; + toastNotifications: ToastsStart; + columns: string[]; }) { const [isSelectionPopoverOpen, setIsSelectionPopoverOpen] = useState(false); - const { selectAllDocs, clearAllSelectedDocs, isDocSelected, selectedDocIds } = selectedDocsState; + const { selectAllDocs, clearAllSelectedDocs, selectedDocsCount, docIdsInSelectionOrder } = + selectedDocsState; + + const closePopover = useCallback(() => { + setIsSelectionPopoverOpen(false); + }, [setIsSelectionPopoverOpen]); const shouldSuggestToSelectAll = useMemo(() => { - const canSelectMore = selectedDocIds.length < rows.length && rows.length > 1; + const canSelectMore = selectedDocsCount < rows.length && rows.length > 1; if (typeof pageSize !== 'number' || isFilterActive || !canSelectMore) { return false; } - return selectedDocIds.length >= pageSize; - }, [rows, pageSize, selectedDocIds.length, isFilterActive]); + return selectedDocsCount >= pageSize; + }, [rows, pageSize, selectedDocsCount, isFilterActive]); const getMenuItems = useCallback(() => { return [ // Compare selected documents - ...(enableComparisonMode && selectedDocIds.length > 1 + ...(enableComparisonMode && selectedDocsCount > 1 ? [ , ] : []), - // Copy results to clipboard (JSON) - isDocSelected(row.id)).map((row) => row.raw)) - : '' - } - > - {(copy) => ( - - {isPlainRecord ? ( - - ) : ( - - )} - - )} - , + // Copy results to clipboard as text + , + // Copy results to clipboard as JSON + , isFilterActive ? ( // Show all documents { - setIsSelectionPopoverOpen(false); + closePopover(); setIsFilterActive(false); }} > @@ -238,7 +238,7 @@ export function DataTableDocumentToolbarBtn({ key="showSelectedDocuments" icon="eye" onClick={() => { - setIsSelectionPopoverOpen(false); + closePopover(); setIsFilterActive(true); }} > @@ -261,7 +261,7 @@ export function DataTableDocumentToolbarBtn({ key="clearSelection" icon="cross" onClick={() => { - setIsSelectionPopoverOpen(false); + closePopover(); clearAllSelectedDocs(); setIsFilterActive(false); }} @@ -272,13 +272,15 @@ export function DataTableDocumentToolbarBtn({ }, [ isFilterActive, isPlainRecord, - rows, setIsFilterActive, - isDocSelected, clearAllSelectedDocs, - selectedDocIds, + selectedDocsCount, + docIdsInSelectionOrder, enableComparisonMode, setIsCompareActive, + toastNotifications, + columns, + closePopover, ]); const toggleSelectionToolbar = useCallback( @@ -296,12 +298,12 @@ export function DataTableDocumentToolbarBtn({ iconSide="left" iconType="arrowDown" onClick={toggleSelectionToolbar} - data-selected-documents={selectedDocIds.length} + data-selected-documents={selectedDocsCount} data-test-subj="unifiedDataTableSelectionBtn" isSelected={isFilterActive} badgeContent={fieldFormats .getDefaultInstance(KBN_FIELD_TYPES.NUMBER, [ES_FIELD_TYPES.INTEGER]) - .convert(selectedDocIds.length)} + .convert(selectedDocsCount)} css={css` .euiButtonEmpty__content { flex-direction: row-reverse; diff --git a/packages/kbn-unified-data-table/src/components/source_document.tsx b/packages/kbn-unified-data-table/src/components/source_document.tsx index 3726159a6b2ea..952ca2d6103be 100644 --- a/packages/kbn-unified-data-table/src/components/source_document.tsx +++ b/packages/kbn-unified-data-table/src/components/source_document.tsx @@ -37,6 +37,7 @@ export function SourceDocument({ fieldFormats, dataTestSubj = 'discoverCellDescriptionList', className, + isCompressed = true, }: { useTopLevelObjectColumns: boolean; row: DataTableRecord; @@ -48,6 +49,7 @@ export function SourceDocument({ fieldFormats: FieldFormatsStart; dataTestSubj?: string; className?: string; + isCompressed?: boolean; }) { const pairs: FormattedHit = useTopLevelObjectColumns ? getTopLevelObjectPairs(row.raw, columnId, dataView, shouldShowFieldHandler).slice( @@ -59,7 +61,7 @@ export function SourceDocument({ return ( diff --git a/packages/kbn-unified-data-table/src/constants.ts b/packages/kbn-unified-data-table/src/constants.ts index c7cf1793039a5..e795b170dbc0b 100644 --- a/packages/kbn-unified-data-table/src/constants.ts +++ b/packages/kbn-unified-data-table/src/constants.ts @@ -5,13 +5,12 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -import { EuiDataGridStyle } from '@elastic/eui'; +import type { EuiDataGridStyle } from '@elastic/eui'; export const DEFAULT_CONTROL_COLUMN_WIDTH = 24; export const DEFAULT_ROWS_PER_PAGE = 100; export const MAX_LOADED_GRID_ROWS = 10000; - export const ROWS_PER_PAGE_OPTIONS = [10, 25, 50, DEFAULT_ROWS_PER_PAGE, 250, 500]; /** * Row height might be a value from -1 to 20 @@ -29,13 +28,27 @@ export const defaultMonacoEditorWidth = 370; export const defaultTimeColumnWidth = 212; export const kibanaJSON = 'kibana-json'; -export const GRID_STYLE: EuiDataGridStyle = { - border: 'horizontal', +export const DATA_GRID_STYLE_COMPACT: EuiDataGridStyle = { + cellPadding: 's', fontSize: 's', +}; + +export const DATA_GRID_STYLE_NORMAL: EuiDataGridStyle = { + cellPadding: 'm', + fontSize: 'm', +}; + +export const DATA_GRID_STYLE_EXPANDED: EuiDataGridStyle = { cellPadding: 'l', + fontSize: 'l', +}; + +export const DATA_GRID_STYLE_DEFAULT: EuiDataGridStyle = { + ...DATA_GRID_STYLE_COMPACT, + border: 'horizontal', + stripes: true, rowHover: 'highlight', header: 'underline', - stripes: true, }; export const toolbarVisibility = { @@ -44,3 +57,9 @@ export const toolbarVisibility = { allowReorder: true, }, }; + +export enum DataGridDensity { + COMPACT = 'compact', + NORMAL = 'normal', + EXPANDED = 'expanded', +} diff --git a/packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts b/packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts index 088f7b0491c69..4346d23a6584f 100644 --- a/packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts +++ b/packages/kbn-unified-data-table/src/hooks/use_data_grid_columns.ts @@ -12,16 +12,22 @@ import type { DataView, DataViewsContract } from '@kbn/data-views-plugin/public' import { Capabilities } from '@kbn/core/public'; import { isEqual } from 'lodash'; import { getStateColumnActions } from '../components/actions/columns'; +import { UnifiedDataTableSettings } from '../types'; -interface UseColumnsProps { +export interface UseColumnsProps { capabilities: Capabilities; dataView: DataView; dataViews: DataViewsContract; useNewFieldsApi: boolean; - setAppState: (state: { columns: string[]; sort?: string[][] }) => void; + setAppState: (state: { + columns: string[]; + sort?: string[][]; + settings?: UnifiedDataTableSettings; + }) => void; columns?: string[]; sort?: string[][]; defaultOrder?: string; + settings?: UnifiedDataTableSettings; } export const useColumns = ({ @@ -33,6 +39,7 @@ export const useColumns = ({ columns, sort, defaultOrder = 'desc', + settings, }: UseColumnsProps) => { const [usedColumns, setUsedColumns] = useState(getColumns(columns, useNewFieldsApi)); useEffect(() => { @@ -53,6 +60,7 @@ export const useColumns = ({ columns: usedColumns, sort, defaultOrder, + settings, }), [ capabilities, @@ -60,6 +68,7 @@ export const useColumns = ({ dataViews, defaultOrder, setAppState, + settings, sort, useNewFieldsApi, usedColumns, diff --git a/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.test.tsx b/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.test.tsx new file mode 100644 index 0000000000000..8a6e3c96477ea --- /dev/null +++ b/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.test.tsx @@ -0,0 +1,75 @@ +/* + * 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 type { Storage } from '@kbn/kibana-utils-plugin/public'; +import { renderHook } from '@testing-library/react-hooks'; +import { useDataGridDensity } from './use_data_grid_density'; +import { DATA_GRID_STYLE_EXPANDED, DataGridDensity } from '../constants'; + +const localStorageMock = { + get: jest.fn(), + set: jest.fn(), +}; + +describe('useDataGridDensity', () => { + beforeEach(() => { + localStorageMock.get.mockClear(); + localStorageMock.set.mockClear(); + }); + + it('should read from local storage', () => { + localStorageMock.get.mockReturnValue(DataGridDensity.NORMAL); + const { result } = renderHook(() => + useDataGridDensity({ + storage: localStorageMock as unknown as Storage, + consumer: 'discover', + }) + ); + const { + current: { dataGridDensity }, + } = result; + expect(dataGridDensity).toBe(DataGridDensity.NORMAL); + }); + + it('should update local storage when onChangeDataGridDensity is called', () => { + const { result } = renderHook(() => + useDataGridDensity({ + storage: localStorageMock as unknown as Storage, + consumer: 'discover', + }) + ); + const { + current: { onChangeDataGridDensity }, + } = result; + + onChangeDataGridDensity(DATA_GRID_STYLE_EXPANDED); + + expect(localStorageMock.set).toBeCalledWith( + 'discover:dataGridDensity', + DataGridDensity.EXPANDED + ); + }); + + it('should call provided onUpdateDataGridDensity with the updated value', () => { + const onUpdateDataGridDensity = jest.fn(); + const { result } = renderHook(() => + useDataGridDensity({ + storage: localStorageMock as unknown as Storage, + consumer: 'discover', + onUpdateDataGridDensity, + }) + ); + const { + current: { onChangeDataGridDensity }, + } = result; + + onChangeDataGridDensity(DATA_GRID_STYLE_EXPANDED); + + expect(onUpdateDataGridDensity).toBeCalledWith(DataGridDensity.EXPANDED); + }); +}); diff --git a/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.ts b/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.ts new file mode 100644 index 0000000000000..a53f95e23fb85 --- /dev/null +++ b/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.ts @@ -0,0 +1,68 @@ +/* + * 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 type { EuiDataGridStyle } from '@elastic/eui'; +import type { Storage } from '@kbn/kibana-utils-plugin/public'; +import { useCallback, useMemo } from 'react'; +import { + DATA_GRID_STYLE_COMPACT, + DATA_GRID_STYLE_EXPANDED, + DATA_GRID_STYLE_NORMAL, + DataGridDensity, +} from '../constants'; + +export const DATA_GRID_DENSITY_STYLE_MAP = { + [DataGridDensity.COMPACT]: DATA_GRID_STYLE_COMPACT, + [DataGridDensity.NORMAL]: DATA_GRID_STYLE_NORMAL, + [DataGridDensity.EXPANDED]: DATA_GRID_STYLE_EXPANDED, +}; + +interface UseDataGridDensityProps { + storage: Storage; + consumer: string; + dataGridDensityState?: DataGridDensity; + onUpdateDataGridDensity?: (density: DataGridDensity) => void; +} + +export const DATA_GRID_DENSITY_STORAGE_KEY = 'dataGridDensity'; + +export function getDensityFromStyle(style: EuiDataGridStyle) { + return style.cellPadding === DATA_GRID_STYLE_COMPACT.cellPadding && + style.fontSize === DATA_GRID_STYLE_COMPACT.fontSize + ? DataGridDensity.COMPACT + : style.cellPadding === DATA_GRID_STYLE_NORMAL.cellPadding && + style.fontSize === DATA_GRID_STYLE_NORMAL.fontSize + ? DataGridDensity.NORMAL + : DataGridDensity.EXPANDED; +} + +export const useDataGridDensity = ({ + storage, + consumer, + dataGridDensityState, + onUpdateDataGridDensity, +}: UseDataGridDensityProps) => { + const storageKey = `${consumer}:${DATA_GRID_DENSITY_STORAGE_KEY}`; + const dataGridDensity = useMemo(() => { + return dataGridDensityState ?? storage.get(storageKey) ?? DataGridDensity.COMPACT; + }, [dataGridDensityState, storage, storageKey]); + + const onChangeDataGridDensity = useCallback( + (gridStyle: EuiDataGridStyle) => { + const newDensity = getDensityFromStyle(gridStyle); + storage.set(storageKey, newDensity); + onUpdateDataGridDensity?.(newDensity); + }, + [storageKey, storage, onUpdateDataGridDensity] + ); + + return { + dataGridDensity, + onChangeDataGridDensity, + }; +}; diff --git a/packages/kbn-unified-data-table/src/hooks/use_selected_docs.test.ts b/packages/kbn-unified-data-table/src/hooks/use_selected_docs.test.ts index 9dac8b38f42a7..1d6170fea014e 100644 --- a/packages/kbn-unified-data-table/src/hooks/use_selected_docs.test.ts +++ b/packages/kbn-unified-data-table/src/hooks/use_selected_docs.test.ts @@ -20,12 +20,10 @@ describe('useSelectedDocs', () => { test('should have a correct default state', () => { const { result } = renderHook(() => useSelectedDocs(docsMap)); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [], - hasSelectedDocs: false, - }) - ); + expect(result.current.hasSelectedDocs).toBe(false); + expect(result.current.selectedDocsCount).toBe(0); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([]); + expect(result.current.docIdsInSelectionOrder).toEqual([]); }); test('should toggleDocSelection correctly', () => { @@ -35,12 +33,10 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[0].id); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[0].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(1); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[0]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[0].id]); expect(result.current.isDocSelected(docs[0].id)).toBe(true); expect(result.current.isDocSelected(docs[1].id)).toBe(false); @@ -49,12 +45,10 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[1].id); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[0].id, docs[1].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(2); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[0], docs[1]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[0].id, docs[1].id]); expect(result.current.isDocSelected(docs[0].id)).toBe(true); expect(result.current.isDocSelected(docs[1].id)).toBe(true); @@ -63,12 +57,10 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[0].id); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[1].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(1); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[1]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[1].id]); expect(result.current.isDocSelected(docs[0].id)).toBe(false); expect(result.current.isDocSelected(docs[1].id)).toBe(true); @@ -77,12 +69,10 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[1].id); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [], - hasSelectedDocs: false, - }) - ); + expect(result.current.hasSelectedDocs).toBe(false); + expect(result.current.selectedDocsCount).toBe(0); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([]); + expect(result.current.docIdsInSelectionOrder).toEqual([]); expect(result.current.isDocSelected(docs[0].id)).toBe(false); expect(result.current.isDocSelected(docs[1].id)).toBe(false); @@ -96,23 +86,19 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[1].id); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[0].id, docs[1].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(2); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[0], docs[1]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[0].id, docs[1].id]); act(() => { - result.current.replaceSelectedDocs([docs[1].id, docs[2].id]); + result.current.replaceSelectedDocs([docs[2].id, docs[1].id]); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[1].id, docs[2].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(2); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[1], docs[2]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[2].id, docs[1].id]); expect(result.current.isDocSelected(docs[0].id)).toBe(false); expect(result.current.isDocSelected(docs[1].id)).toBe(true); @@ -126,12 +112,10 @@ describe('useSelectedDocs', () => { result.current.selectAllDocs(); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: docs.map((doc) => doc.id), - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(docs.length); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual(docs); + expect(result.current.docIdsInSelectionOrder).toEqual(docs.map((doc) => doc.id)); expect(result.current.isDocSelected(docs[0].id)).toBe(true); expect(result.current.isDocSelected(docs[docs.length - 1].id)).toBe(true); @@ -145,23 +129,19 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[1].id); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[0].id, docs[1].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(2); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[0], docs[1]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[0].id, docs[1].id]); act(() => { result.current.selectMoreDocs([docs[1].id, docs[2].id]); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[0].id, docs[1].id, docs[2].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(3); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[0], docs[1], docs[2]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[0].id, docs[1].id, docs[2].id]); expect(result.current.isDocSelected(docs[0].id)).toBe(true); expect(result.current.isDocSelected(docs[1].id)).toBe(true); @@ -177,23 +157,19 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[2].id); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[0].id, docs[1].id, docs[2].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(3); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[0], docs[1], docs[2]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[0].id, docs[1].id, docs[2].id]); act(() => { result.current.deselectSomeDocs([docs[0].id, docs[2].id]); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[1].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(1); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[1]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[1].id]); expect(result.current.isDocSelected(docs[0].id)).toBe(false); expect(result.current.isDocSelected(docs[1].id)).toBe(true); @@ -208,29 +184,25 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[1].id); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [docs[0].id, docs[1].id], - hasSelectedDocs: true, - }) - ); + expect(result.current.hasSelectedDocs).toBe(true); + expect(result.current.selectedDocsCount).toBe(2); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([docs[0], docs[1]]); + expect(result.current.docIdsInSelectionOrder).toEqual([docs[0].id, docs[1].id]); act(() => { result.current.clearAllSelectedDocs(); }); - expect(result.current).toEqual( - expect.objectContaining({ - selectedDocIds: [], - hasSelectedDocs: false, - }) - ); + expect(result.current.hasSelectedDocs).toBe(false); + expect(result.current.selectedDocsCount).toBe(0); + expect(result.current.getSelectedDocsOrderedByRows(docs)).toEqual([]); + expect(result.current.docIdsInSelectionOrder).toEqual([]); expect(result.current.isDocSelected(docs[0].id)).toBe(false); expect(result.current.isDocSelected(docs[1].id)).toBe(false); }); - test('should getCountOfSelectedDocs correctly', () => { + test('should getCountOfFilteredSelectedDocs correctly', () => { const { result } = renderHook(() => useSelectedDocs(docsMap)); act(() => { @@ -238,16 +210,16 @@ describe('useSelectedDocs', () => { result.current.toggleDocSelection(docs[1].id); }); - expect(result.current.getCountOfSelectedDocs([docs[0].id, docs[1].id])).toBe(2); - expect(result.current.getCountOfSelectedDocs([docs[2].id, docs[3].id])).toBe(0); + expect(result.current.getCountOfFilteredSelectedDocs([docs[0].id, docs[1].id])).toBe(2); + expect(result.current.getCountOfFilteredSelectedDocs([docs[2].id, docs[3].id])).toBe(0); act(() => { result.current.toggleDocSelection(docs[0].id); }); - expect(result.current.getCountOfSelectedDocs([docs[0].id, docs[1].id])).toBe(1); - expect(result.current.getCountOfSelectedDocs([docs[1].id])).toBe(1); - expect(result.current.getCountOfSelectedDocs([docs[0].id])).toBe(0); - expect(result.current.getCountOfSelectedDocs([docs[2].id, docs[3].id])).toBe(0); + expect(result.current.getCountOfFilteredSelectedDocs([docs[0].id, docs[1].id])).toBe(1); + expect(result.current.getCountOfFilteredSelectedDocs([docs[1].id])).toBe(1); + expect(result.current.getCountOfFilteredSelectedDocs([docs[0].id])).toBe(0); + expect(result.current.getCountOfFilteredSelectedDocs([docs[2].id, docs[3].id])).toBe(0); }); }); diff --git a/packages/kbn-unified-data-table/src/hooks/use_selected_docs.ts b/packages/kbn-unified-data-table/src/hooks/use_selected_docs.ts index c61238bd3f778..c70e74f1abdaa 100644 --- a/packages/kbn-unified-data-table/src/hooks/use_selected_docs.ts +++ b/packages/kbn-unified-data-table/src/hooks/use_selected_docs.ts @@ -11,15 +11,17 @@ import type { DataTableRecord } from '@kbn/discover-utils'; export interface UseSelectedDocsState { isDocSelected: (docId: string) => boolean; - getCountOfSelectedDocs: (docIds: string[]) => number; + getCountOfFilteredSelectedDocs: (docIds: string[]) => number; hasSelectedDocs: boolean; - selectedDocIds: string[]; + selectedDocsCount: number; + docIdsInSelectionOrder: string[]; toggleDocSelection: (docId: string) => void; selectAllDocs: () => void; selectMoreDocs: (docIds: string[]) => void; deselectSomeDocs: (docIds: string[]) => void; replaceSelectedDocs: (docIds: string[]) => void; clearAllSelectedDocs: () => void; + getSelectedDocsOrderedByRows: (rows: DataTableRecord[]) => DataTableRecord[]; } export const useSelectedDocs = (docMap: Map): UseSelectedDocsState => { @@ -70,43 +72,53 @@ export const useSelectedDocs = (docMap: Map): UseSelect [selectedDocsSet, docMap] ); - const usedSelectedDocsCount = selectedDocIds.length; + const getSelectedDocsOrderedByRows = useCallback( + (rows: DataTableRecord[]) => { + return rows.filter((row) => isDocSelected(row.id)); + }, + [isDocSelected] + ); - const getCountOfSelectedDocs = useCallback( + const selectedDocsCount = selectedDocIds.length; + + const getCountOfFilteredSelectedDocs = useCallback( (docIds) => { - if (!usedSelectedDocsCount) { + if (!selectedDocsCount) { return 0; } return docIds.filter(isDocSelected).length; }, - [usedSelectedDocsCount, isDocSelected] + [selectedDocsCount, isDocSelected] ); return useMemo( () => ({ isDocSelected, - hasSelectedDocs: usedSelectedDocsCount > 0, - getCountOfSelectedDocs, - selectedDocIds, + hasSelectedDocs: selectedDocsCount > 0, + selectedDocsCount, + docIdsInSelectionOrder: selectedDocIds, + getCountOfFilteredSelectedDocs, toggleDocSelection, selectAllDocs, selectMoreDocs, deselectSomeDocs, replaceSelectedDocs, clearAllSelectedDocs, + getSelectedDocsOrderedByRows, }), [ isDocSelected, - getCountOfSelectedDocs, + getCountOfFilteredSelectedDocs, toggleDocSelection, selectAllDocs, selectMoreDocs, deselectSomeDocs, replaceSelectedDocs, clearAllSelectedDocs, - usedSelectedDocsCount, selectedDocIds, + selectedDocsCount, + getSelectedDocsOrderedByRows, ] ); }; diff --git a/packages/kbn-unified-data-table/src/types.ts b/packages/kbn-unified-data-table/src/types.ts index b08818e1a861a..f06c4c4096c0c 100644 --- a/packages/kbn-unified-data-table/src/types.ts +++ b/packages/kbn-unified-data-table/src/types.ts @@ -19,6 +19,8 @@ import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; import type { EuiDataGridControlColumn } from '@elastic/eui/src/components/datagrid/data_grid_types'; import type { DatatableColumnMeta } from '@kbn/expressions-plugin/common'; +export type { DataGridDensity } from './constants'; + /** * User configurable state of data grid, persisted in saved search */ @@ -58,6 +60,7 @@ export type DataGridCellValueElementProps = EuiDataGridCellValueElementProps & { dataView: DataView; fieldFormats: FieldFormatsStart; closePopover: () => void; + isCompressed?: boolean; }; export type CustomCellRenderer = Record< diff --git a/packages/kbn-unified-data-table/src/utils/copy_value_to_clipboard.test.tsx b/packages/kbn-unified-data-table/src/utils/copy_value_to_clipboard.test.tsx index f49a7ef95ed6d..fdb68618fab49 100644 --- a/packages/kbn-unified-data-table/src/utils/copy_value_to_clipboard.test.tsx +++ b/packages/kbn-unified-data-table/src/utils/copy_value_to_clipboard.test.tsx @@ -12,6 +12,8 @@ import { copyValueToClipboard, copyColumnNameToClipboard, copyColumnValuesToClipboard, + copyRowsAsTextToClipboard, + copyRowsAsJsonToClipboard, } from './copy_value_to_clipboard'; import { convertValueToString } from './convert_value_to_string'; import type { ValueToStringConverter } from '../types'; @@ -151,4 +153,59 @@ describe('copyValueToClipboard', () => { text: 'Values may contain formulas that are escaped.', }); }); + + it('should copy rows to clipboard as text', async () => { + execCommandMock.mockImplementationOnce(() => true); + + const result = await copyRowsAsTextToClipboard({ + toastNotifications: servicesMock.toastNotifications, + columns: ['bool_enabled', 'keyword_key'], + dataView: dataTableContextComplexMock.dataView, + selectedRowIndices: [0], + valueToStringConverter, + }); + + const output = '"bool_enabled"\t"keyword_key"\nfalse\tabcd1'; + expect(result).toBe(output); + expect(global.window.navigator.clipboard.writeText).toHaveBeenCalledWith(output); + expect(servicesMock.toastNotifications.addInfo).toHaveBeenCalledWith({ + title: 'Copied to clipboard', + }); + }); + + it('should copy rows to clipboard as text with a warning', async () => { + execCommandMock.mockImplementationOnce(() => true); + + const result = await copyRowsAsTextToClipboard({ + toastNotifications: servicesMock.toastNotifications, + columns: ['bool_enabled', 'scripted_string'], + dataView: dataTableContextComplexMock.dataView, + selectedRowIndices: [0, 1], + valueToStringConverter, + }); + + const output = '"bool_enabled"\t"scripted_string"\nfalse\t"hi there"\ntrue\t"\'=1+2"";=1+2"'; + expect(result).toBe(output); + expect(servicesMock.toastNotifications.addWarning).toHaveBeenCalledWith({ + title: 'Copied to clipboard', + text: 'Values may contain formulas that are escaped.', + }); + }); + + it('should copy rows to clipboard as JSON', async () => { + execCommandMock.mockImplementationOnce(() => true); + + const result = await copyRowsAsJsonToClipboard({ + toastNotifications: servicesMock.toastNotifications, + selectedRows: [dataTableContextComplexMock.rows[0]], + }); + + const output = + '[{"_index":"sample","_id":"1","_version":2,"_score":null,"fields":{"date":["2022-05-22T12:10:30.000Z"],"array_objects.description.keyword":["programming list","cool stuff list"],"rank_features":[{"2star":100,"1star":10}],"array_tags":["elasticsearch","wow"],"array_objects.name.keyword":["prog_list","cool_list"],"flattened_labels":[{"release":["v1.2.5","v1.3.0"],"priority":"urgent"}],"geo_point":[{"coordinates":[-71.34,41.12],"type":"Point"}],"binary_blob":["U29tZSBiaW5hcnkgYmxvYg=="],"text_message":["Hi there! I am a sample string."],"object_user.first":["John"],"keyword_key":["abcd1"],"array_objects.name":["prog_list","cool_list"],"vector":[0.5,10,6],"nested_user":[{"last":["Smith"],"last.keyword":["Smith"],"first":["John"],"first.keyword":["John"]},{"last":["White"],"last.keyword":["White"],"first":["Alice"],"first.keyword":["Alice"]}],"number_amount":[50],"array_tags.keyword":["elasticsearch","wow"],"bool_enabled":[false],"version":["1.2.3"],"histogram":[{"counts":[3,7,23,12,6],"values":[0.1,0.2,0.3,0.4,0.5]}],"array_objects.description":["programming list","cool stuff list"],"range_time_frame":[{"gte":"2015-10-31 12:00:00","lte":"2015-11-01 00:00:00"}],"number_price":[10.99],"object_user.last":["Smith"],"geometry":[{"coordinates":[[[1000,-1001],[1001,-1001],[1001,-1000],[1000,-1000],[1000,-1001]]],"type":"Polygon"}],"date_nanos":["2022-01-01T12:10:30.123456789Z"],"ip_addr":["192.168.1.1"],"runtime_number":[5.5],"scripted_string":["hi there"]},"sort":[1653221430000]}]'; + expect(result).toBe(output); + expect(global.window.navigator.clipboard.writeText).toHaveBeenCalledWith(output); + expect(servicesMock.toastNotifications.addInfo).toHaveBeenCalledWith({ + title: 'Copied to clipboard', + }); + }); }); diff --git a/packages/kbn-unified-data-table/src/utils/copy_value_to_clipboard.ts b/packages/kbn-unified-data-table/src/utils/copy_value_to_clipboard.ts index 2fc0606624a0b..6097454d2b01a 100644 --- a/packages/kbn-unified-data-table/src/utils/copy_value_to_clipboard.ts +++ b/packages/kbn-unified-data-table/src/utils/copy_value_to_clipboard.ts @@ -8,9 +8,12 @@ import { copyToClipboard } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { ToastsStart } from '@kbn/core/public'; +import type { ToastsStart } from '@kbn/core/public'; +import type { DataTableRecord } from '@kbn/discover-utils'; +import type { DataView } from '@kbn/data-views-plugin/common'; import type { ValueToStringConverter } from '../types'; import { convertNameToString } from './convert_value_to_string'; +import { getColumnDisplayName } from '../components/data_table_columns'; const WARNING_FOR_FORMULAS = i18n.translate( 'unifiedDataTable.copyEscapedValueWithFormulasToClipboardWarningText', @@ -151,3 +154,118 @@ export const copyColumnNameToClipboard = ({ return columnDisplayName; }; + +export const copyRowsAsTextToClipboard = async ({ + columns, + dataView, + selectedRowIndices, + toastNotifications, + valueToStringConverter, +}: { + columns: string[]; + dataView: DataView; + selectedRowIndices: number[]; + toastNotifications: ToastsStart; + valueToStringConverter: ValueToStringConverter; +}): Promise => { + const columnSeparator = '\t'; + const rowSeparator = '\n'; + let withFormula = false; + let textToCopy = ''; + + textToCopy += + columns + .map((columnId) => { + const columnDisplayName = getColumnDisplayName( + columnId, + dataView.getFieldByName(columnId)?.displayName, + undefined + ); + const nameFormattedResult = convertNameToString(columnDisplayName); + withFormula = withFormula || nameFormattedResult.withFormula; + return nameFormattedResult.formattedString; + }) + .join(columnSeparator) + rowSeparator; + + selectedRowIndices.forEach((rowIndex, index) => { + textToCopy += + columns + .map((columnId) => { + const result = valueToStringConverter(rowIndex, columnId, { compatibleWithCSV: true }); + withFormula = withFormula || result.withFormula; + return result.formattedString || '-'; + }) + .join(columnSeparator) + (index !== selectedRowIndices.length - 1 ? rowSeparator : ''); + }); + + let copied; + try { + // try to copy without browser styles + await window.navigator?.clipboard?.writeText(textToCopy); + copied = true; + } catch (error) { + copied = copyToClipboard(textToCopy); + } + + if (!copied) { + toastNotifications.addWarning({ + title: COPY_FAILED_ERROR_MESSAGE, + }); + + return null; + } + + const toastTitle = i18n.translate('unifiedDataTable.copyRowsAsTextToClipboard.toastTitle', { + defaultMessage: 'Copied to clipboard', + }); + + if (withFormula) { + toastNotifications.addWarning({ + title: toastTitle, + text: WARNING_FOR_FORMULAS, + }); + } else { + toastNotifications.addInfo({ + title: toastTitle, + }); + } + + return textToCopy; +}; + +export const copyRowsAsJsonToClipboard = async ({ + selectedRows, + toastNotifications, +}: { + selectedRows: DataTableRecord[]; + toastNotifications: ToastsStart; +}): Promise => { + const textToCopy = selectedRows ? JSON.stringify(selectedRows.map((row) => row.raw)) : ''; + + let copied; + try { + // try to copy without browser styles + await window.navigator?.clipboard?.writeText(textToCopy); + copied = true; + } catch (error) { + copied = copyToClipboard(textToCopy); + } + + if (!copied) { + toastNotifications.addWarning({ + title: COPY_FAILED_ERROR_MESSAGE, + }); + + return null; + } + + const toastTitle = i18n.translate('unifiedDataTable.copyRowsAsJsonToClipboard.toastTitle', { + defaultMessage: 'Copied to clipboard', + }); + + toastNotifications.addInfo({ + title: toastTitle, + }); + + return textToCopy; +}; diff --git a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx index 04d160bef5c2e..5d9894e9bcd2c 100644 --- a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx +++ b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx @@ -224,6 +224,7 @@ describe('Unified data table cell rendering', function () { maxEntries: 100, shouldShowFieldHandler: showFieldHandler, row: rows[0], + isCompressed: true, }); }); @@ -329,6 +330,7 @@ describe('Unified data table cell rendering', function () { shouldShowFieldHandler: showFieldHandler, row: rows[0], isPlainRecord: true, + isCompressed: true, }); }); @@ -367,6 +369,7 @@ describe('Unified data table cell rendering', function () { maxEntries: 100, shouldShowFieldHandler: showFieldHandler, row: rows[0], + isCompressed: true, }); }); @@ -406,6 +409,7 @@ describe('Unified data table cell rendering', function () { maxEntries: 1, shouldShowFieldHandler: showFieldHandler, row: rows[0], + isCompressed: true, }); }); @@ -519,6 +523,7 @@ describe('Unified data table cell rendering', function () { shouldShowFieldHandler: showFieldHandler, useTopLevelObjectColumns: true, row: rows[0], + isCompressed: true, }); }); @@ -559,6 +564,7 @@ describe('Unified data table cell rendering', function () { shouldShowFieldHandler: showFieldHandler, useTopLevelObjectColumns: true, row: rows[0], + isCompressed: true, }); }); diff --git a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx index 6a10b0950946d..1b856d665d301 100644 --- a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx +++ b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx @@ -36,6 +36,7 @@ export const getRenderCellValueFn = ({ maxEntries, externalCustomRenderers, isPlainRecord, + isCompressed = true, }: { dataView: DataView; rows: DataTableRecord[] | undefined; @@ -46,6 +47,7 @@ export const getRenderCellValueFn = ({ maxEntries: number; externalCustomRenderers?: CustomCellRenderer; isPlainRecord?: boolean; + isCompressed?: boolean; }) => { return function UnifiedDataTableRenderCellValue({ rowIndex, @@ -95,6 +97,7 @@ export const getRenderCellValueFn = ({ dataView={dataView} fieldFormats={fieldFormats} closePopover={closePopover} + isCompressed={isCompressed} /> ); @@ -134,6 +137,7 @@ export const getRenderCellValueFn = ({ shouldShowFieldHandler={shouldShowFieldHandler} maxEntries={maxEntries} isPlainRecord={isPlainRecord} + isCompressed={isCompressed} /> ); } diff --git a/packages/kbn-unified-data-table/tsconfig.json b/packages/kbn-unified-data-table/tsconfig.json index d0a844b3d49e7..ca3372bd40f30 100644 --- a/packages/kbn-unified-data-table/tsconfig.json +++ b/packages/kbn-unified-data-table/tsconfig.json @@ -37,5 +37,7 @@ "@kbn/react-field", "@kbn/shared-ux-utility", "@kbn/unified-field-list", + "@kbn/core-notifications-browser", + "@kbn/core-capabilities-browser-mocks", ] } diff --git a/packages/kbn-unified-doc-viewer/src/components/field_name/field_name.tsx b/packages/kbn-unified-doc-viewer/src/components/field_name/field_name.tsx index d7f380195947a..4c57fa6cc0dc9 100644 --- a/packages/kbn-unified-doc-viewer/src/components/field_name/field_name.tsx +++ b/packages/kbn-unified-doc-viewer/src/components/field_name/field_name.tsx @@ -8,14 +8,7 @@ import React from 'react'; import './field_name.scss'; -import { - EuiBadge, - EuiFlexGroup, - EuiFlexItem, - EuiToolTip, - EuiHighlight, - EuiIcon, -} from '@elastic/eui'; +import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiToolTip, EuiHighlight } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; import { FieldIcon, FieldIconProps } from '@kbn/react-field'; @@ -30,7 +23,6 @@ interface Props { fieldIconProps?: Omit; scripted?: boolean; highlight?: string; - isPinned?: boolean; } export function FieldName({ @@ -40,7 +32,6 @@ export function FieldName({ fieldIconProps, scripted = false, highlight = '', - isPinned = false, }: Props) { const typeName = getFieldTypeName(fieldType); const displayName = @@ -63,17 +54,6 @@ export function FieldName({ - {isPinned && ( - - - - )}
diff --git a/packages/kbn-unified-field-list/src/services/field_examples_calculator/field_examples_calculator.ts b/packages/kbn-unified-field-list/src/services/field_examples_calculator/field_examples_calculator.ts index ac03aff1387db..878bc24097151 100644 --- a/packages/kbn-unified-field-list/src/services/field_examples_calculator/field_examples_calculator.ts +++ b/packages/kbn-unified-field-list/src/services/field_examples_calculator/field_examples_calculator.ts @@ -97,7 +97,7 @@ export function groupValues( return; } - if (groups.hasOwnProperty(value)) { + if (Object.hasOwn(groups, value)) { groups[value].count++; } else { groups[value] = { diff --git a/packages/kbn-unsaved-changes-badge/src/components/unsaved_changes_badge/__snapshots__/unsaved_changes_badge.test.tsx.snap b/packages/kbn-unsaved-changes-badge/src/components/unsaved_changes_badge/__snapshots__/unsaved_changes_badge.test.tsx.snap index 141a8c7b437b8..9991c8a2165d0 100644 --- a/packages/kbn-unsaved-changes-badge/src/components/unsaved_changes_badge/__snapshots__/unsaved_changes_badge.test.tsx.snap +++ b/packages/kbn-unsaved-changes-badge/src/components/unsaved_changes_badge/__snapshots__/unsaved_changes_badge.test.tsx.snap @@ -8,8 +8,9 @@ exports[` should show all menu items 1`] = ` >